This project has retired. For details please refer to its
Attic page.
InMemoryAce xref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.chemistry.opencmis.inmemory.storedobj.impl;
20
21 import java.util.Collections;
22 import java.util.List;
23
24 import org.apache.chemistry.opencmis.commons.data.Ace;
25 import org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlEntryImpl;
26 import org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlPrincipalDataImpl;
27
28
29 public class InMemoryAce {
30
31 private final String principalId;
32 private Permission permission;
33 private static InMemoryAce DEFAULT_ACE = new InMemoryAce(InMemoryAce.getAnyoneUser(), Permission.ALL);
34
35 public static final String getAnyoneUser() {
36 return "anyone";
37 }
38
39 public static final String getAnonymousUser() {
40 return "anonymous";
41 }
42
43 public static final InMemoryAce getDefaultAce() {
44 return DEFAULT_ACE;
45 }
46
47 public InMemoryAce(Ace commonsAce) {
48 if (null == commonsAce || null == commonsAce.getPrincipalId() || null == commonsAce.getPermissions())
49 throw new IllegalArgumentException("Cannot create InMemoryAce with null value");
50 List<String> perms = commonsAce.getPermissions();
51 if (perms.size() != 1)
52 throw new IllegalArgumentException("InMemory only supports ACEs with a single permission.");
53 String perm = perms.get(0);
54 this.principalId = commonsAce.getPrincipalId();
55 this.permission = Permission.fromCmisString(perm);
56 }
57
58 public InMemoryAce(String prinicpalId, Permission permission) {
59 if (null == prinicpalId || null == permission)
60 throw new IllegalArgumentException("Cannot create InMemoryAce with null value");
61
62 this.principalId = prinicpalId;
63 this.permission = permission;
64 }
65
66 public String getPrincipalId() {
67 return principalId;
68 }
69
70 public Permission getPermission() {
71 return permission;
72 }
73
74 public void setPermission(Permission newPermission) {
75 permission = newPermission;
76 }
77
78 @Override
79 public int hashCode() {
80 final int prime = 31;
81 int result = 1;
82 result = prime * result + ((permission == null) ? 0 : permission.hashCode());
83 result = prime * result + ((principalId == null) ? 0 : principalId.hashCode());
84 return result;
85 }
86
87 @Override
88 public boolean equals(Object obj) {
89 if (this == obj)
90 return true;
91 if (obj == null)
92 return false;
93 if (getClass() != obj.getClass())
94 return false;
95 InMemoryAce other = (InMemoryAce) obj;
96 if (permission != other.permission)
97 return false;
98 if (principalId == null) {
99 if (other.principalId != null)
100 return false;
101 } else if (!principalId.equals(other.principalId))
102 return false;
103 return true;
104 }
105
106 public boolean hasPermission(Permission permission2) {
107 return this.permission.compareTo(permission2) >= 0;
108 }
109
110 @Override
111 public String toString() {
112 return "InMemoryAce [principalId=" + principalId + ", permission=" + permission + "]";
113 }
114
115 public Ace toCommonsAce() {
116 return new AccessControlEntryImpl(new AccessControlPrincipalDataImpl(principalId),
117 Collections.singletonList(permission.toCmisString()));
118 }
119
120 }