This project has retired. For details please refer to its Attic page.
Folder xref

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   * http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.chemistry.opencmis.client.api;
20  
21  import java.util.List;
22  import java.util.Map;
23  
24  import org.apache.chemistry.opencmis.commons.data.Ace;
25  import org.apache.chemistry.opencmis.commons.data.ContentStream;
26  import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
27  import org.apache.chemistry.opencmis.commons.enums.VersioningState;
28  
29  /**
30   * CMIS Folder.
31   * <p>
32   * See Domain Model 2.5
33   */
34  public interface Folder extends FileableCmisObject, FolderProperties {
35  
36      TransientFolder getTransientFolder();
37  
38      // object service
39  
40      /**
41       * Creates a new document in this folder.
42       * 
43       * @return the new document object or <code>null</code> if the parameter
44       *         <code>context</code> was set to <code>null</code>
45       */
46      Document createDocument(Map<String, ?> properties, ContentStream contentStream, VersioningState versioningState,
47              List<Policy> policies, List<Ace> addAces, List<Ace> removeAces, OperationContext context);
48  
49      /**
50       * Creates a new document in this folder.
51       * 
52       * @return the new document object
53       */
54      Document createDocument(Map<String, ?> properties, ContentStream contentStream, VersioningState versioningState);
55  
56      /**
57       * Creates a new document from a source document in this folder.
58       * 
59       * @return the new document object or <code>null</code> if the parameter
60       *         <code>context</code> was set to <code>null</code>
61       */
62      Document createDocumentFromSource(ObjectId source, Map<String, ?> properties, VersioningState versioningState,
63              List<Policy> policies, List<Ace> addAces, List<Ace> removeAces, OperationContext context);
64  
65      /**
66       * Creates a new document from a source document in this folder.
67       * 
68       * @return the new document object
69       */
70      Document createDocumentFromSource(ObjectId source, Map<String, ?> properties, VersioningState versioningState);
71  
72      /**
73       * Creates a new subfolder in this folder.
74       * 
75       * @return the new folder object or <code>null</code> if the parameter
76       *         <code>context</code> was set to <code>null</code>
77       */
78      Folder createFolder(Map<String, ?> properties, List<Policy> policies, List<Ace> addAces, List<Ace> removeAces,
79              OperationContext context);
80  
81      /**
82       * Creates a new subfolder in this folder.
83       * 
84       * @return the new folder object
85       */
86      Folder createFolder(Map<String, ?> properties);
87  
88      /**
89       * Creates a new policy in this folder.
90       * 
91       * @return the new policy object or <code>null</code> if the parameter
92       *         <code>context</code> was set to <code>null</code>
93       */
94      Policy createPolicy(Map<String, ?> properties, List<Policy> policies, List<Ace> addAces, List<Ace> removeAces,
95              OperationContext context);
96  
97      /**
98       * Creates a new policy in this folder.
99       * 
100      * @return the new policy object
101      */
102     Policy createPolicy(Map<String, ?> properties);
103 
104     /**
105      * Deletes this folder and all subfolders.
106      * 
107      * @return a list of object ids which failed to be deleted
108      */
109     List<String> deleteTree(boolean allversions, UnfileObject unfile, boolean continueOnFailure);
110 
111     // navigation service
112 
113     /**
114      * Gets the folder tree starting with this folder.
115      */
116     List<Tree<FileableCmisObject>> getFolderTree(int depth);
117 
118     /**
119      * Gets the folder tree starting with this folder using the given
120      * {@link OperationContext}.
121      */
122     List<Tree<FileableCmisObject>> getFolderTree(int depth, OperationContext context);
123 
124     /**
125      * Gets the folder descendants starting with this folder.
126      */
127     List<Tree<FileableCmisObject>> getDescendants(int depth);
128 
129     /**
130      * Gets the folder descendants starting with this folder using the given
131      * {@link OperationContext}.
132      */
133     List<Tree<FileableCmisObject>> getDescendants(int depth, OperationContext context);
134 
135     /**
136      * Returns the children of this folder.
137      */
138     ItemIterable<CmisObject> getChildren();
139 
140     /**
141      * Returns the children of this folder using the given
142      * {@link OperationContext}.
143      */
144     ItemIterable<CmisObject> getChildren(OperationContext context);
145 
146     /**
147      * Returns if the folder is the root folder.
148      */
149     boolean isRootFolder();
150 
151     /**
152      * Gets the parent folder object
153      * 
154      * @return the parent folder object or <code>null</code> if the folder is
155      *         the root folder.
156      */
157     Folder getFolderParent();
158 
159     /**
160      * Returns the path of the folder.
161      */
162     String getPath();
163 
164     /**
165      * Returns all checked out documents in this folder.
166      */
167     ItemIterable<Document> getCheckedOutDocs();
168 
169     /**
170      * Returns all checked out documents in this folder using the given
171      * {@link OperationContext}.
172      */
173     ItemIterable<Document> getCheckedOutDocs(OperationContext context);
174 }