package com.hubspot.mesos; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; public class SingularityMesosTaskLabel { private final String key; private final Optional<String> value; @JsonCreator public static SingularityMesosTaskLabel fromString(String value) { return new SingularityMesosTaskLabel(value, Optional.<String> absent()); } @JsonCreator public SingularityMesosTaskLabel(@JsonProperty("key") String key, @JsonProperty("value") Optional<String> value) { this.key = key; this.value = value; } public String getKey() { return key; } public Optional<String> getValue() { return value; } public static List<SingularityMesosTaskLabel> labelsFromMap(Map<String, String> parametersMap) { List<SingularityMesosTaskLabel> labels = new ArrayList<>(); for (Map.Entry<String, String> entry : parametersMap.entrySet()) { labels.add(new SingularityMesosTaskLabel(entry.getKey(), Optional.of(entry.getValue()))); } return labels; } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } SingularityMesosTaskLabel that = (SingularityMesosTaskLabel) o; return Objects.equals(key, that.key) && Objects.equals(value, that.value); } @Override public int hashCode() { return Objects.hash(key, value); } @Override public String toString() { return "SingularityMesosTaskLabel{" + "key='" + key + '\'' + ", value=" + value + '}'; } }