summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java b/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java
index e356ee06ac6..63ad6ae1237 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/NodeType.java
@@ -75,4 +75,16 @@ public enum NodeType {
public boolean canRun(NodeType type) {
return childNodeTypes.contains(type);
}
+
+ /** Returns the host type of this */
+ public NodeType hostType() {
+ if (isHost()) return this;
+ for (NodeType nodeType : values()) {
+ if (nodeType.childNodeTypes.size() == 1 && nodeType.canRun(this)) {
+ return nodeType;
+ }
+ }
+ throw new IllegalArgumentException("No host of " + this + " exists");
+ }
+
}