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 string of <em>query names</em> or "*" for 52 * all properties or {@code null} to let the repository determine 53 * a set of properties 54 */ 55 void setFilterString(String propertyFilter); 56 57 /** 58 * Returns the filter extended by cmis:objectId, cmis:objectTypeId and 59 * cmis:baseTypeId. 60 */ 61 String getFilterString(); 62 63 /** 64 * Sets if secondary type properties should be loaded. 65 * 66 * @cmis 1.1 67 */ 68 void setLoadSecondaryTypeProperties(boolean load); 69 70 /** 71 * Returns is secondary type properties should be loaded. 72 * 73 * @cmis 1.1 74 */ 75 boolean loadSecondaryTypeProperties(); 76 77 /** 78 * Returns if allowable actions should returned. 79 */ 80 boolean isIncludeAllowableActions(); 81 82 /** 83 * Sets if allowable actions should returned. 84 */ 85 void setIncludeAllowableActions(boolean include); 86 87 /** 88 * Returns if ACLs should returned. 89 */ 90 boolean isIncludeAcls(); 91 92 /** 93 * Sets if ACLs should returned. 94 */ 95 void setIncludeAcls(boolean include); 96 97 /** 98 * Returns which relationships should be returned. 99 */ 100 IncludeRelationships getIncludeRelationships(); 101 102 /** 103 * Sets which relationships should be returned. 104 */ 105 void setIncludeRelationships(IncludeRelationships include); 106 107 /** 108 * Returns if policies should returned. 109 */ 110 boolean isIncludePolicies(); 111 112 /** 113 * Sets if policies should returned. 114 */ 115 void setIncludePolicies(boolean include); 116 117 /** 118 * Returns the current rendition filter. (See CMIS spec 119 * "2.2.1.2.4.1 Rendition Filter Grammar") 120 * 121 * @return a set of rendition filter terms 122 */ 123 Set<String> getRenditionFilter(); 124 125 /** 126 * Sets the current rendition filter. (See CMIS spec 127 * "2.2.1.2.4.1 Rendition Filter Grammar") 128 * 129 * @param renditionFilter 130 * a set of rendition filter terms 131 */ 132 void setRenditionFilter(Set<String> renditionFilter); 133 134 /** 135 * Sets the current rendition filter. (See CMIS spec 136 * "2.2.1.2.4.1 Rendition Filter Grammar") 137 * 138 * @param renditionFilter 139 * a comma separated list of rendition filter terms 140 */ 141 void setRenditionFilterString(String renditionFilter); 142 143 /** 144 * Returns the current rendition filter. (See CMIS spec 145 * "2.2.1.2.4.1 Rendition Filter Grammar") 146 * 147 * @return a comma separated list of rendition filter terms 148 */ 149 String getRenditionFilterString(); 150 151 /** 152 * Returns if path segments should returned. 153 */ 154 boolean isIncludePathSegments(); 155 156 /** 157 * Sets if path segments should returned. 158 */ 159 void setIncludePathSegments(boolean include); 160 161 /** 162 * Returns the order by rule for operations that return lists. 163 * 164 * @return a comma-separated list of <em>query names</em> and the ascending 165 * modifier "ASC" or the descending modifier "DESC" for each query 166 * name 167 */ 168 String getOrderBy(); 169 170 /** 171 * Sets the order by rule for operations that return lists. 172 * 173 * @param orderBy 174 * a comma-separated list of <em>query names</em> and the 175 * ascending modifier "ASC" or the descending modifier "DESC" for 176 * each query name 177 */ 178 void setOrderBy(String orderBy); 179 180 /** 181 * Return if caching is enabled. 182 */ 183 boolean isCacheEnabled(); 184 185 /** 186 * Enables or disables the cache. 187 */ 188 void setCacheEnabled(boolean cacheEnabled); 189 190 /** 191 * Returns a key for this OperationContext object that is used for caching. 192 */ 193 String getCacheKey(); 194 195 /** 196 * Set the max number of items per batch for operations that return lists. 197 * 198 * This option does not restrict the number of returned items. To retrieve 199 * an excerpt (page) of a list, see {@link ItemIterable#getPage(int)}. 200 * 201 * @param maxItemsPerPage 202 * max number of items (must be positive) 203 */ 204 void setMaxItemsPerPage(int maxItemsPerPage); 205 206 /** 207 * Returns the current max number of items per batch. 208 */ 209 int getMaxItemsPerPage(); 210 }