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.convert;
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.RelationshipDirection;
29 import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
30 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisException;
31 import org.apache.chemistry.opencmis.commons.impl.jaxb.EnumRelationshipDirection;
32 import org.apache.chemistry.opencmis.commons.impl.jaxb.RelationshipServicePort;
33 import org.apache.chemistry.opencmis.commons.spi.RelationshipService;
34
35
36
37
38 public class RelationshipServiceImpl extends AbstractWebServicesService implements RelationshipService {
39
40 private final AbstractPortProvider portProvider;
41
42
43
44
45 public RelationshipServiceImpl(BindingSession session, AbstractPortProvider portProvider) {
46 setSession(session);
47 this.portProvider = portProvider;
48 }
49
50 @Override
51 public ObjectList getObjectRelationships(String repositoryId, String objectId, Boolean includeSubRelationshipTypes,
52 RelationshipDirection relationshipDirection, String typeId, String filter, Boolean includeAllowableActions,
53 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
54 RelationshipServicePort port = portProvider.getRelationshipServicePort(getCmisVersion(repositoryId),
55 "getObjectRelationships");
56
57 try {
58 return convert(port.getObjectRelationships(repositoryId, objectId, includeSubRelationshipTypes,
59 convert(EnumRelationshipDirection.class, relationshipDirection), typeId, filter,
60 includeAllowableActions, maxItems, skipCount, convert(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 }