1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.chemistry.opencmis.client.bindings.spi.local;
22
23 import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
24 import org.apache.chemistry.opencmis.commons.data.Acl;
25 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
26 import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
27 import org.apache.chemistry.opencmis.commons.server.CmisService;
28 import org.apache.chemistry.opencmis.commons.server.CmisServiceFactory;
29 import org.apache.chemistry.opencmis.commons.spi.AclService;
30 import org.apache.chemistry.opencmis.commons.spi.ExtendedAclService;
31
32 public class AclServiceImpl extends AbstractLocalService implements AclService, ExtendedAclService {
33
34
35
36
37 public AclServiceImpl(BindingSession session, CmisServiceFactory factory) {
38 setSession(session);
39 setServiceFactory(factory);
40 }
41
42 @Override
43 public Acl applyAcl(String repositoryId, String objectId, Acl addAces, Acl removeAces,
44 AclPropagation aclPropagation, ExtensionsData extension) {
45 CmisService service = getService(repositoryId);
46
47 try {
48 if (stopBeforeService(service)) {
49 return null;
50 }
51
52 Acl serviceResult = service
53 .applyAcl(repositoryId, objectId, addAces, removeAces, aclPropagation, extension);
54
55 if (stopAfterService(service)) {
56 return null;
57 }
58
59 return serviceResult;
60 } finally {
61 service.close();
62 }
63 }
64
65 @Override
66 public Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
67 CmisService service = getService(repositoryId);
68
69 try {
70 if (stopBeforeService(service)) {
71 return null;
72 }
73
74 Acl serviceResult = service.getAcl(repositoryId, objectId, onlyBasicPermissions, extension);
75
76 if (stopAfterService(service)) {
77 return null;
78 }
79
80 return serviceResult;
81 } finally {
82 service.close();
83 }
84 }
85
86 @Override
87 public Acl setAcl(String repositoryId, String objectId, Acl aces) {
88 CmisService service = getService(repositoryId);
89
90 try {
91 if (stopBeforeService(service)) {
92 return null;
93 }
94
95 Acl serviceResult = service.applyAcl(repositoryId, objectId, aces, AclPropagation.OBJECTONLY);
96
97 if (stopAfterService(service)) {
98 return null;
99 }
100
101 return serviceResult;
102 } finally {
103 service.close();
104 }
105 }
106 }