1 package com.atlassian.plugin;
2
3 import com.atlassian.fugue.Option;
4 import com.google.common.base.Objects;
5
6 import static com.atlassian.fugue.Option.some;
7 import static com.google.common.base.Preconditions.checkNotNull;
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public final class PluginPermission {
22 public final static PluginPermission ALL = new PluginPermission(Permissions.ALL_PERMISSIONS);
23 public final static PluginPermission EXECUTE_JAVA = new PluginPermission(Permissions.EXECUTE_JAVA);
24
25 private final String name;
26 private final Option<InstallationMode> installationMode;
27
28 public PluginPermission(String name) {
29 this(checkNotNull(name), Option.<InstallationMode>none());
30 }
31
32 public PluginPermission(String name, InstallationMode installationMode) {
33 this(checkNotNull(name), some(checkNotNull(installationMode)));
34 }
35
36 public PluginPermission(String name, Option<InstallationMode> installationMode) {
37 this.name = checkNotNull(name);
38 this.installationMode = checkNotNull(installationMode);
39 }
40
41 public String getName() {
42 return name;
43 }
44
45
46
47
48
49
50
51
52 public Option<InstallationMode> getInstallationMode() {
53 return installationMode;
54 }
55
56 @Override
57 public boolean equals(Object o) {
58 if (this == o) {
59 return true;
60 }
61
62 if (o == null || getClass() != o.getClass()) {
63 return false;
64 }
65
66 final PluginPermission that = (PluginPermission) o;
67 return Objects.equal(this.name, that.name);
68 }
69
70 @Override
71 public int hashCode() {
72 return Objects.hashCode(this.name);
73 }
74 }