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 java.math.BigInteger;
24
25 import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
26 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
27 import org.apache.chemistry.opencmis.commons.data.ObjectList;
28 import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
29 import org.apache.chemistry.opencmis.commons.server.CmisService;
30 import org.apache.chemistry.opencmis.commons.server.CmisServiceFactory;
31 import org.apache.chemistry.opencmis.commons.spi.DiscoveryService;
32 import org.apache.chemistry.opencmis.commons.spi.Holder;
33
34 public class DiscoveryServiceImpl extends AbstractLocalService implements DiscoveryService {
35
36
37
38
39 public DiscoveryServiceImpl(BindingSession session, CmisServiceFactory factory) {
40 setSession(session);
41 setServiceFactory(factory);
42 }
43
44 @Override
45 public ObjectList getContentChanges(String repositoryId, Holder<String> changeLogToken, Boolean includeProperties,
46 String filter, Boolean includePolicyIds, Boolean includeAcl, BigInteger maxItems, ExtensionsData extension) {
47 CmisService service = getService(repositoryId);
48
49 try {
50 if (stopBeforeService(service)) {
51 return null;
52 }
53
54 ObjectList serviceResult = service.getContentChanges(repositoryId, changeLogToken, includeProperties,
55 filter, includePolicyIds, includeAcl, maxItems, extension);
56
57 if (stopAfterService(service)) {
58 return null;
59 }
60
61 return serviceResult;
62 } finally {
63 service.close();
64 }
65 }
66
67 @Override
68 public ObjectList query(String repositoryId, String statement, Boolean searchAllVersions,
69 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
70 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
71 CmisService service = getService(repositoryId);
72
73 try {
74 if (stopBeforeService(service)) {
75 return null;
76 }
77
78 ObjectList serviceResult = service.query(repositoryId, statement, searchAllVersions,
79 includeAllowableActions, includeRelationships, renditionFilter, maxItems, skipCount, extension);
80
81 if (stopAfterService(service)) {
82 return null;
83 }
84
85 return serviceResult;
86 } finally {
87 service.close();
88 }
89 }
90 }