All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.mesos.SingularityContainerInfo Maven / Gradle / Ivy

The newest version!
package com.hubspot.mesos;

import java.util.List;

import org.apache.mesos.Protos.ContainerInfo.Type;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;

public class SingularityContainerInfo {
  private final SingularityContainerType type;
  private final Optional> volumes;
  private final Optional docker;

  @JsonCreator
  public SingularityContainerInfo(
      @JsonProperty("type") SingularityContainerType type,
      @JsonProperty("volumes") Optional> volumes,
      @JsonProperty("docker") Optional docker) {
    this.type = type;
    this.volumes = volumes;
    this.docker = docker;
  }

  @Deprecated
  public SingularityContainerInfo(Type type, Optional> volumes, Optional docker) {
    this(SingularityContainerType.valueOf(type.toString()), volumes, docker);
  }

  public SingularityContainerType getType() {
    return type;
  }

  public Optional> getVolumes() {
    return volumes;
  }

  public Optional getDocker() {
    return docker;
  }

  @Override
  public String toString() {
    return String.format("ContainerInfo [type=%s, volumes=%s, docker=%s]", type, volumes, docker);
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }

    SingularityContainerInfo that = (SingularityContainerInfo) o;

    if (!type.equals(that.type)) {
      return false;
    }
    if (!volumes.equals(that.volumes)) {
      return false;
    }
    if (!docker.equals(that.docker)) {
      return false;
    }
    return true;
  }

  @Override
  public int hashCode() {
    int result = type.hashCode();
    result = 31 * result + volumes.hashCode();
    result = 31 *result + docker.hashCode();
    return result;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy