diff options
author | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2016-11-16 13:49:33 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2016-11-16 20:12:52 +0100 |
commit | 2a58636f064125d653ab0182ad1a8e68f6c57ce5 (patch) | |
tree | aa0824b5cdae2a372043eef61a4632417091afa8 /application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceType.java | |
parent | 6731a0c6424676ddf9c4e76a72b3a8ff93362afc (diff) |
Replace Scala case classes with Java POJOs
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); + } +} |