diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2017-12-08 16:07:50 +0100 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2017-12-08 16:07:50 +0100 |
commit | bfcf0064501b526e6e57e459f72a46d5ba7d086d (patch) | |
tree | 9b5cd9cbe29d5cee22179204638fb4ddea02e451 /config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java | |
parent | 6b818dccd5460d785d5452a6a961bb637501c574 (diff) |
Replaced inheritance with delegation
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index b69795a4f95..4dd6324b423 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -5,6 +5,7 @@ import com.google.common.base.Strings; import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; +import java.util.Objects; import java.util.Optional; /** @@ -14,11 +15,12 @@ import java.util.Optional; * * @author bratseth */ -public class Zone extends ZoneId { +public class Zone { private final SystemName systemName; private final FlavorDefaults flavorDefaults; private final Optional<NodeFlavors> nodeFlavors; + private final ZoneId id; @Inject public Zone(ConfigserverConfig configserverConfig, NodeFlavors nodeFlavors) { @@ -44,12 +46,27 @@ public class Zone extends ZoneId { RegionName region, FlavorDefaults flavorDefaults, NodeFlavors nodeFlavors) { - super(environment, region); + this.id = new ZoneId(environment, region); this.flavorDefaults = flavorDefaults; this.systemName = systemName; this.nodeFlavors = Optional.ofNullable(nodeFlavors); } + /** Returns the id of this */ + public ZoneId id() { + return id; + } + + /** Returns the current environment */ + public Environment environment() { + return id.environment(); + } + + /** Returns the current region */ + public RegionName region() { + return id.region(); + } + /** Returns the current system */ public SystemName system() { return systemName; } @@ -64,6 +81,22 @@ public class Zone extends ZoneId { return new Zone(SystemName.defaultSystem(), Environment.defaultEnvironment(), RegionName.defaultName()); } + + public String toString() { + return id.toString(); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if ( ! (o instanceof Zone)) return false; + return Objects.equals(id, ((Zone) o).id); + } + + public int hashCode() { + return id.hashCode(); + } + private static class FlavorDefaults { /** The default default flavor */ |