public Collection filter( Collection tuples, OperationScope scope, NextInterceptor next, Collection userGroupNames, Name userName, Attributes userEntry, AuthenticationLevel authenticationLevel, Name entryName, String attrId, Object attrValue, Attributes entry, Collection microOperations ) throws NamingException
public Collection filter( Collection tuples, OperationScope scope, DirectoryPartitionNexusProxy proxy, Collection userGroupNames, Name userName, Attributes userEntry, AuthenticationLevel authenticationLevel, Name entryName, String attrId, Object attrValue, Attributes entry, Collection microOperations ) throws NamingException
    public Collection filter( Collection tuples, OperationScope scope, NextInterceptor next, Collection userGroupNames, Name userName, Attributes userEntry, AuthenticationLevel authenticationLevel, Name entryName, String attrId, Object attrValue, Attributes entry, Collection microOperations ) throws NamingException    {        if( tuples.size() <= 1 )        {            return tuples;        }        Collection filteredTuples = new ArrayList();                // If the protected item is an attribute and there are tuples that        // specify the attribute type explicitly, discard all other tuples.        for( Iterator i = tuples.iterator(); i.hasNext(); )        {            ACITuple tuple = ( ACITuple ) i.next();            for( Iterator j = tuple.getProtectedItems().iterator(); j.hasNext(); )            {                ProtectedItem item = ( ProtectedItem ) j.next();                if( item instanceof ProtectedItem.AttributeType ||                    item instanceof ProtectedItem.AllAttributeValues ||                    item instanceof ProtectedItem.SelfValue ||                    item instanceof ProtectedItem.AttributeValue )                {                    filteredTuples.add( tuple );                    break;                }            }        }                if( filteredTuples.size() > 0 )        {            return filteredTuples;        }        // If the protected item is an attribute value, and there are tuples        // that specify the attribute value explicitly, discard all other tuples.        // A protected item which is a rangeOfValues is to be treated as        // specifying an attribute value explicitly.         for( Iterator i = tuples.iterator(); i.hasNext(); )        {            ACITuple tuple = ( ACITuple ) i.next();            for( Iterator j = tuple.getProtectedItems().iterator(); j.hasNext(); )            {                ProtectedItem item = ( ProtectedItem ) j.next();                if( item instanceof ProtectedItem.RangeOfValues )                {                    filteredTuples.add( tuple );                }            }        }        if( filteredTuples.size() > 0 )        {            return filteredTuples;        }                return tuples;    }