aboutsummaryrefslogtreecommitdiffstats
path: root/application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceType.java
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahoo-inc.com>2016-11-16 13:49:33 +0100
committerBjørn Christian Seime <bjorncs@yahoo-inc.com>2016-11-16 20:12:52 +0100
commit2a58636f064125d653ab0182ad1a8e68f6c57ce5 (patch)
treeaa0824b5cdae2a372043eef61a4632417091afa8 /application-model/src/main/java/com/yahoo/vespa/applicationmodel/ServiceType.java
parent6731a0c6424676ddf9c4e76a72b3a8ff93362afc (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.java43
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);
+ }
+}