summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2017-12-08 16:07:50 +0100
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2017-12-08 16:07:50 +0100
commitbfcf0064501b526e6e57e459f72a46d5ba7d086d (patch)
tree9b5cd9cbe29d5cee22179204638fb4ddea02e451 /config-provisioning
parent6b818dccd5460d785d5452a6a961bb637501c574 (diff)
Replaced inheritance with delegation
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java37
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 */