001/* 002 * CDDL HEADER START 003 * 004 * The contents of this file are subject to the terms of the 005 * Common Development and Distribution License, Version 1.0 only 006 * (the "License"). You may not use this file except in compliance 007 * with the License. 008 * 009 * You can obtain a copy of the license at 010 * docs/licenses/cddl.txt 011 * or http://www.opensource.org/licenses/cddl1.php. 012 * See the License for the specific language governing permissions 013 * and limitations under the License. 014 * 015 * When distributing Covered Code, include this CDDL HEADER in each 016 * file and include the License file at 017 * docs/licenses/cddl.txt. If applicable, 018 * add the following below this CDDL HEADER, with the fields enclosed 019 * by brackets "[]" replaced with your own identifying information: 020 * Portions Copyright [yyyy] [name of copyright owner] 021 * 022 * CDDL HEADER END 023 * 024 * 025 * Portions Copyright 2010-2023 Ping Identity Corporation 026 */ 027package com.unboundid.directory.sdk.common.operation; 028 029 030 031import java.util.List; 032 033import com.unboundid.ldap.sdk.DereferencePolicy; 034import com.unboundid.ldap.sdk.DN; 035import com.unboundid.ldap.sdk.Filter; 036import com.unboundid.ldap.sdk.LDAPException; 037import com.unboundid.ldap.sdk.SearchScope; 038import com.unboundid.util.NotExtensible; 039import com.unboundid.util.ThreadSafety; 040import com.unboundid.util.ThreadSafetyLevel; 041 042 043 044/** 045 * This interface defines a set of methods which may be used to update a search 046 * request. 047 */ 048@NotExtensible() 049@ThreadSafety(level=ThreadSafetyLevel.INTERFACE_NOT_THREADSAFE) 050public interface UpdatableSearchRequest 051 extends SearchRequest, UpdatableRequest 052{ 053 /** 054 * Specifies the base DN for the search. 055 * 056 * @param baseDN The base DN for the search. It must not be {@code null}. 057 */ 058 void setBaseDN(final String baseDN); 059 060 061 062 /** 063 * Specifies the base DN for the search. 064 * 065 * @param baseDN The base DN for the search. It must not be {@code null}. 066 */ 067 void setBaseDN(final DN baseDN); 068 069 070 071 /** 072 * Specifies the scope for the search. 073 * 074 * @param scope The scope for the search. It must not be {@code null}. 075 */ 076 void setScope(final SearchScope scope); 077 078 079 080 /** 081 * Specifies the dereference policy for the search. 082 * 083 * @param derefPolicy The dereference policy for the search. It must not be 084 * {@code null}. 085 */ 086 void setDerefPolicy(final DereferencePolicy derefPolicy); 087 088 089 090 /** 091 * Specifies the size limit for the search. A value less than or equal to 092 * zero indicates that no size limit should be requested. 093 * 094 * @param sizeLimit The size limit for the search. 095 */ 096 void setSizeLimit(final int sizeLimit); 097 098 099 100 /** 101 * Specifies the time limit for the search in seconds. A value less than or 102 * equal to zero indicates that no time limit should be requested. 103 * 104 * @param timeLimit The time limit for the search in seconds. 105 */ 106 void setTimeLimitSeconds(final int timeLimit); 107 108 109 110 /** 111 * Specifies whether search result entries should contain attribute values. 112 * 113 * @param typesOnly Indicates whether search result entries should contain 114 * only attribute types or both types and values. 115 */ 116 void setTypesOnly(final boolean typesOnly); 117 118 119 120 /** 121 * Specifies the filter for the search. 122 * 123 * @param filter The filter for the search. It must not be {@code null}. 124 */ 125 void setFilter(final Filter filter); 126 127 128 129 /** 130 * Specifies the filter for the search. 131 * 132 * @param filter The string representation of the filter for the search. It 133 * must not be {@code null}. 134 * 135 * @throws LDAPException If the provided string cannot be parsed as a valid 136 * filter. 137 */ 138 void setFilter(final String filter) 139 throws LDAPException; 140 141 142 143 /** 144 * Specifies the list of requested attributes. 145 * 146 * @param attributes The list of requested attributes. 147 */ 148 void setAttributes(final List<String> attributes); 149}