*/
public Element toDsml( Element root )
{
Element element = super.toDsml( root );
SearchRequest request = ( SearchRequest ) instance;
// DN
if ( request.getBaseObject() != null )
{
element.addAttribute( "dn", request.getBaseObject().toString() );
}
// Scope
ScopeEnum scope = request.getScope();
if ( scope != null )
{
if ( scope == ScopeEnum.BASE_OBJECT )
{
element.addAttribute( "scope", "baseObject" );
}
else if ( scope == ScopeEnum.SINGLE_LEVEL )
{
element.addAttribute( "scope", "singleLevel" );
}
else if ( scope == ScopeEnum.WHOLE_SUBTREE )
{
element.addAttribute( "scope", "wholeSubtree" );
}
}
// DerefAliases
int derefAliases = request.getDerefAliases();
if ( derefAliases == LdapConstants.NEVER_DEREF_ALIASES )
{
element.addAttribute( "derefAliases", "neverDerefAliases" );
}
else if ( derefAliases == LdapConstants.DEREF_IN_SEARCHING )
{
element.addAttribute( "derefAliases", "derefInSearching" );
}
else if ( derefAliases == LdapConstants.DEREF_FINDING_BASE_OBJ )
{
element.addAttribute( "derefAliases", "derefFindingBaseObj" );
}
else if ( derefAliases == LdapConstants.DEREF_ALWAYS )
{
element.addAttribute( "derefAliases", "derefAlways" );
}
// SizeLimit
if ( request.getSizeLimit() != 0 )
{
element.addAttribute( "sizeLimit", "" + request.getSizeLimit() );
}
// TimeLimit
if ( request.getTimeLimit() != 0 )
{
element.addAttribute( "timeLimit", "" + request.getTimeLimit() );
}
// TypesOnly
if ( request.isTypesOnly() )
{
element.addAttribute( "typesOnly", "true" );
}
// Filter
Element filterElement = element.addElement( "filter" );
toDsml( filterElement, request.getFilter() );
// Attributes
Attributes attributes = request.getAttributes();
if ( attributes.size() > 0 )
{
Element attributesElement = element.addElement( "attributes" );
NamingEnumeration<String> ids = attributes.getIDs();