diff options
author | Morten Tokle <mortent@verizonmedia.com> | 2021-04-16 08:23:16 +0200 |
---|---|---|
committer | Morten Tokle <mortent@verizonmedia.com> | 2021-04-16 11:02:59 +0200 |
commit | 852ae37871cc7db3447dbfc8ddea5157b6a81d4d (patch) | |
tree | f210c9020afc88659c1bffda4afddae391951229 /container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java | |
parent | 96c2e442cbb798f0c85990d3f0c760c60ee9a5b3 (diff) |
Changes after review
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java')
-rw-r--r-- | container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java b/container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java index 8c7701a7534..e7c3d71ba44 100644 --- a/container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java +++ b/container-core/src/main/java/com/yahoo/container/jdisc/AclMapping.java @@ -2,13 +2,49 @@ package com.yahoo.container.jdisc; +import java.util.Objects; + /** * Mapping from request to action * * @author mortent */ public interface AclMapping { - enum Action {create, read, update, delete}; + class Action { + public static final Action READ = new Action("read"); + public static final Action WRITE = new Action("write"); + private final String name; + public static Action custom(String name) { + return new Action(name); + } + private Action(String name) { + if(Objects.requireNonNull(name).isBlank()) { + throw new IllegalArgumentException("Name cannot be blank"); + } + this.name = Objects.requireNonNull(name); + } + public String name() { return name; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Action action = (Action) o; + return Objects.equals(name, action.name); + } + + @Override + public int hashCode() { + return Objects.hash(name); + } + + @Override + public String toString() { + return "Action{" + + "name='" + name + '\'' + + '}'; + } + } Action get(RequestView requestView); } |