{
Filter sharedLdapFilter = null;
if ( exprNode instanceof BranchNode )
{
BranchNode branchNode = ( BranchNode ) exprNode;
if( branchNode instanceof AndNode )
{
AndFilter andFilter = new AndFilter();
sharedLdapFilter = andFilter;
List<Filter> andFilters = iterateOnFilters( branchNode.getChildren() );
for ( int i = 0; i < andFilters.size(); i++ )
{
andFilter.addFilter( andFilters.get( i ) );
}
}
else if( branchNode instanceof OrNode )
{
OrFilter orFilter = new OrFilter();
sharedLdapFilter = orFilter;
List<Filter> orFilters = iterateOnFilters( branchNode.getChildren() );
for ( int i = 0; i < orFilters.size(); i++ )
{
orFilter.addFilter( orFilters.get( i ) );
}
}
else if( branchNode instanceof NotNode )
{
NotFilter notFilter = new NotFilter();
sharedLdapFilter = notFilter;
List<Filter> notFilters = iterateOnFilters( branchNode.getChildren() );
notFilter.setNotFilter( notFilters.get( 0 ) );
}
}
else if ( exprNode instanceof PresenceNode )
{