001/*
002 * The contents of this file are subject to the terms of the Common Development and
003 * Distribution License (the License). You may not use this file except in compliance with the
004 * License.
005 *
006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
007 * specific language governing permission and limitations under the License.
008 *
009 * When distributing Covered Software, include this CDDL Header Notice in each file and include
010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
011 * Header, with the fields enclosed by brackets [] replaced by your own identifying
012 * information: "Portions Copyright [year] [name of copyright owner]".
013 *
014 * Copyright 2008-2009 Sun Microsystems, Inc.
015 * Portions Copyright 2011-2016 ForgeRock AS.
016 */
017package org.opends.server.core;
018
019import java.util.List;
020import java.util.Set;
021
022import org.forgerock.opendj.ldap.ByteString;
023import org.forgerock.opendj.ldap.DN;
024import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
025import org.forgerock.opendj.ldap.SearchScope;
026import org.opends.server.controls.MatchedValuesControl;
027import org.opends.server.types.*;
028
029/**
030 * This abstract class wraps/decorates a given search operation.
031 * This class will be extended by sub-classes to enhance the
032 * functionality of the SearchOperationBasis.
033 */
034public abstract class SearchOperationWrapper extends
035    OperationWrapper<SearchOperation> implements SearchOperation
036{
037  /**
038   * Creates a new search operation based on the provided search operation.
039   *
040   * @param search The search operation to wrap
041   */
042  protected SearchOperationWrapper(SearchOperation search)
043  {
044    super(search);
045  }
046
047  @Override
048  public boolean returnEntry(Entry entry, List<Control> controls)
049  {
050    return getOperation().returnEntry(entry, controls);
051  }
052
053  @Override
054  public boolean returnEntry(Entry entry, List<Control> controls,
055                             boolean evaluateAci)
056  {
057    return getOperation().returnEntry(entry, controls, evaluateAci);
058  }
059
060  @Override
061  public boolean returnReference(DN dn, SearchResultReference reference)
062  {
063    return getOperation().returnReference(dn, reference);
064  }
065
066  @Override
067  public boolean returnReference(DN dn, SearchResultReference reference,
068                                 boolean evaluateAci)
069  {
070    return getOperation().returnReference(dn, reference, evaluateAci);
071  }
072
073  @Override
074  public String toString()
075  {
076    return getOperation().toString();
077  }
078
079  @Override
080  public Set<String> getAttributes()
081  {
082    return getOperation().getAttributes();
083  }
084
085  @Override
086  public DN getBaseDN()
087  {
088    return getOperation().getBaseDN();
089  }
090
091  @Override
092  public DereferenceAliasesPolicy getDerefPolicy()
093  {
094    return getOperation().getDerefPolicy();
095  }
096
097  @Override
098  public int getEntriesSent()
099  {
100    return getOperation().getEntriesSent();
101  }
102
103  @Override
104  public SearchFilter getFilter()
105  {
106    return getOperation().getFilter();
107  }
108
109  @Override
110  public ByteString getRawBaseDN()
111  {
112    return getOperation().getRawBaseDN();
113  }
114
115  @Override
116  public RawFilter getRawFilter()
117  {
118    return getOperation().getRawFilter();
119  }
120
121  @Override
122  public int getReferencesSent()
123  {
124    return getOperation().getReferencesSent();
125  }
126
127  @Override
128  public SearchScope getScope()
129  {
130    return getOperation().getScope();
131  }
132
133  @Override
134  public int getSizeLimit()
135  {
136    return getOperation().getSizeLimit();
137  }
138
139  @Override
140  public int getTimeLimit()
141  {
142    return getOperation().getTimeLimit();
143  }
144
145  @Override
146  public boolean getTypesOnly()
147  {
148    return getOperation().getTypesOnly();
149  }
150
151  @Override
152  public void sendSearchResultDone()
153  {
154    getOperation().sendSearchResultDone();
155  }
156
157  @Override
158  public void setAttributes(Set<String> attributes)
159  {
160    getOperation().setAttributes(attributes);
161  }
162
163  @Override
164  public void setBaseDN(DN baseDN)
165  {
166    getOperation().setBaseDN(baseDN);
167  }
168
169  @Override
170  public void setDerefPolicy(DereferenceAliasesPolicy derefPolicy)
171  {
172    getOperation().setDerefPolicy(derefPolicy);
173  }
174
175  @Override
176  public void setRawBaseDN(ByteString rawBaseDN)
177  {
178    getOperation().setRawBaseDN(rawBaseDN);
179  }
180
181  @Override
182  public void setRawFilter(RawFilter rawFilter)
183  {
184    getOperation().setRawFilter(rawFilter);
185  }
186
187  @Override
188  public void setScope(SearchScope scope)
189  {
190    getOperation().setScope(scope);
191  }
192
193  @Override
194  public void setSizeLimit(int sizeLimit)
195  {
196    getOperation().setSizeLimit(sizeLimit);
197  }
198
199  @Override
200  public void setTimeLimit(int timeLimit)
201  {
202    getOperation().setTimeLimit(timeLimit);
203  }
204
205  @Override
206  public void setTypesOnly(boolean typesOnly)
207  {
208    getOperation().setTypesOnly(typesOnly);
209  }
210
211  @Override
212  public void setTimeLimitExpiration(long timeLimitExpiration)
213  {
214    getOperation().setTimeLimitExpiration(timeLimitExpiration);
215  }
216
217  @Override
218  public boolean isReturnSubentriesOnly()
219  {
220    return getOperation().isReturnSubentriesOnly();
221  }
222
223  @Override
224  public void setReturnSubentriesOnly(boolean returnLDAPSubentries)
225  {
226    getOperation().setReturnSubentriesOnly(returnLDAPSubentries);
227  }
228
229  @Override
230  public MatchedValuesControl getMatchedValuesControl()
231  {
232    return getOperation().getMatchedValuesControl();
233  }
234
235  @Override
236  public void setMatchedValuesControl(MatchedValuesControl controls)
237  {
238    getOperation().setMatchedValuesControl(controls);
239  }
240
241  @Override
242  public boolean isIncludeUsableControl()
243  {
244    return getOperation().isIncludeUsableControl();
245  }
246
247  @Override
248  public void setIncludeUsableControl(boolean includeUsableControl)
249  {
250    getOperation().setIncludeUsableControl(includeUsableControl);
251  }
252
253  @Override
254  public long getTimeLimitExpiration()
255  {
256    return getOperation().getTimeLimitExpiration();
257  }
258
259  @Override
260  public boolean isClientAcceptsReferrals()
261  {
262    return getOperation().isClientAcceptsReferrals();
263  }
264
265  @Override
266  public void setClientAcceptsReferrals(boolean clientAcceptReferrals)
267  {
268    getOperation().setClientAcceptsReferrals(clientAcceptReferrals);
269  }
270
271  @Override
272  public boolean isSendResponse()
273  {
274    return getOperation().isSendResponse();
275  }
276
277  @Override
278  public void setSendResponse(boolean sendResponse)
279  {
280    getOperation().setSendResponse(sendResponse);
281  }
282
283  @Override
284  public boolean isRealAttributesOnly(){
285    return getOperation().isRealAttributesOnly();
286  }
287
288  @Override
289  public void setRealAttributesOnly(boolean realAttributesOnly){
290    getOperation().setRealAttributesOnly(realAttributesOnly);
291  }
292
293  @Override
294  public boolean isVirtualAttributesOnly()
295  {
296    return getOperation().isVirtualAttributesOnly();
297  }
298
299  @Override
300  public void setVirtualAttributesOnly(boolean virtualAttributesOnly){
301    getOperation().setVirtualAttributesOnly(virtualAttributesOnly);
302  }
303
304  @Override
305  public void sendSearchEntry(SearchResultEntry entry)
306      throws DirectoryException
307  {
308    getOperation().sendSearchEntry(entry);
309  }
310
311  @Override
312  public boolean sendSearchReference(SearchResultReference reference)
313      throws DirectoryException
314  {
315    return getOperation().sendSearchReference(reference);
316  }
317}