diff options
Diffstat (limited to 'application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceType.java')
-rw-r--r-- | application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceType.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceType.java b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceType.java new file mode 100644 index 00000000000..ed274782046 --- /dev/null +++ b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceType.java @@ -0,0 +1,43 @@ +package com.yahoo.vespa.applicationmodel; + +import com.fasterxml.jackson.annotation.JsonValue; + +import java.util.Objects; + +/** + * @author bjorncs + */ +public class ServiceType { + + public final String id; + + public ServiceType(String id) { + this.id = id; + } + + // Jackson's StdKeySerializer uses toString() (and ignores annotations) for objects used as Map keys. + // Therefore, we use toString() as the JSON-producing method, which is really sad. + @JsonValue + @Override + public String toString() { + return id; + } + + // For compatibility with original Scala case class + public String s() { + return id; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ServiceType that = (ServiceType) o; + return Objects.equals(id, that.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } +} |