/**
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at opensso/legal/CDDLv1.0.txt.
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* $Id: AMSearchControl.java,v 1.4 2008/06/25 05:41:22 qcheng Exp $
*
*/
/**
* This class provides a way to customize Search behaviors. Common behaviors are
* time limit, result limit and Virtual list view. In future, we will provide
* ways for client to define different hierarchical tree through
* <code>AMSearchControl</code>.
*
* @deprecated As of Sun Java System Access Manager 7.1.
* @supported.all.api
*/
public class AMSearchControl {
// Disabled by default
private static boolean getAllAttributesEnabled = false;
/**
* Creates the <code>AMSearchControl</code> object
*/
public AMSearchControl() {
searchControl = new SearchControl();
}
return searchControl;
}
/**
* Set the return attribute names, if attributes of the entries need to be
* obtained as part of the search.
*
* NOTE: If the return attribute values are specified as part of
* <code>AMSearchControl</code>, there could be a significant performance
* overhead compared to when none are specified. When the return attributes
* are set, the return attributes can be obtained as a map with DN as
* map-key and set of attribute values as map-value from
* <code>AMSearchResults</code> object.
*
* @param attributeNames
* Set of attribute names whose values need to be obtained as
* part of the search.
*
*/
}
/**
* Returns the list of attributes requested to be read when the search is
* performed.
*
* @return list of attributes requested to be read.
*/
}
return returnAttrs;
}
/**
* Sets the specified boolean value to the variable. Boolean value is set to
* true, if all attributes of the entries need to be obtained as part of the
* search.
*
* NOTE: If this <code>getAllReturnAttributes</code> boolean is set to
* true as part of <code>AMSearchControl</code>, it overrides any other
* <code>setReturnAttributes</code> set as part of the
* <code>AMSearchControl</code>. This is similar to using a wildcard '*'
* in search.
*
* When the option for getting all attributes is set to true, the search
* results will return a Map, where the Key is the DN of the search results,
* and value is another Map of attribute names for keys and Sets for values
* of those attributes.
*
* @param getAllAttributes
* Boolean value set to true as part of the
* <code>AMSearchControl</code> to obtain all attributes as
* part of the search.
*
*
*/
}
/**
* Returns true if the option for getting all attributes has been enabled.
*
* @return true if the option for getting all attributes has been enabled.
*/
public boolean isGetAllReturnAttributesEnabled() {
return getAllAttributesEnabled;
}
/**
* Set sort order based on attribute names.
*
* @param attributeNames
* array of attribute names to sort on
*
*/
}
/**
* Set range for retrieving VLV data.
*
* @param startIndex
* starting position.
* @param beforeCount
* Number of entries before the <code>startIndex</code>.
* @param afterCount
* Number of entries after the <code>startIndex</code>.
*/
{
}
/**
* Set range for retrieving VLV data.
*
* @param jumpTo
* Search expression defining the result set return.
* @param beforeCount
* Number of entries before the <code>startIndex</code>.
* @param afterCount
* Number of entries after the <code>startIndex</code>.
*/
{
}
/**
* Get range for current VLV setting.
*
* @return array of integers which contain <code>startIndex</code>,
* <code>beforeCount</code> and <code>afterCount</code>.
*/
protected int[] getVLVRange() {
return searchControl.getVLVRange();
}
/**
* Returns <code>jumpTo</code> value for VLV range.
*
* @return <code>jumpTo</code> value.
*
*/
return searchControl.getVLVJumpTo();
}
/**
* Sets the maximum number of milliseconds to wait for any operation for the
* search.
*
* @param timeOut
* Max number of milliseconds
*
*/
}
/**
* Returns current time out setting.
*
* @return current time out setting.
*/
public int getTimeOut() {
return searchControl.getTimeOut();
}
/**
* Sets the maximum number of search results to return; 0 means there is no
* limit.
*
* @param maxNumber
* Max number of results
*/
}
/**
* Returns the maximum number of search results. return 0 means there is no
* limit.
*
* @return the maximum number of search results.
*/
public int getMaxResults() {
return searchControl.getMaxResults();
}
/**
* Sets the search scope in <code>AMSearchControl</code>.
*
* @param scope
* Search scope defined in the <code>AMSearchControl</code> to
* be used with the search API
*/
}
/**
* Gets the search scope defined in the <code>AMSearchControl</code>.
*
* @return search scope defined in the <code>AMSearchControl</code>. If
* search scope is never defined in the
* <code>AMSearchControl</code> <code>SCOPE_SUB</code> for
* subtree type of search is assumed.
*/
public int getSearchScope() {
return searchControl.getSearchScope();
}
/**
* Gets the search scope defined in the <code>AMSearchControl</code>.
* Allows a user to specify default search scope if nothing has been defined
* in the <code>AMSearchControl</code> yet.
*
* @param defaultScope
* Scope value to be used in case the
* <code>AMSearchControl</code> is not set up with a search
* scope
*
* @return Search scope defined in the <code>AMSearchControl</code>.
* Return <code>defaultScope</code> if scope is not defined in the
* control.
*/
}
}