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 2006-2008 Sun Microsystems, Inc.
015 * Portions Copyright 2013-2016 ForgeRock AS.
016 */
017package org.opends.server.types.operation;
018
019import java.util.Set;
020
021import org.forgerock.opendj.ldap.ByteString;
022import org.forgerock.opendj.ldap.SearchScope;
023import org.forgerock.opendj.ldap.DN;
024import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
025import org.opends.server.types.RawFilter;
026import org.opends.server.types.SearchFilter;
027
028/**
029 * This class defines a set of methods that are available for use by
030 * search result reference plugins.  Note that this interface is
031 * intended only to define an API for use by plugins and is not
032 * intended to be implemented by any custom classes.
033 */
034@org.opends.server.types.PublicAPI(
035     stability=org.opends.server.types.StabilityLevel.UNCOMMITTED,
036     mayInstantiate=false,
037     mayExtend=false,
038     mayInvoke=true)
039public interface SearchReferenceSearchOperation
040       extends InProgressOperation
041{
042  /**
043   * Retrieves the raw, unprocessed base DN as included in the request
044   * from the client.  This may or may not contain a valid DN, as no
045   * validation will have been performed.
046   *
047   * @return  The raw, unprocessed base DN as included in the request
048   *          from the client.
049   */
050  ByteString getRawBaseDN();
051
052
053
054  /**
055   * Retrieves the base DN for this search operation.
056   *
057   * @return  The base DN for this search operation.
058   */
059  DN getBaseDN();
060
061
062
063  /**
064   * Retrieves the scope for this search operation.
065   *
066   * @return  The scope for this search operation.
067   */
068  SearchScope getScope();
069
070
071
072  /**
073   * Retrieves the alias dereferencing policy for this search
074   * operation.
075   *
076   * @return  The alias dereferencing policy for this search
077   *          operation.
078   */
079  DereferenceAliasesPolicy getDerefPolicy();
080
081
082
083  /**
084   * Retrieves the size limit for this search operation.
085   *
086   * @return  The size limit for this search operation.
087   */
088  int getSizeLimit();
089
090
091
092  /**
093   * Retrieves the time limit for this search operation.
094   *
095   * @return  The time limit for this search operation.
096   */
097  int getTimeLimit();
098
099
100
101  /**
102   * Retrieves the typesOnly flag for this search operation.
103   *
104   * @return  The typesOnly flag for this search operation.
105   */
106  boolean getTypesOnly();
107
108
109
110  /**
111   * Retrieves the raw, unprocessed search filter as included in the
112   * request from the client.  It may or may not contain a valid
113   * filter (e.g., unsupported attribute types or values with an
114   * invalid syntax) because no validation will have been performed on
115   * it.
116   *
117   * @return  The raw, unprocessed search filter as included in the
118   *          request from the client.
119   */
120  RawFilter getRawFilter();
121
122
123
124  /**
125   * Retrieves the filter for this search operation.
126   *
127   * @return  The filter for this search operation.
128   */
129  SearchFilter getFilter();
130
131
132
133  /**
134   * Retrieves the set of requested attributes for this search
135   * operation.  Its contents should not be altered.
136   *
137   * @return  The set of requested attributes for this search
138   *          operation.
139   */
140  Set<String> getAttributes();
141}
142