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.ExtensionsData;
25 import org.apache.chemistry.opencmis.commons.server.CmisService;
26 import org.apache.chemistry.opencmis.commons.server.CmisServiceFactory;
27 import org.apache.chemistry.opencmis.commons.spi.MultiFilingService;
28
29 public class MultiFilingServiceImpl extends AbstractLocalService implements MultiFilingService {
30
31
32
33
34 public MultiFilingServiceImpl(BindingSession session, CmisServiceFactory factory) {
35 setSession(session);
36 setServiceFactory(factory);
37 }
38
39 @Override
40 public void addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
41 ExtensionsData extension) {
42 CmisService service = getService(repositoryId);
43
44 try {
45 if (stopBeforeService(service)) {
46 return;
47 }
48
49 service.addObjectToFolder(repositoryId, objectId, folderId, allVersions, extension);
50
51 if (stopAfterService(service)) {
52 return;
53 }
54 } finally {
55 service.close();
56 }
57 }
58
59 @Override
60 public void removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
61 CmisService service = getService(repositoryId);
62
63 try {
64 if (stopBeforeService(service)) {
65 return;
66 }
67
68 service.removeObjectFromFolder(repositoryId, objectId, folderId, extension);
69
70 if (stopAfterService(service)) {
71 return;
72 }
73 } finally {
74 service.close();
75 }
76 }
77 }