aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/ApplicationRole.java
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2019-04-04 16:35:27 +0200
committerJon Marius Venstad <venstad@gmail.com>2019-04-04 16:35:27 +0200
commitf83e2033db821695a7984577a1ee18c617fc0b55 (patch)
tree0d192897ebd99c6cbc4adf4e2cd4e9329b60b0b3 /controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/ApplicationRole.java
parent37cacaa4b1944fc4faf814d19bd01225557aa7ab (diff)
Replace RoleMembership with a bound Role, using enum ProtoRole for declarations
Diffstat (limited to 'controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/ApplicationRole.java')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/ApplicationRole.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/ApplicationRole.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/ApplicationRole.java
new file mode 100644
index 00000000000..b1018fb08a6
--- /dev/null
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/ApplicationRole.java
@@ -0,0 +1,29 @@
+package com.yahoo.vespa.hosted.controller.api.role;
+
+import com.yahoo.config.provision.ApplicationName;
+import com.yahoo.config.provision.SystemName;
+import com.yahoo.config.provision.TenantName;
+
+/**
+ * A {@link Role} with a {@link Context} of a {@link SystemName} a {@link TenantName} and an {@link ApplicationName}.
+ *
+ * @author jonmv
+ */
+public class ApplicationRole extends Role {
+
+ ApplicationRole(ProtoRole protoRole, SystemName system, TenantName tenant, ApplicationName application) {
+ super(protoRole, Context.limitedTo(tenant, application, system));
+ }
+
+ /** Returns the {@link TenantName} this is bound to. */
+ public TenantName tenant() { return context.tenant().get(); }
+
+ /** Returns the {@link ApplicationName} this is bound to. */
+ public ApplicationName application() { return context.application().get(); }
+
+ @Override
+ public String toString() {
+ return "role '" + proto() + "' of '" + application() + "' owned by '" + tenant() + "'";
+ }
+
+}