diff options
Diffstat (limited to 'application-model/src/main/java/com/yahoo/vespa/applicationmodel/HostName.java')
-rw-r--r-- | application-model/src/main/java/com/yahoo/vespa/applicationmodel/HostName.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/application-model/src/main/java/com/yahoo/vespa/applicationmodel/HostName.java b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/HostName.java new file mode 100644 index 00000000000..815fa67d642 --- /dev/null +++ b/application-model/src/main/java/com/yahoo/vespa/applicationmodel/HostName.java @@ -0,0 +1,43 @@ +package com.yahoo.vespa.applicationmodel; + +import com.fasterxml.jackson.annotation.JsonValue; + +import java.util.Objects; + +/** + * @author bjorncs + */ +public class HostName { + + public final String id; + + public HostName(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; + HostName hostName = (HostName) o; + return Objects.equals(id, hostName.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } +} |