diff options
Diffstat (limited to 'config-model-api/src/main/java/com/yahoo/config/model')
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationRoles.java | 51 | ||||
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java | 2 |
2 files changed, 53 insertions, 0 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationRoles.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationRoles.java new file mode 100644 index 00000000000..8492603e2e3 --- /dev/null +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ApplicationRoles.java @@ -0,0 +1,51 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.config.model.api; + +import com.google.common.base.Strings; + +/** + * @author mortent + */ +public class ApplicationRoles { + private final String applicationHostRole; + private final String applicationContainerRole; + + public ApplicationRoles(String applicationHostRole, String applicationContainerRole) { + this.applicationHostRole = applicationHostRole; + this.applicationContainerRole = applicationContainerRole; + } + + /** + * @return an ApplicationRoles instance if both hostRole and containerRole is non-empty, <code>null</code> otherwise + */ + public static ApplicationRoles fromString(String hostRole, String containerRole) { + if(Strings.isNullOrEmpty(hostRole) || Strings.isNullOrEmpty(containerRole)) { + return null; + } + return new ApplicationRoles(hostRole, containerRole); + } + + public String applicationContainerRole() { + return applicationContainerRole; + } + + public String applicationHostRole() { + return applicationHostRole; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ApplicationRoles that = (ApplicationRoles) o; + if (!applicationHostRole.equals(that.applicationHostRole)) return false; + return applicationContainerRole.equals(that.applicationContainerRole); + } + + @Override + public int hashCode() { + int result = applicationHostRole.hashCode(); + result = 31 * result + applicationContainerRole.hashCode(); + return result; + } +} diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java index 7641f14b007..33369727703 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java @@ -93,6 +93,8 @@ public interface ModelContext { // TODO(mpolden): Remove after May 2020 default boolean useDedicatedNodesWhenUnspecified() { return true; } + + Optional<ApplicationRoles> applicationRoles(); } } |