This project has retired. For details please refer to its
Attic page.
NavigationServiceImpl 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.client.bindings.spi.webservices;
20
21 import static org.apache.chemistry.opencmis.commons.impl.Converter.convert;
22
23 import java.math.BigInteger;
24 import java.util.ArrayList;
25 import java.util.List;
26
27 import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
28 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
29 import org.apache.chemistry.opencmis.commons.data.ObjectData;
30 import org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
31 import org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
32 import org.apache.chemistry.opencmis.commons.data.ObjectList;
33 import org.apache.chemistry.opencmis.commons.data.ObjectParentData;
34 import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
35 import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
36 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisException;
37 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectInFolderContainerType;
38 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectParentsType;
39 import org.apache.chemistry.opencmis.commons.impl.jaxb.EnumIncludeRelationships;
40 import org.apache.chemistry.opencmis.commons.impl.jaxb.NavigationServicePort;
41 import org.apache.chemistry.opencmis.commons.spi.NavigationService;
42
43
44
45
46 public class NavigationServiceImpl extends AbstractWebServicesService implements NavigationService {
47
48 private final AbstractPortProvider portProvider;
49
50
51
52
53 public NavigationServiceImpl(BindingSession session, AbstractPortProvider portProvider) {
54 setSession(session);
55 this.portProvider = portProvider;
56 }
57
58 public ObjectInFolderList getChildren(String repositoryId, String folderId, String filter, String orderBy,
59 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
60 Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
61 NavigationServicePort port = portProvider.getNavigationServicePort();
62
63 try {
64 return convert(port.getChildren(repositoryId, folderId, filter, orderBy, includeAllowableActions,
65 convert(EnumIncludeRelationships.class, includeRelationships), renditionFilter, includePathSegment,
66 maxItems, skipCount, convert(extension)));
67 } catch (CmisException e) {
68 throw convertException(e);
69 } catch (Exception e) {
70 throw new CmisRuntimeException("Error: " + e.getMessage(), e);
71 } finally {
72 portProvider.endCall(port);
73 }
74 }
75
76 public List<ObjectInFolderContainer> getDescendants(String repositoryId, String folderId, BigInteger depth,
77 String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
78 String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
79 NavigationServicePort port = portProvider.getNavigationServicePort();
80
81 try {
82 List<CmisObjectInFolderContainerType> containerList = port.getDescendants(repositoryId, folderId, depth,
83 filter, includeAllowableActions, convert(EnumIncludeRelationships.class, includeRelationships),
84 renditionFilter, includePathSegment, convert(extension));
85
86
87 if (containerList == null) {
88 return null;
89 }
90
91
92 List<ObjectInFolderContainer> result = new ArrayList<ObjectInFolderContainer>();
93 for (CmisObjectInFolderContainerType container : containerList) {
94 result.add(convert(container));
95 }
96
97 return result;
98 } catch (CmisException e) {
99 throw convertException(e);
100 } catch (Exception e) {
101 throw new CmisRuntimeException("Error: " + e.getMessage(), e);
102 } finally {
103 portProvider.endCall(port);
104 }
105 }
106
107 public ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
108 NavigationServicePort port = portProvider.getNavigationServicePort();
109
110 try {
111 return convert(port.getFolderParent(repositoryId, folderId, filter, convert(extension)));
112 } catch (CmisException e) {
113 throw convertException(e);
114 } catch (Exception e) {
115 throw new CmisRuntimeException("Error: " + e.getMessage(), e);
116 } finally {
117 portProvider.endCall(port);
118 }
119 }
120
121 public List<ObjectInFolderContainer> getFolderTree(String repositoryId, String folderId, BigInteger depth,
122 String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
123 String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
124 NavigationServicePort port = portProvider.getNavigationServicePort();
125
126 try {
127 List<CmisObjectInFolderContainerType> containerList = port.getFolderTree(repositoryId, folderId, depth,
128 filter, includeAllowableActions, convert(EnumIncludeRelationships.class, includeRelationships),
129 renditionFilter, includePathSegment, convert(extension));
130
131
132 if (containerList == null) {
133 return null;
134 }
135
136
137 List<ObjectInFolderContainer> result = new ArrayList<ObjectInFolderContainer>();
138 for (CmisObjectInFolderContainerType container : containerList) {
139 result.add(convert(container));
140 }
141
142 return result;
143 } catch (CmisException e) {
144 throw convertException(e);
145 } catch (Exception e) {
146 throw new CmisRuntimeException("Error: " + e.getMessage(), e);
147 } finally {
148 portProvider.endCall(port);
149 }
150 }
151
152 public List<ObjectParentData> getObjectParents(String repositoryId, String objectId, String filter,
153 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
154 Boolean includeRelativePathSegment, ExtensionsData extension) {
155 NavigationServicePort port = portProvider.getNavigationServicePort();
156
157 try {
158 List<CmisObjectParentsType> parentsList = port.getObjectParents(repositoryId, objectId, filter,
159 includeAllowableActions, convert(EnumIncludeRelationships.class, includeRelationships),
160 renditionFilter, includeRelativePathSegment, convert(extension));
161
162
163 if (parentsList == null) {
164 return null;
165 }
166
167
168 List<ObjectParentData> result = new ArrayList<ObjectParentData>();
169 for (CmisObjectParentsType parent : parentsList) {
170 result.add(convert(parent));
171 }
172
173 return result;
174 } catch (CmisException e) {
175 throw convertException(e);
176 } catch (Exception e) {
177 throw new CmisRuntimeException("Error: " + e.getMessage(), e);
178 } finally {
179 portProvider.endCall(port);
180 }
181 }
182
183 public ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
184 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
185 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
186 NavigationServicePort port = portProvider.getNavigationServicePort();
187
188 try {
189 return convert(port.getCheckedOutDocs(repositoryId, folderId, filter, orderBy, includeAllowableActions,
190 convert(EnumIncludeRelationships.class, includeRelationships), renditionFilter, maxItems,
191 skipCount, convert(extension)));
192 } catch (CmisException e) {
193 throw convertException(e);
194 } catch (Exception e) {
195 throw new CmisRuntimeException("Error: " + e.getMessage(), e);
196 } finally {
197 portProvider.endCall(port);
198 }
199 }
200 }