diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /config-provisioning/src/main/java/com/yahoo/config/provision/InstanceName.java |
Publish
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/InstanceName.java')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/InstanceName.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/InstanceName.java b/config-provisioning/src/main/java/com/yahoo/config/provision/InstanceName.java new file mode 100644 index 00000000000..d8696098b4b --- /dev/null +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/InstanceName.java @@ -0,0 +1,54 @@ +// Copyright 2016 Yahoo Inc. 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 an applications instance name, which may be any kind of string or default. This type is defined + * in order to provide a type safe API for defining environments. + * + * @author lulf + * @since 5.25 + */ +public class InstanceName implements Comparable<InstanceName> { + private final String instanceName; + + private InstanceName(String instanceName) { + this.instanceName = instanceName; + } + + @Override + public int hashCode() { + return instanceName.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof InstanceName)) return false; + return Objects.equals(((InstanceName) obj).instanceName, instanceName); + } + + @Override + public String toString() { + return instanceName; + } + + public static InstanceName from(String name) { + return new InstanceName(name); + } + + public static InstanceName defaultName() { + return new InstanceName("default"); + } + + public boolean isDefault() { + return equals(InstanceName.defaultName()); + } + + public String value() { return instanceName; } + + @Override + public int compareTo(InstanceName instance) { + return instanceName.compareTo(instance.instanceName); + } +} |