This project has retired. For details please refer to its
Attic page.
FileShareService xref
1 package org.apache.chemistry.opencmis.fileshare;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import java.math.BigInteger;
25 import java.util.ArrayList;
26 import java.util.Collections;
27 import java.util.List;
28
29 import org.apache.chemistry.opencmis.commons.data.Acl;
30 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
31 import org.apache.chemistry.opencmis.commons.data.ContentStream;
32 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
33 import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
34 import org.apache.chemistry.opencmis.commons.data.ObjectData;
35 import org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
36 import org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
37 import org.apache.chemistry.opencmis.commons.data.ObjectList;
38 import org.apache.chemistry.opencmis.commons.data.ObjectParentData;
39 import org.apache.chemistry.opencmis.commons.data.Properties;
40 import org.apache.chemistry.opencmis.commons.data.RenditionData;
41 import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
42 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
43 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
44 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
45 import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
46 import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
47 import org.apache.chemistry.opencmis.commons.enums.VersioningState;
48 import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
49 import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectListImpl;
50 import org.apache.chemistry.opencmis.commons.impl.server.AbstractCmisService;
51 import org.apache.chemistry.opencmis.commons.server.CallContext;
52 import org.apache.chemistry.opencmis.commons.spi.Holder;
53
54
55
56
57 public class FileShareService extends AbstractCmisService {
58
59 private final RepositoryMap repositoryMap;
60 private CallContext context;
61
62
63
64
65 public FileShareService(RepositoryMap repositoryMap) {
66 this.repositoryMap = repositoryMap;
67 }
68
69
70
71 public void setCallContext(CallContext context) {
72 this.context = context;
73 }
74
75 public CallContext getCallContext() {
76 return context;
77 }
78
79 public FileShareRepository getRepository() {
80 return repositoryMap.getRepository(getCallContext().getRepositoryId());
81 }
82
83
84
85 @Override
86 public RepositoryInfo getRepositoryInfo(String repositoryId, ExtensionsData extension) {
87 for (FileShareRepository fsr : repositoryMap.getRepositories()) {
88 if (fsr.getRepositoryId().equals(repositoryId)) {
89 return fsr.getRepositoryInfo(getCallContext());
90 }
91 }
92
93 throw new CmisObjectNotFoundException("Unknown repository '" + repositoryId + "'!");
94 }
95
96 @Override
97 public List<RepositoryInfo> getRepositoryInfos(ExtensionsData extension) {
98 List<RepositoryInfo> result = new ArrayList<RepositoryInfo>();
99
100 for (FileShareRepository fsr : repositoryMap.getRepositories()) {
101 result.add(fsr.getRepositoryInfo(getCallContext()));
102 }
103
104 return result;
105 }
106
107 @Override
108 public TypeDefinitionList getTypeChildren(String repositoryId, String typeId, Boolean includePropertyDefinitions,
109 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
110 return getRepository().getTypesChildren(getCallContext(), typeId, includePropertyDefinitions, maxItems,
111 skipCount);
112 }
113
114 @Override
115 public TypeDefinition getTypeDefinition(String repositoryId, String typeId, ExtensionsData extension) {
116 return getRepository().getTypeDefinition(getCallContext(), typeId);
117 }
118
119 @Override
120 public List<TypeDefinitionContainer> getTypeDescendants(String repositoryId, String typeId, BigInteger depth,
121 Boolean includePropertyDefinitions, ExtensionsData extension) {
122 return getRepository().getTypesDescendants(getCallContext(), typeId, depth, includePropertyDefinitions);
123 }
124
125
126
127 @Override
128 public ObjectInFolderList getChildren(String repositoryId, String folderId, String filter, String orderBy,
129 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
130 Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
131 return getRepository().getChildren(getCallContext(), folderId, filter, includeAllowableActions,
132 includePathSegment, maxItems, skipCount, this);
133 }
134
135 @Override
136 public List<ObjectInFolderContainer> getDescendants(String repositoryId, String folderId, BigInteger depth,
137 String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
138 String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
139 return getRepository().getDescendants(getCallContext(), folderId, depth, filter, includeAllowableActions,
140 includePathSegment, this, false);
141 }
142
143 @Override
144 public ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
145 return getRepository().getFolderParent(getCallContext(), folderId, filter, this);
146 }
147
148 @Override
149 public List<ObjectInFolderContainer> getFolderTree(String repositoryId, String folderId, BigInteger depth,
150 String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
151 String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
152 return getRepository().getDescendants(getCallContext(), folderId, depth, filter, includeAllowableActions,
153 includePathSegment, this, true);
154 }
155
156 @Override
157 public List<ObjectParentData> getObjectParents(String repositoryId, String objectId, String filter,
158 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
159 Boolean includeRelativePathSegment, ExtensionsData extension) {
160 return getRepository().getObjectParents(getCallContext(), objectId, filter, includeAllowableActions,
161 includeRelativePathSegment, this);
162 }
163
164 @Override
165 public ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
166 Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
167 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
168 ObjectListImpl result = new ObjectListImpl();
169 result.setHasMoreItems(false);
170 result.setNumItems(BigInteger.ZERO);
171 List<ObjectData> emptyList = Collections.emptyList();
172 result.setObjects(emptyList);
173
174 return result;
175 }
176
177
178
179 @Override
180 public String create(String repositoryId, Properties properties, String folderId, ContentStream contentStream,
181 VersioningState versioningState, List<String> policies, ExtensionsData extension) {
182 ObjectData object = getRepository().create(getCallContext(), properties, folderId, contentStream,
183 versioningState, this);
184
185 return object.getId();
186 }
187
188 @Override
189 public String createDocument(String repositoryId, Properties properties, String folderId,
190 ContentStream contentStream, VersioningState versioningState, List<String> policies, Acl addAces,
191 Acl removeAces, ExtensionsData extension) {
192 return getRepository().createDocument(getCallContext(), properties, folderId, contentStream, versioningState);
193 }
194
195 @Override
196 public String createDocumentFromSource(String repositoryId, String sourceId, Properties properties,
197 String folderId, VersioningState versioningState, List<String> policies, Acl addAces, Acl removeAces,
198 ExtensionsData extension) {
199 return getRepository().createDocumentFromSource(getCallContext(), sourceId, properties, folderId,
200 versioningState);
201 }
202
203 @Override
204 public String createFolder(String repositoryId, Properties properties, String folderId, List<String> policies,
205 Acl addAces, Acl removeAces, ExtensionsData extension) {
206 return getRepository().createFolder(getCallContext(), properties, folderId);
207 }
208
209 @Override
210 public void deleteContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
211 ExtensionsData extension) {
212 getRepository().setContentStream(getCallContext(), objectId, true, null);
213 }
214
215 @Override
216 public void deleteObjectOrCancelCheckOut(String repositoryId, String objectId, Boolean allVersions,
217 ExtensionsData extension) {
218 getRepository().deleteObject(getCallContext(), objectId);
219 }
220
221 @Override
222 public FailedToDeleteData deleteTree(String repositoryId, String folderId, Boolean allVersions,
223 UnfileObject unfileObjects, Boolean continueOnFailure, ExtensionsData extension) {
224 return getRepository().deleteTree(getCallContext(), folderId, continueOnFailure);
225 }
226
227 @Override
228 public AllowableActions getAllowableActions(String repositoryId, String objectId, ExtensionsData extension) {
229 return getRepository().getAllowableActions(getCallContext(), objectId);
230 }
231
232 @Override
233 public ContentStream getContentStream(String repositoryId, String objectId, String streamId, BigInteger offset,
234 BigInteger length, ExtensionsData extension) {
235 return getRepository().getContentStream(getCallContext(), objectId, offset, length);
236 }
237
238 @Override
239 public ObjectData getObject(String repositoryId, String objectId, String filter, Boolean includeAllowableActions,
240 IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
241 Boolean includeAcl, ExtensionsData extension) {
242 return getRepository().getObject(getCallContext(), objectId, null, filter, includeAllowableActions, includeAcl,
243 this);
244 }
245
246 @Override
247 public ObjectData getObjectByPath(String repositoryId, String path, String filter, Boolean includeAllowableActions,
248 IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
249 Boolean includeAcl, ExtensionsData extension) {
250 return getRepository().getObjectByPath(getCallContext(), path, filter, includeAllowableActions, includeAcl,
251 this);
252 }
253
254 @Override
255 public Properties getProperties(String repositoryId, String objectId, String filter, ExtensionsData extension) {
256 ObjectData object = getRepository().getObject(getCallContext(), objectId, null, filter, false, false, this);
257 return object.getProperties();
258 }
259
260 @Override
261 public List<RenditionData> getRenditions(String repositoryId, String objectId, String renditionFilter,
262 BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
263 return Collections.emptyList();
264 }
265
266 @Override
267 public void moveObject(String repositoryId, Holder<String> objectId, String targetFolderId, String sourceFolderId,
268 ExtensionsData extension) {
269 getRepository().moveObject(getCallContext(), objectId, targetFolderId, this);
270 }
271
272 @Override
273 public void setContentStream(String repositoryId, Holder<String> objectId, Boolean overwriteFlag,
274 Holder<String> changeToken, ContentStream contentStream, ExtensionsData extension) {
275 getRepository().setContentStream(getCallContext(), objectId, overwriteFlag, contentStream);
276 }
277
278 @Override
279 public void updateProperties(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
280 Properties properties, ExtensionsData extension) {
281 getRepository().updateProperties(getCallContext(), objectId, properties, this);
282 }
283
284
285
286 @Override
287 public List<ObjectData> getAllVersions(String repositoryId, String objectId, String versionSeriesId, String filter,
288 Boolean includeAllowableActions, ExtensionsData extension) {
289 ObjectData theVersion = getRepository().getObject(getCallContext(), objectId, versionSeriesId, filter,
290 includeAllowableActions, false, this);
291
292 return Collections.singletonList(theVersion);
293 }
294
295 @Override
296 public ObjectData getObjectOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
297 Boolean major, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
298 String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension) {
299 return getRepository().getObject(getCallContext(), objectId, versionSeriesId, filter, includeAllowableActions,
300 includeAcl, this);
301 }
302
303 @Override
304 public Properties getPropertiesOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
305 Boolean major, String filter, ExtensionsData extension) {
306 ObjectData object = getRepository().getObject(getCallContext(), objectId, versionSeriesId, filter, false,
307 false, null);
308
309 return object.getProperties();
310 }
311
312
313
314 @Override
315 public Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
316 return getRepository().getAcl(getCallContext(), objectId);
317 }
318 }