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.io.Serializable;
22 import java.util.Set;
23
24 import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
25
26 /**
27 * An <code>OperationContext</code> object defines the filtering, paging and
28 * caching of an operation.
29 */
30 public interface OperationContext extends Serializable {
31
32 /**
33 * Returns the current filter.
34 *
35 * @return a set of <em>query names</em>
36 */
37 Set<String> getFilter();
38
39 /**
40 * Sets the current filter.
41 *
42 * @param propertyFilter
43 * a set of <em>query names</em>
44 */
45 void setFilter(Set<String> propertyFilter);
46
47 /**
48 * Sets the current filter.
49 *
50 * @param propertyFilter
51 * a comma separated list of <em>query names</em>
52 */
53 void setFilterString(String propertyFilter);
54
55 /**
56 * Returns the filter extended by cmis:objectId, cmis:objectTypeId and
57 * cmis:baseTypeId.
58 */
59 String getFilterString();
60
61 /**
62 * Returns if allowable actions should returned.
63 */
64 boolean isIncludeAllowableActions();
65
66 /**
67 * Sets if allowable actions should returned.
68 */
69 void setIncludeAllowableActions(boolean include);
70
71 /**
72 * Returns if ACLs should returned.
73 */
74 boolean isIncludeAcls();
75
76 /**
77 * Sets if ACLs should returned.
78 */
79 void setIncludeAcls(boolean include);
80
81 /**
82 * Returns which relationships should be returned.
83 */
84 IncludeRelationships getIncludeRelationships();
85
86 /**
87 * Sets which relationships should be returned.
88 */
89 void setIncludeRelationships(IncludeRelationships include);
90
91 /**
92 * Returns if policies should returned.
93 */
94 boolean isIncludePolicies();
95
96 /**
97 * Sets if policies should returned.
98 */
99 void setIncludePolicies(boolean include);
100
101 /**
102 * Returns the current rendition filter. (See CMIS spec
103 * "2.2.1.2.4.1 Rendition Filter Grammar")
104 *
105 * @return a set of rendition filter terms
106 */
107 Set<String> getRenditionFilter();
108
109 /**
110 * Sets the current rendition filter. (See CMIS spec
111 * "2.2.1.2.4.1 Rendition Filter Grammar")
112 *
113 * @param renditionFilter
114 * a set of rendition filter terms
115 */
116 void setRenditionFilter(Set<String> renditionFilter);
117
118 /**
119 * Sets the current rendition filter. (See CMIS spec
120 * "2.2.1.2.4.1 Rendition Filter Grammar")
121 *
122 * @param renditionFilter
123 * a comma separated list of rendition filter terms
124 */
125 void setRenditionFilterString(String renditionFilter);
126
127 /**
128 * Returns the current rendition filter. (See CMIS spec
129 * "2.2.1.2.4.1 Rendition Filter Grammar")
130 *
131 * @return a comma separated list of rendition filter terms
132 */
133 String getRenditionFilterString();
134
135 /**
136 * Returns if path segments should returned.
137 */
138 boolean isIncludePathSegments();
139
140 /**
141 * Sets if path segments should returned.
142 */
143 void setIncludePathSegments(boolean include);
144
145 /**
146 * Returns the order by rule for operations that return lists.
147 *
148 * @return a comma-separated list of <em>query names</em> and the ascending
149 * modifier "ASC" or the descending modifier "DESC" for each query
150 * name
151 */
152 String getOrderBy();
153
154 /**
155 * Sets the order by rule for operations that return lists.
156 *
157 * @param orderBy
158 * a comma-separated list of <em>query names</em> and the
159 * ascending modifier "ASC" or the descending modifier "DESC" for
160 * each query name
161 */
162 void setOrderBy(String orderBy);
163
164 /**
165 * Return if caching is enabled.
166 */
167 boolean isCacheEnabled();
168
169 /**
170 * Enables or disables the cache.
171 */
172 void setCacheEnabled(boolean cacheEnabled);
173
174 /**
175 * Returns a key for this OperationContext object that is used for caching.
176 */
177 String getCacheKey();
178
179 /**
180 * Set the max number of items per page for operations that return lists.
181 *
182 * @param maxItemsPerPage
183 * max number of items (must be >0)
184 */
185 void setMaxItemsPerPage(int maxItemsPerPage);
186
187 /**
188 * Returns the current max number of items per page.
189 */
190 int getMaxItemsPerPage();
191 }