summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2019-02-11 13:20:57 +0100
committerValerij Fredriksen <valerijf@verizonmedia.com>2019-02-11 13:24:15 +0100
commitbfaa9c16b35545e36e98c3ed67199177040e999c (patch)
tree3123ebd4fba5850062bbac5bcdd08a8ef4198fb3 /config-provisioning
parentdc1e4bb9f9f8715840d90a830d21b88d752f990b (diff)
Move CloudName to config-provisioning
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/abi-spec.json21
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/CloudName.java60
2 files changed, 81 insertions, 0 deletions
diff --git a/config-provisioning/abi-spec.json b/config-provisioning/abi-spec.json
index 3c5dd0fa834..c0128f8d837 100644
--- a/config-provisioning/abi-spec.json
+++ b/config-provisioning/abi-spec.json
@@ -145,6 +145,27 @@
],
"fields": []
},
+ "com.yahoo.config.provision.CloudName": {
+ "superClass": "java.lang.Object",
+ "interfaces": [
+ "java.lang.Comparable"
+ ],
+ "attributes": [
+ "public"
+ ],
+ "methods": [
+ "public java.lang.String value()",
+ "public boolean isDefault()",
+ "public static com.yahoo.config.provision.CloudName defaultName()",
+ "public static com.yahoo.config.provision.CloudName from(java.lang.String)",
+ "public boolean equals(java.lang.Object)",
+ "public int hashCode()",
+ "public java.lang.String toString()",
+ "public int compareTo(com.yahoo.config.provision.CloudName)",
+ "public bridge synthetic int compareTo(java.lang.Object)"
+ ],
+ "fields": []
+ },
"com.yahoo.config.provision.ClusterMembership": {
"superClass": "java.lang.Object",
"interfaces": [],
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/CloudName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/CloudName.java
new file mode 100644
index 00000000000..53e00373713
--- /dev/null
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/CloudName.java
@@ -0,0 +1,60 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.config.provision;
+
+import java.util.Objects;
+
+/**
+ * Represents a cloud provider used in a hosted Vespa system.
+ *
+ * @author mpolden
+ */
+public class CloudName implements Comparable<CloudName> {
+
+ private final static CloudName defaultCloud = from("default");
+
+ private final String cloud;
+
+ private CloudName(String cloud) {
+ this.cloud = cloud;
+ }
+
+ public String value() {
+ return cloud;
+ }
+
+ public boolean isDefault() {
+ return defaultName().equals(this);
+ }
+
+ public static CloudName defaultName() {
+ return defaultCloud;
+ }
+
+ public static CloudName from(String cloud) {
+ return new CloudName(cloud);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ CloudName cloudName = (CloudName) o;
+ return Objects.equals(cloud, cloudName.cloud);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(cloud);
+ }
+
+ @Override
+ public String toString() {
+ return cloud;
+ }
+
+ @Override
+ public int compareTo(CloudName o) {
+ return cloud.compareTo(o.cloud);
+ }
+
+}