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