1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.chemistry.opencmis.client.bindings.spi.webservices;
20
21 import static org.apache.chemistry.opencmis.commons.impl.WSConverter.convertExtensionHolder;
22 import static org.apache.chemistry.opencmis.commons.impl.WSConverter.setExtensionValues;
23
24 import javax.xml.ws.Holder;
25
26 import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
27 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
28 import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
29 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisException;
30 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisExtensionType;
31 import org.apache.chemistry.opencmis.commons.impl.jaxb.MultiFilingServicePort;
32 import org.apache.chemistry.opencmis.commons.spi.MultiFilingService;
33
34
35
36
37 public class MultiFilingServiceImpl extends AbstractWebServicesService implements MultiFilingService {
38
39 private final AbstractPortProvider portProvider;
40
41
42
43
44 public MultiFilingServiceImpl(BindingSession session, AbstractPortProvider portProvider) {
45 setSession(session);
46 this.portProvider = portProvider;
47 }
48
49 @Override
50 public void addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
51 ExtensionsData extension) {
52 MultiFilingServicePort port = portProvider.getMultiFilingServicePort(getCmisVersion(repositoryId),
53 "addObjectToFolder");
54
55 try {
56 Holder<CmisExtensionType> portExtension = convertExtensionHolder(extension);
57
58 port.addObjectToFolder(repositoryId, objectId, folderId, allVersions, portExtension);
59
60 setExtensionValues(portExtension, extension);
61 } catch (CmisException e) {
62 throw convertException(e);
63 } catch (Exception e) {
64 throw new CmisRuntimeException("Error: " + e.getMessage(), e);
65 } finally {
66 portProvider.endCall(port);
67 }
68 }
69
70 @Override
71 public void removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
72 MultiFilingServicePort port = portProvider.getMultiFilingServicePort(getCmisVersion(repositoryId),
73 "removeObjectFromFolder");
74
75 try {
76 Holder<CmisExtensionType> portExtension = convertExtensionHolder(extension);
77
78 port.removeObjectFromFolder(repositoryId, objectId, folderId, portExtension);
79
80 setExtensionValues(portExtension, extension);
81 } catch (CmisException e) {
82 throw convertException(e);
83 } catch (Exception e) {
84 throw new CmisRuntimeException("Error: " + e.getMessage(), e);
85 } finally {
86 portProvider.endCall(port);
87 }
88 }
89 }