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