FileDocCategorySizeDatePackage
SearchControls.javaAPI DocJava SE 5 API9936Fri Aug 26 14:57:40 BST 2005javax.naming.directory

SearchControls

public class SearchControls extends Object implements Serializable
This class encapsulates factors that determine scope of search and what gets returned as a result of the search.

A SearchControls instance is not synchronized against concurrent multithreaded access. Multiple threads trying to access and modify a single SearchControls instance should lock the object.

author
Rosanna Lee
author
Scott Seligman
version
1.10 03/12/19
since
1.3

Fields Summary
public static final int
OBJECT_SCOPE
Search the named object.

The NamingEnumeration that results from search() using OBJECT_SCOPE will contain one or zero element. The enumeration contains one element if the named object satisfies the search filter specified in search(). The element will have as its name the empty string because the names of elements in the NamingEnumeration are relative to the target context--in this case, the target context is the named object. It contains zero element if the named object does not satisfy the search filter specified in search().

The value of this constant is 0.

public static final int
ONELEVEL_SCOPE
Search one level of the named context.

The NamingEnumeration that results from search() using ONELEVEL_SCOPE contains elements with objects in the named context that satisfy the search filter specified in search(). The names of elements in the NamingEnumeration are atomic names relative to the named context.

The value of this constant is 1.

public static final int
SUBTREE_SCOPE
Search the entire subtree rooted at the named object.

If the named object is not a DirContext, search only the object. If the named object is a DirContext, search the subtree rooted at the named object, including the named object itself.

The search will not cross naming system boundaries.

The NamingEnumeration that results from search() using SUBTREE_SCOPE contains elements of objects from the subtree (including the named context) that satisfy the search filter specified in search(). The names of elements in the NamingEnumeration are either relative to the named context or is a URL string. If the named context satisfies the search filter, it is included in the enumeration with the empty string as its name.

The value of this constant is 2.

private int
searchScope
Contains the scope with which to apply the search. One of ONELEVEL_SCOPE, OBJECT_SCOPE, or SUBTREE_SCOPE.
private int
timeLimit
Contains the milliseconds to wait before returning from search.
private boolean
derefLink
Indicates whether JNDI links are dereferenced during search.
private boolean
returnObj
Indicates whether object is returned in SearchResult.
private long
countLimit
Contains the maximum number of SearchResults to return.
private String[]
attributesToReturn
Contains the list of attributes to be returned in SearchResult for each matching entry of search. null indicates that all attributes are to be returned.
private static final long
serialVersionUID
Use serialVersionUID from JNDI 1.1.1 for interoperability.
Constructors Summary
public SearchControls()
Constructs a search constraints using defaults.

The defaults are:

  • search one level
  • no maximum return limit for search results
  • no time limit for search
  • return all attributes associated with objects that satisfy the search filter.
  • do not return named object (return only name and class)
  • do not dereference links during search


                                                                
      
	searchScope = ONELEVEL_SCOPE;
	timeLimit = 0; // no limit
	countLimit = 0; // no limit
	derefLink = false;
	returnObj = false;
	attributesToReturn = null; // return all
    
public SearchControls(int scope, long countlim, int timelim, String[] attrs, boolean retobj, boolean deref)
Constructs a search constraints using arguments.

param
scope The search scope. One of: OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE.
param
timelim The number of milliseconds to wait before returning. If 0, wait indefinitely.
param
deref If true, dereference links during search.
param
countlim The maximum number of entries to return. If 0, return all entries that satisfy filter.
param
retobj If true, return the object bound to the name of the entry; if false, do not return object.
param
attrs The identifiers of the attributes to return along with the entry. If null, return all attributes. If empty return no attributes.

	searchScope = scope;
	timeLimit = timelim; // no limit
	derefLink = deref;
	returnObj = retobj;
	countLimit = countlim; // no limit
	attributesToReturn = attrs; // return all
    
Methods Summary
public longgetCountLimit()
Retrieves the maximum number of entries that will be returned as a result of the search.

0 indicates that all entries will be returned.

return
The maximum number of entries that will be returned.
see
#setCountLimit

	return countLimit;
    
public booleangetDerefLinkFlag()
Determines whether links will be dereferenced during the search.

return
true if links will be dereferenced; false otherwise.
see
#setDerefLinkFlag

	return derefLink;
    
public java.lang.String[]getReturningAttributes()
Retrieves the attributes that will be returned as part of the search.

A value of null indicates that all attributes will be returned. An empty array indicates that no attributes are to be returned.

return
An array of attribute ids identifying the attributes that will be returned. Can be null.
see
#setReturningAttributes

	return attributesToReturn;
    
public booleangetReturningObjFlag()
Determines whether objects will be returned as part of the result.

return
true if objects will be returned; false otherwise.
see
#setReturningObjFlag

	return returnObj;
    
public intgetSearchScope()
Retrieves the search scope of these SearchControls.

One of OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE.

return
The search scope of this SearchControls.
see
#setSearchScope

	return searchScope;
    
public intgetTimeLimit()
Retrieves the time limit of these SearchControls in milliseconds.

If the value is 0, this means to wait indefinitely.

return
The time limit of these SearchControls in milliseconds.
see
#setTimeLimit

	return timeLimit;
    
public voidsetCountLimit(long limit)
Sets the maximum number of entries to be returned as a result of the search.

0 indicates no limit: all entries will be returned.

param
limit The maximum number of entries that will be returned.
see
#getCountLimit

	countLimit = limit;
    
public voidsetDerefLinkFlag(boolean on)
Enables/disables link dereferencing during the search.

param
on if true links will be dereferenced; if false, not followed.
see
#getDerefLinkFlag

	derefLink = on;
    
public voidsetReturningAttributes(java.lang.String[] attrs)
Specifies the attributes that will be returned as part of the search.

null indicates that all attributes will be returned. An empty array indicates no attributes are returned.

param
attrs An array of attribute ids identifying the attributes that will be returned. Can be null.
see
#getReturningAttributes

	attributesToReturn = attrs;
    
public voidsetReturningObjFlag(boolean on)
Enables/disables returning objects returned as part of the result.

If disabled, only the name and class of the object is returned. If enabled, the object will be returned.

param
on if true, objects will be returned; if false, objects will not be returned.
see
#getReturningObjFlag

	returnObj = on;
    
public voidsetSearchScope(int scope)
Sets the search scope to one of: OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE.

param
scope The search scope of this SearchControls.
see
#getSearchScope

	searchScope = scope;
    
public voidsetTimeLimit(int ms)
Sets the time limit of these SearchControls in milliseconds.

If the value is 0, this means to wait indefinitely.

param
ms The time limit of these SearchControls in milliseconds.
see
#getTimeLimit

	timeLimit = ms;