This project has retired. For details please refer to its
Attic page.
InMemoryService 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.server;
20
21 import java.math.BigInteger;
22 import java.util.List;
23 import java.util.Map;
24
25 import org.apache.chemistry.opencmis.commons.data.Acl;
26 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
27 import org.apache.chemistry.opencmis.commons.data.ContentStream;
28 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
29 import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
30 import org.apache.chemistry.opencmis.commons.data.ObjectData;
31 import org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
32 import org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
33 import org.apache.chemistry.opencmis.commons.data.ObjectList;
34 import org.apache.chemistry.opencmis.commons.data.ObjectParentData;
35 import org.apache.chemistry.opencmis.commons.data.Properties;
36 import org.apache.chemistry.opencmis.commons.data.RenditionData;
37 import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
38 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
39 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
40 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
41 import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
42 import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
43 import org.apache.chemistry.opencmis.commons.enums.RelationshipDirection;
44 import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
45 import org.apache.chemistry.opencmis.commons.enums.VersioningState;
46 import org.apache.chemistry.opencmis.commons.impl.server.AbstractCmisService;
47 import org.apache.chemistry.opencmis.commons.server.CallContext;
48 import org.apache.chemistry.opencmis.commons.spi.Holder;
49 import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
50 import org.apache.commons.logging.Log;
51 import org.apache.commons.logging.LogFactory;
52
53 public class InMemoryService extends AbstractCmisService {
54
55 private static final Log LOG = LogFactory.getLog(InMemoryService.class.getName());
56
57 private final StoreManager storeManager;
58 private CallContext context;
59
60 private final InMemoryRepositoryServiceImpl fRepSvc;
61 private final InMemoryObjectServiceImpl fObjSvc;
62 private final InMemoryNavigationServiceImpl fNavSvc;
63 private final InMemoryVersioningServiceImpl fVerSvc;
64 private final InMemoryDiscoveryServiceImpl fDisSvc;
65 private final InMemoryMultiFilingServiceImpl fMultiSvc;
66 private final InMemoryAclService fAclSvc;
67
68 public StoreManager getStoreManager() {
69 return storeManager;
70 }
71
72 public InMemoryService(Map<String, String> parameters, StoreManager sm) {
73 storeManager = sm;
74 fRepSvc = new InMemoryRepositoryServiceImpl(storeManager);
75 fNavSvc = new InMemoryNavigationServiceImpl(storeManager);
76 fObjSvc = new InMemoryObjectServiceImpl(storeManager);
77 fVerSvc = new InMemoryVersioningServiceImpl(storeManager, fObjSvc);
78 fDisSvc = new InMemoryDiscoveryServiceImpl(storeManager, fRepSvc, fNavSvc);
79 fMultiSvc = new InMemoryMultiFilingServiceImpl(storeManager);
80 fAclSvc = new InMemoryAclService(storeManager);
81 }
82
83 public CallContext getCallContext() {
84 return context;
85 }
86
87 public void setCallContext(CallContext context) {
88 this.context = context;
89 }
90
91
92
93 @Override
94 public List<RepositoryInfo> getRepositoryInfos(ExtensionsData extension) {
95 return fRepSvc.getRepositoryInfos(getCallContext(), extension);
96 }
97
98 @Override
99 public RepositoryInfo getRepositoryInfo(String repositoryId, ExtensionsData extension) {
100 return fRepSvc.getRepositoryInfo(getCallContext(), repositoryId, extension);
101 }
102
103 @Override
104 public TypeDefinitionList getTypeChildren(String repositoryId, String typeId, Boolean includePropertyDefinitions,
105 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
106 return fRepSvc.getTypeChildren(getCallContext(), repositoryId, typeId, includePropertyDefinitions, maxItems,
107 skipCount, extension);
108 }
109
110 @Override
111 public TypeDefinition getTypeDefinition(String repositoryId, String typeId, ExtensionsData extension) {
112 return fRepSvc.getTypeDefinition(getCallContext(), repositoryId, typeId, extension);
113 }
114
115 @Override
116 public List<TypeDefinitionContainer> getTypeDescendants(String repositoryId, String typeId, BigInteger depth,
117 Boolean includePropertyDefinitions, ExtensionsData extension) {
118 return fRepSvc.getTypeDescendants(getCallContext(), repositoryId, typeId, depth, includePropertyDefinitions,
119 extension);
120 }
121
122
123
124 @Override
125 public ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
126 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
127 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
128 return fNavSvc.getCheckedOutDocs(getCallContext(), repositoryId, folderId, filter, orderBy,
129 includeAllowableActions, includeRelationships, renditionFilter, maxItems, skipCount, extension, this);
130 }
131
132 @Override
133 public ObjectInFolderList getChildren(String repositoryId, String folderId, String filter, String orderBy,
134 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
135 Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
136 return fNavSvc.getChildren(getCallContext(), repositoryId, folderId, filter, orderBy, includeAllowableActions,
137 includeRelationships, renditionFilter, includePathSegment, maxItems, skipCount, extension, this);
138 }
139
140 @Override
141 public List<ObjectInFolderContainer> getDescendants(String repositoryId, String folderId, BigInteger depth,
142 String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
143 String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
144 return fNavSvc.getDescendants(getCallContext(), repositoryId, folderId, depth, filter, includeAllowableActions,
145 includeRelationships, renditionFilter, includePathSegment, extension, this);
146 }
147
148 @Override
149 public ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
150 return fNavSvc.getFolderParent(getCallContext(), repositoryId, folderId, filter, extension, this);
151 }
152
153 @Override
154 public List<ObjectInFolderContainer> getFolderTree(String repositoryId, String folderId, BigInteger depth,
155 String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
156 String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
157 return fNavSvc.getFolderTree(getCallContext(), repositoryId, folderId, depth, filter, includeAllowableActions,
158 includeRelationships, renditionFilter, includePathSegment, extension, this);
159 }
160
161 @Override
162 public List<ObjectParentData> getObjectParents(String repositoryId, String objectId, String filter,
163 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
164 Boolean includeRelativePathSegment, ExtensionsData extension) {
165 return fNavSvc.getObjectParents(getCallContext(), repositoryId, objectId, filter, includeAllowableActions,
166 includeRelationships, renditionFilter, includeRelativePathSegment, extension, this);
167 }
168
169
170
171 @Override
172 public String create(String repositoryId, Properties properties, String folderId, ContentStream contentStream,
173 VersioningState versioningState, List<String> policies, ExtensionsData extension) {
174 String id = fObjSvc.create(getCallContext(), repositoryId, properties, folderId, contentStream,
175 versioningState, policies, extension, this);
176 return id;
177
178 }
179
180 @Override
181 public String createDocument(String repositoryId, Properties properties, String folderId,
182 ContentStream contentStream, VersioningState versioningState, List<String> policies, Acl addAces,
183 Acl removeAces, ExtensionsData extension) {
184 return fObjSvc.createDocument(getCallContext(), repositoryId, properties, folderId, contentStream,
185 versioningState, policies, addAces, removeAces, extension);
186 }
187
188 @Override
189 public String createDocumentFromSource(String repositoryId, String sourceId, Properties properties,
190 String folderId, VersioningState versioningState, List<String> policies, Acl addAces, Acl removeAces,
191 ExtensionsData extension) {
192 return fObjSvc.createDocumentFromSource(getCallContext(), repositoryId, sourceId, properties, folderId,
193 versioningState, policies, addAces, removeAces, extension);
194 }
195
196 @Override
197 public String createFolder(String repositoryId, Properties properties, String folderId, List<String> policies,
198 Acl addAces, Acl removeAces, ExtensionsData extension) {
199 return fObjSvc.createFolder(getCallContext(), repositoryId, properties, folderId, policies, addAces,
200 removeAces, extension);
201 }
202
203 @Override
204 public String createPolicy(String repositoryId, Properties properties, String folderId, List<String> policies,
205 Acl addAces, Acl removeAces, ExtensionsData extension) {
206 return fObjSvc.createPolicy(getCallContext(), repositoryId, properties, folderId, policies, addAces,
207 removeAces, extension);
208 }
209
210 @Override
211 public String createRelationship(String repositoryId, Properties properties, List<String> policies, Acl addAces,
212 Acl removeAces, ExtensionsData extension) {
213 return fObjSvc.createRelationship(getCallContext(), repositoryId, properties, policies, addAces, removeAces,
214 extension);
215 }
216
217 @Override
218 public void deleteContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
219 ExtensionsData extension) {
220 fObjSvc.deleteContentStream(getCallContext(), repositoryId, objectId, changeToken, extension);
221 }
222
223 @Override
224 public void deleteObject(String repositoryId, String objectId, Boolean allVersions, ExtensionsData extension) {
225 fObjSvc.deleteObject(getCallContext(), repositoryId, objectId, allVersions, extension);
226 }
227
228 @Override
229 public void deleteObjectOrCancelCheckOut(String repositoryId, String objectId, Boolean allVersions,
230 ExtensionsData extension) {
231 fObjSvc.deleteObject(getCallContext(), repositoryId, objectId, allVersions, extension);
232 }
233
234 @Override
235 public FailedToDeleteData deleteTree(String repositoryId, String folderId, Boolean allVersions,
236 UnfileObject unfileObjects, Boolean continueOnFailure, ExtensionsData extension) {
237 return fObjSvc.deleteTree(getCallContext(), repositoryId, folderId, allVersions, unfileObjects,
238 continueOnFailure, extension);
239 }
240
241 @Override
242 public AllowableActions getAllowableActions(String repositoryId, String objectId, ExtensionsData extension) {
243 return fObjSvc.getAllowableActions(getCallContext(), repositoryId, objectId, extension);
244 }
245
246 @Override
247 public ContentStream getContentStream(String repositoryId, String objectId, String streamId, BigInteger offset,
248 BigInteger length, ExtensionsData extension) {
249 return fObjSvc.getContentStream(getCallContext(), repositoryId, objectId, streamId, offset, length, extension);
250 }
251
252 @Override
253 public ObjectData getObject(String repositoryId, String objectId, String filter, Boolean includeAllowableActions,
254 IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
255 Boolean includeAcl, ExtensionsData extension) {
256 return fObjSvc.getObject(getCallContext(), repositoryId, objectId, filter, includeAllowableActions,
257 includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, this);
258 }
259
260 @Override
261 public ObjectData getObjectByPath(String repositoryId, String path, String filter, Boolean includeAllowableActions,
262 IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
263 Boolean includeAcl, ExtensionsData extension) {
264 return fObjSvc.getObjectByPath(getCallContext(), repositoryId, path, filter, includeAllowableActions,
265 includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, this);
266 }
267
268 @Override
269 public Properties getProperties(String repositoryId, String objectId, String filter, ExtensionsData extension) {
270 return fObjSvc.getProperties(getCallContext(), repositoryId, objectId, filter, extension);
271 }
272
273 @Override
274 public List<RenditionData> getRenditions(String repositoryId, String objectId, String renditionFilter,
275 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
276 return fObjSvc.getRenditions(getCallContext(), repositoryId, objectId, renditionFilter, maxItems, skipCount,
277 extension);
278 }
279
280 @Override
281 public void moveObject(String repositoryId, Holder<String> objectId, String targetFolderId, String sourceFolderId,
282 ExtensionsData extension) {
283 fObjSvc.moveObject(getCallContext(), repositoryId, objectId, targetFolderId, sourceFolderId, extension, this);
284 }
285
286 @Override
287 public void setContentStream(String repositoryId, Holder<String> objectId, Boolean overwriteFlag,
288 Holder<String> changeToken, ContentStream contentStream, ExtensionsData extension) {
289 fObjSvc.setContentStream(getCallContext(), repositoryId, objectId, overwriteFlag, changeToken, contentStream,
290 extension);
291 }
292
293 @Override
294 public void updateProperties(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
295 Properties properties, ExtensionsData extension) {
296 fObjSvc.updateProperties(getCallContext(), repositoryId, objectId, changeToken, properties, null, extension,
297 this);
298 }
299
300
301
302 @Override
303 public void cancelCheckOut(String repositoryId, String objectId, ExtensionsData extension) {
304 fVerSvc.cancelCheckOut(getCallContext(), repositoryId, objectId, extension);
305 }
306
307 @Override
308 public void checkIn(String repositoryId, Holder<String> objectId, Boolean major, Properties properties,
309 ContentStream contentStream, String checkinComment, List<String> policies, Acl addAces, Acl removeAces,
310 ExtensionsData extension) {
311 fVerSvc.checkIn(getCallContext(), repositoryId, objectId, major, properties, contentStream, checkinComment,
312 policies, addAces, removeAces, extension, this);
313 }
314
315 @Override
316 public void checkOut(String repositoryId, Holder<String> objectId, ExtensionsData extension,
317 Holder<Boolean> contentCopied) {
318 fVerSvc.checkOut(getCallContext(), repositoryId, objectId, extension, contentCopied, this);
319 }
320
321 @Override
322 public ObjectData getObjectOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
323 Boolean major, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
324 String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension) {
325 return fVerSvc.getObjectOfLatestVersion(getCallContext(), repositoryId, objectId, versionSeriesId, major, filter,
326 includeAllowableActions, includeRelationships, renditionFilter, includePolicyIds, includeAcl,
327 extension, this);
328 }
329
330 @Override
331 public Properties getPropertiesOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
332 Boolean major, String filter, ExtensionsData extension) {
333 return fVerSvc.getPropertiesOfLatestVersion(getCallContext(), repositoryId, objectId, versionSeriesId, major, filter,
334 extension);
335 }
336
337 @Override
338 public List<ObjectData> getAllVersions(String repositoryId, String objectId, String versionSeriesId, String filter,
339 Boolean includeAllowableActions, ExtensionsData extension) {
340 return fVerSvc.getAllVersions(getCallContext(), repositoryId, objectId, versionSeriesId,
341 filter, includeAllowableActions, extension, this);
342 }
343
344
345
346 @Override
347 public ObjectList getContentChanges(String repositoryId, Holder<String> changeLogToken, Boolean includeProperties,
348 String filter, Boolean includePolicyIds, Boolean includeAcl, BigInteger maxItems, ExtensionsData extension) {
349 return fDisSvc.getContentChanges(getCallContext(), repositoryId, changeLogToken, includeProperties, filter, includePolicyIds,
350 includeAcl, maxItems, extension, this);
351 }
352
353 @Override
354 public ObjectList query(String repositoryId, String statement, Boolean searchAllVersions,
355 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
356 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
357 return fDisSvc.query(getCallContext(), repositoryId, statement, searchAllVersions, includeAllowableActions,
358 includeRelationships, renditionFilter, maxItems, skipCount, extension);
359 }
360
361
362
363 @Override
364 public void addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
365 ExtensionsData extension) {
366 fMultiSvc.addObjectToFolder(getCallContext(), repositoryId, objectId, folderId, allVersions, extension, this);
367 }
368
369 @Override
370 public void removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
371 fMultiSvc.removeObjectFromFolder(getCallContext(), repositoryId, objectId, folderId, extension, this);
372 }
373
374
375
376 @Override
377 public ObjectList getObjectRelationships(String repositoryId, String objectId, Boolean includeSubRelationshipTypes,
378 RelationshipDirection relationshipDirection, String typeId, String filter, Boolean includeAllowableActions,
379 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
380 return super.getObjectRelationships(repositoryId, objectId, includeSubRelationshipTypes, relationshipDirection,
381 typeId, filter, includeAllowableActions, maxItems, skipCount, extension);
382 }
383
384
385
386 @Override
387 public Acl applyAcl(String repositoryId, String objectId, Acl aces, AclPropagation aclPropagation) {
388 return fAclSvc.applyAcl(getCallContext(), repositoryId, objectId, aces, aclPropagation);
389 }
390
391 @Override
392 public Acl applyAcl(String repositoryId, String objectId, Acl addAces, Acl removeAces,
393 AclPropagation aclPropagation, ExtensionsData extension) {
394 return fAclSvc.applyAcl(getCallContext(), repositoryId, objectId, addAces, removeAces, aclPropagation, extension, this);
395 }
396
397 @Override
398 public Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
399 return fAclSvc.getAcl(getCallContext(), repositoryId, objectId, onlyBasicPermissions, extension, this);
400 }
401
402
403
404 @Override
405 public void applyPolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
406 super.applyPolicy(repositoryId, policyId, objectId, extension);
407 }
408
409 @Override
410 public List<ObjectData> getAppliedPolicies(String repositoryId, String objectId, String filter,
411 ExtensionsData extension) {
412 return super.getAppliedPolicies(repositoryId, objectId, filter, extension);
413 }
414
415 @Override
416 public void removePolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
417 super.removePolicy(repositoryId, policyId, objectId, extension);
418 }
419
420
421
422 }