You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2007/09/14 22:15:03 UTC

svn commit: r575783 [2/4] - in /directory: apacheds/trunk/core/src/main/java/org/apache/directory/server/core/authz/ apacheds/trunk/core/src/main/java/org/apache/directory/server/core/event/ apacheds/trunk/core/src/main/java/org/apache/directory/server...

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java Fri Sep 14 13:14:59 2007
@@ -45,11 +45,13 @@
 import org.apache.directory.server.schema.registries.OidRegistry;
 import org.apache.directory.server.schema.registries.Registries;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
+import org.apache.directory.shared.ldap.filter.AndNode;
 import org.apache.directory.shared.ldap.filter.BranchNode;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
+import org.apache.directory.shared.ldap.filter.OrNode;
 import org.apache.directory.shared.ldap.filter.PresenceNode;
 import org.apache.directory.shared.ldap.filter.SimpleNode;
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
 import org.apache.directory.shared.ldap.message.AttributeImpl;
 import org.apache.directory.shared.ldap.message.ModificationItemImpl;
 import org.apache.directory.shared.ldap.name.LdapDN;
@@ -187,7 +189,7 @@
     {
         LdapDN base = new LdapDN( "ou=schema" );
         base.normalize( attrRegistry.getNormalizerMapping() );
-        ExprNode filter = new SimpleNode( oidRegistry.getOid( SchemaConstants.OBJECT_CLASS_AT ), MetaSchemaConstants.META_SCHEMA_OC, AssertionEnum.EQUALITY );
+        ExprNode filter = new EqualityNode( oidRegistry.getOid( SchemaConstants.OBJECT_CLASS_AT ), MetaSchemaConstants.META_SCHEMA_OC );
         SearchControls searchControls = new SearchControls();
         searchControls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
         searchControls.setReturningAttributes( SCHEMA_ATTRIBUTES );
@@ -212,17 +214,16 @@
     
     public boolean hasMatchingRule( String oid ) throws NamingException
     {
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
-        filter.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_MATCHING_RULE_OC, AssertionEnum.EQUALITY ) );
+        BranchNode filter = new AndNode();
+        filter.addNode( new EqualityNode( OBJECTCLASS_OID, MetaSchemaConstants.META_MATCHING_RULE_OC ) );
 
         if ( NUMERIC_OID_CHECKER.isValidSyntax( oid ) )
         {
-            filter.addNode( new SimpleNode( M_OID_OID, oid, AssertionEnum.EQUALITY ) );
+            filter.addNode( new EqualityNode( M_OID_OID, oid ) );
         }
         else
         {
-            filter.addNode( new SimpleNode( M_NAME_OID, oid.toLowerCase(), AssertionEnum.EQUALITY ) );
+            filter.addNode( new EqualityNode( M_NAME_OID, oid.toLowerCase() ) );
         }
         
         SearchControls searchControls = new SearchControls();
@@ -256,17 +257,16 @@
     
     public boolean hasAttributeType( String oid ) throws NamingException
     {
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
-        filter.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC, AssertionEnum.EQUALITY ) );
+        BranchNode filter = new AndNode();
+        filter.addNode( new EqualityNode( OBJECTCLASS_OID,  MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC ) );
 
         if ( NUMERIC_OID_CHECKER.isValidSyntax( oid ) )
         {
-            filter.addNode( new SimpleNode( M_OID_OID, oid, AssertionEnum.EQUALITY ) );
+            filter.addNode( new EqualityNode( M_OID_OID, oid ) );
         }
         else
         {
-            filter.addNode( new SimpleNode( M_NAME_OID, oid.toLowerCase(), AssertionEnum.EQUALITY ) );
+            filter.addNode( new EqualityNode( M_NAME_OID, oid.toLowerCase() ) );
         }
         
         SearchControls searchControls = new SearchControls();
@@ -300,17 +300,16 @@
     
     public boolean hasObjectClass( String oid ) throws NamingException
     {
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
-        filter.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_OBJECT_CLASS_OC, AssertionEnum.EQUALITY ) );
+        BranchNode filter = new AndNode();
+        filter.addNode( new EqualityNode( OBJECTCLASS_OID, MetaSchemaConstants.META_OBJECT_CLASS_OC ) );
 
         if ( NUMERIC_OID_CHECKER.isValidSyntax( oid ) )
         {
-            filter.addNode( new SimpleNode( M_OID_OID, oid, AssertionEnum.EQUALITY ) );
+            filter.addNode( new EqualityNode( M_OID_OID, oid ) );
         }
         else
         {
-            filter.addNode( new SimpleNode( M_NAME_OID, oid.toLowerCase(), AssertionEnum.EQUALITY ) );
+            filter.addNode( new EqualityNode( M_NAME_OID, oid.toLowerCase() ) );
         }
         
         SearchControls searchControls = new SearchControls();
@@ -344,17 +343,16 @@
     
     public boolean hasSyntax( String oid ) throws NamingException
     {
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
-        filter.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_SYNTAX_OC, AssertionEnum.EQUALITY ) );
+        BranchNode filter = new AndNode();
+        filter.addNode( new EqualityNode( OBJECTCLASS_OID, MetaSchemaConstants.META_SYNTAX_OC ) );
 
         if ( NUMERIC_OID_CHECKER.isValidSyntax( oid ) )
         {
-            filter.addNode( new SimpleNode( M_OID_OID, oid, AssertionEnum.EQUALITY ) );
+            filter.addNode( new EqualityNode( M_OID_OID, oid ) );
         }
         else
         {
-            filter.addNode( new SimpleNode( M_NAME_OID, oid.toLowerCase(), AssertionEnum.EQUALITY ) );
+            filter.addNode( new EqualityNode( M_NAME_OID, oid.toLowerCase() ) );
         }
         
         SearchControls searchControls = new SearchControls();
@@ -388,17 +386,16 @@
     
     public boolean hasSyntaxChecker( String oid ) throws NamingException
     {
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
-        filter.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_SYNTAX_CHECKER_OC, AssertionEnum.EQUALITY ) );
+        BranchNode filter = new AndNode();
+        filter.addNode( new EqualityNode( OBJECTCLASS_OID, MetaSchemaConstants.META_SYNTAX_CHECKER_OC ) );
 
         if ( NUMERIC_OID_CHECKER.isValidSyntax( oid ) )
         {
-            filter.addNode( new SimpleNode( M_OID_OID, oid, AssertionEnum.EQUALITY ) );
+            filter.addNode( new EqualityNode( M_OID_OID, oid ) );
         }
         else
         {
-            filter.addNode( new SimpleNode( M_NAME_OID, oid.toLowerCase(), AssertionEnum.EQUALITY ) );
+            filter.addNode( new EqualityNode( M_NAME_OID, oid.toLowerCase() ) );
         }
         
         SearchControls searchControls = new SearchControls();
@@ -488,9 +485,9 @@
      */
     public SearchResult find( String entityName ) throws NamingException
     {
-        BranchNode filter = new BranchNode( AssertionEnum.OR );
-        SimpleNode nameAVA = new SimpleNode( M_NAME_OID, entityName.toLowerCase(), AssertionEnum.EQUALITY );
-        SimpleNode oidAVA = new SimpleNode( M_OID_OID, entityName.toLowerCase(), AssertionEnum.EQUALITY );
+        BranchNode filter = new OrNode();
+        SimpleNode nameAVA = new EqualityNode( M_NAME_OID, entityName.toLowerCase() );
+        SimpleNode oidAVA = new EqualityNode( M_OID_OID, entityName.toLowerCase() );
         filter.addNode( nameAVA );
         filter.addNode( oidAVA );
         SearchControls searchControls = new SearchControls();
@@ -597,18 +594,17 @@
     public Set<SearchResult> listSyntaxDependents( String numericOid ) throws NamingException
     {
         Set<SearchResult> set = new HashSet<SearchResult>( );
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
+        BranchNode filter = new AndNode();
         
         // subfilter for (| (objectClass=metaMatchingRule) (objectClass=metaAttributeType))  
-        BranchNode or = new BranchNode( AssertionEnum.OR );
-        or.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_MATCHING_RULE_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
-        or.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
+        BranchNode or = new OrNode();
+        or.addNode( new EqualityNode( OBJECTCLASS_OID, 
+            MetaSchemaConstants.META_MATCHING_RULE_OC.toLowerCase() ) );
+        or.addNode( new EqualityNode( OBJECTCLASS_OID, 
+            MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC.toLowerCase() ) );
         
         filter.addNode( or );
-        filter.addNode( new SimpleNode( M_SYNTAX_OID, 
-            numericOid.toLowerCase(), AssertionEnum.EQUALITY ) );
+        filter.addNode( new EqualityNode( M_SYNTAX_OID, numericOid.toLowerCase() ) );
 
         SearchControls searchControls = new SearchControls();
         searchControls.setSearchScope( SearchControls.SUBTREE_SCOPE );
@@ -638,25 +634,24 @@
     public Set<SearchResult> listMatchingRuleDependents( MatchingRule mr ) throws NamingException
     {
         Set<SearchResult> set = new HashSet<SearchResult>( );
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
+        BranchNode filter = new AndNode();
         
         // ( objectClass = metaAttributeType )
-        filter.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
+        filter.addNode( new EqualityNode( OBJECTCLASS_OID, MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC.toLowerCase() ) );
         
-        BranchNode or = new BranchNode( AssertionEnum.OR );
-        or.addNode( new SimpleNode( M_ORDERING_OID, mr.getOid(), AssertionEnum.EQUALITY ) );
-        or.addNode( new SimpleNode( M_SUBSTRING_OID, mr.getOid(), AssertionEnum.EQUALITY ) );
-        or.addNode( new SimpleNode( M_EQUALITY_OID, mr.getOid(), AssertionEnum.EQUALITY ) );
+        BranchNode or = new OrNode();
+        or.addNode( new EqualityNode( M_ORDERING_OID, mr.getOid() ) );
+        or.addNode( new EqualityNode( M_SUBSTRING_OID, mr.getOid() ) );
+        or.addNode( new EqualityNode( M_EQUALITY_OID, mr.getOid() ) );
         filter.addNode( or );
 
         if ( mr.getNames() != null || mr.getNames().length > 0 )
         {
             for ( String name : mr.getNames() )
             {
-                or.addNode( new SimpleNode( M_ORDERING_OID, name.toLowerCase(), AssertionEnum.EQUALITY ) );
-                or.addNode( new SimpleNode( M_SUBSTRING_OID, name.toLowerCase(), AssertionEnum.EQUALITY ) );
-                or.addNode( new SimpleNode( M_EQUALITY_OID, name.toLowerCase(), AssertionEnum.EQUALITY ) );
+                or.addNode( new EqualityNode( M_ORDERING_OID, name.toLowerCase() ) );
+                or.addNode( new EqualityNode( M_SUBSTRING_OID, name.toLowerCase() ) );
+                or.addNode( new EqualityNode( M_EQUALITY_OID, name.toLowerCase() ) );
             }
         }
 
@@ -689,7 +684,7 @@
     {
         SearchControls searchControls = new SearchControls();
         searchControls.setSearchScope( SearchControls.SUBTREE_SCOPE );
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
+        BranchNode filter = new AndNode();
         
         // (& (m-oid=*) (m-name=*) )
         filter.addNode( new PresenceNode( M_OID_OID ) );
@@ -720,21 +715,21 @@
          */
         
         Set<SearchResult> set = new HashSet<SearchResult>( );
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
+        BranchNode filter = new AndNode();
         
         // ( objectClass = metaAttributeType )
-        BranchNode or = new BranchNode( AssertionEnum.OR );
-        or.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
-        or.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_OBJECT_CLASS_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
+        BranchNode or = new OrNode();
+        or.addNode( new EqualityNode( OBJECTCLASS_OID, 
+            MetaSchemaConstants.META_ATTRIBUTE_TYPE_OC.toLowerCase() ) );
+        or.addNode( new EqualityNode( OBJECTCLASS_OID, 
+            MetaSchemaConstants.META_OBJECT_CLASS_OC.toLowerCase() ) );
         filter.addNode( or );
 
         
-        or = new BranchNode( AssertionEnum.OR );
-        or.addNode( new SimpleNode( M_MAY_OID, at.getOid(), AssertionEnum.EQUALITY ) );
-        or.addNode( new SimpleNode( M_MUST_OID, at.getOid(), AssertionEnum.EQUALITY ) );
-        or.addNode( new SimpleNode( M_SUP_ATTRIBUTE_TYPE_OID, at.getOid(), AssertionEnum.EQUALITY ) );
+        or = new OrNode();
+        or.addNode( new EqualityNode( M_MAY_OID, at.getOid() ) );
+        or.addNode( new EqualityNode( M_MUST_OID, at.getOid() ) );
+        or.addNode( new EqualityNode( M_SUP_ATTRIBUTE_TYPE_OID, at.getOid() ) );
         filter.addNode( or );
 
         SearchControls searchControls = new SearchControls();
@@ -778,12 +773,12 @@
          */
         
         Set<SearchResult> set = new HashSet<SearchResult>( );
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
+        BranchNode filter = new AndNode();
         
-        filter.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_SCHEMA_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
-        filter.addNode( new SimpleNode( M_DEPENDENCIES_OID, 
-            schemaName.toLowerCase(), AssertionEnum.EQUALITY ) );
+        filter.addNode( new EqualityNode( OBJECTCLASS_OID, 
+            MetaSchemaConstants.META_SCHEMA_OC.toLowerCase() ) );
+        filter.addNode( new EqualityNode( M_DEPENDENCIES_OID, 
+            schemaName.toLowerCase() ) );
 
         SearchControls searchControls = new SearchControls();
         searchControls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
@@ -820,12 +815,12 @@
     public Set<SearchResult> listEnabledSchemaDependents( String schemaName ) throws NamingException
     {
         Set<SearchResult> set = new HashSet<SearchResult>( );
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
+        BranchNode filter = new AndNode();
         
-        filter.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_SCHEMA_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
-        filter.addNode( new SimpleNode( M_DEPENDENCIES_OID, 
-            schemaName.toLowerCase(), AssertionEnum.EQUALITY ) );
+        filter.addNode( new EqualityNode( OBJECTCLASS_OID, 
+            MetaSchemaConstants.META_SCHEMA_OC.toLowerCase() ) );
+        filter.addNode( new EqualityNode( M_DEPENDENCIES_OID, 
+            schemaName.toLowerCase() ) );
         
         SearchControls searchControls = new SearchControls();
         searchControls.setSearchScope( SearchControls.ONELEVEL_SCOPE );
@@ -889,22 +884,22 @@
          */
         
         Set<SearchResult> set = new HashSet<SearchResult>( );
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
+        BranchNode filter = new AndNode();
         
-        BranchNode or = new BranchNode( AssertionEnum.OR );
-        or.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_NAME_FORM_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
-        or.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_OBJECT_CLASS_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
-        or.addNode( new SimpleNode( OBJECTCLASS_OID, 
-            MetaSchemaConstants.META_DIT_CONTENT_RULE_OC.toLowerCase(), AssertionEnum.EQUALITY ) );
+        BranchNode or = new OrNode();
+        or.addNode( new EqualityNode( OBJECTCLASS_OID, 
+            MetaSchemaConstants.META_NAME_FORM_OC.toLowerCase() ) );
+        or.addNode( new EqualityNode( OBJECTCLASS_OID, 
+            MetaSchemaConstants.META_OBJECT_CLASS_OC.toLowerCase() ) );
+        or.addNode( new EqualityNode( OBJECTCLASS_OID, 
+            MetaSchemaConstants.META_DIT_CONTENT_RULE_OC.toLowerCase() ) );
         filter.addNode( or );
 
         
-        or = new BranchNode( AssertionEnum.OR );
-        or.addNode( new SimpleNode( M_AUX_OID, oc.getOid(), AssertionEnum.EQUALITY ) );
-        or.addNode( new SimpleNode( M_OC_OID, oc.getOid(), AssertionEnum.EQUALITY ) );
-        or.addNode( new SimpleNode( M_SUP_OBJECT_CLASS_OID, oc.getOid(), AssertionEnum.EQUALITY ) );
+        or = new OrNode();
+        or.addNode( new EqualityNode( M_AUX_OID, oc.getOid() ) );
+        or.addNode( new EqualityNode( M_OC_OID, oc.getOid() ) );
+        or.addNode( new EqualityNode( M_SUP_OBJECT_CLASS_OID, oc.getOid() ) );
         filter.addNode( or );
 
         SearchControls searchControls = new SearchControls();

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java Fri Sep 14 13:14:59 2007
@@ -71,7 +71,7 @@
 import org.apache.directory.shared.ldap.exception.LdapNameNotFoundException;
 import org.apache.directory.shared.ldap.exception.LdapNoSuchAttributeException;
 import org.apache.directory.shared.ldap.exception.LdapSchemaViolationException;
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
 import org.apache.directory.shared.ldap.filter.PresenceNode;
 import org.apache.directory.shared.ldap.filter.SimpleNode;
@@ -566,7 +566,7 @@
                 if ( nodeOid.equals( SchemaConstants.OBJECT_CLASS_AT_OID )
                     && ( objectClassOid.equals( SchemaConstants.TOP_OC_OID ) || 
                         objectClassOid.equals( SchemaConstants.SUBSCHEMA_OC_OID ) )
-                    && ( node.getAssertionType() == AssertionEnum.EQUALITY ) )
+                    && ( node instanceof EqualityNode ) )
                 {
                     // call.setBypass( true );
                     Attributes attrs = getSubschemaEntry( searchCtls.getReturningAttributes() );

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/LdapClassLoader.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/LdapClassLoader.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/LdapClassLoader.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/sp/LdapClassLoader.java Fri Sep 14 13:14:59 2007
@@ -31,9 +31,9 @@
 import org.apache.directory.server.constants.ApacheSchemaConstants;
 import org.apache.directory.server.core.jndi.ServerLdapContext;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
+import org.apache.directory.shared.ldap.filter.AndNode;
 import org.apache.directory.shared.ldap.filter.BranchNode;
-import org.apache.directory.shared.ldap.filter.SimpleNode;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.name.LdapDN;
 
 import org.slf4j.Logger;
@@ -73,9 +73,9 @@
         NamingEnumeration javaClassEntries = null;
         byte[] classBytes = null;
         
-        BranchNode filter = new BranchNode( AssertionEnum.AND );
-        filter.addNode( new SimpleNode( "fullyQualifiedJavaClassName", name, AssertionEnum.EQUALITY ) );
-        filter.addNode( new SimpleNode( SchemaConstants.OBJECT_CLASS_AT, ApacheSchemaConstants.JAVA_CLASS_OC, AssertionEnum.EQUALITY ) );
+        BranchNode filter = new AndNode( );
+        filter.addNode( new EqualityNode( "fullyQualifiedJavaClassName", name ) );
+        filter.addNode( new EqualityNode( SchemaConstants.OBJECT_CLASS_AT, ApacheSchemaConstants.JAVA_CLASS_OC ) );
         
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementEvaluator.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementEvaluator.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementEvaluator.java Fri Sep 14 13:14:59 2007
@@ -21,13 +21,15 @@
 
 
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
+import org.apache.directory.shared.ldap.filter.AndNode;
 import org.apache.directory.shared.ldap.filter.BranchNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
+import org.apache.directory.shared.ldap.filter.NotNode;
+import org.apache.directory.shared.ldap.filter.OrNode;
 import org.apache.directory.shared.ldap.filter.SimpleNode;
 
 import javax.naming.NamingException;
 import javax.naming.directory.Attribute;
-import java.util.Iterator;
 
 
 /**
@@ -73,46 +75,44 @@
 
         BranchNode bnode = ( BranchNode ) node;
 
-        switch ( bnode.getOperator() )
+        if ( node instanceof OrNode )
         {
-            case OR :
-                Iterator children = bnode.getChildren().iterator();
-
-                while ( children.hasNext() )
+            for ( ExprNode child:bnode.getChildren() )
+            {
+                if ( evaluate( child, objectClasses ) )
                 {
-                    ExprNode child = ( ExprNode ) children.next();
-
-                    if ( evaluate( child, objectClasses ) )
-                    {
-                        return true;
-                    }
+                    return true;
                 }
+            }
 
-                return false;
-                
-            case AND :
-                children = bnode.getChildren().iterator();
-                while ( children.hasNext() )
+            return false;
+        }
+        else if ( node instanceof AndNode )
+        {
+            for ( ExprNode child:bnode.getChildren() )
+            {
+                if ( !evaluate( child, objectClasses ) )
                 {
-                    ExprNode child = ( ExprNode ) children.next();
-
-                    if ( !evaluate( child, objectClasses ) )
-                    {
-                        return false;
-                    }
+                    return false;
                 }
+            }
 
-                return true;
-                
-            case NOT :
-                if ( null != bnode.getChild() )
-                {
-                    return !evaluate( bnode.getChild(), objectClasses );
-                }
+            return true;
+        	
+        }
+        else if ( node instanceof NotNode )
+        {
+            if ( null != bnode.getFirstChild() )
+            {
+                return !evaluate( bnode.getFirstChild(), objectClasses );
+            }
 
-                throw new IllegalArgumentException( "Negation has no child: " + node );
-            default:
-                throw new IllegalArgumentException( "Unrecognized branch node operator: " + bnode.getOperator() );
+            throw new IllegalArgumentException( "Negation has no child: " + node );
+        	
+        }
+        else
+        {
+            throw new IllegalArgumentException( "Unrecognized branch node operator: " + bnode );
         }
     }
 }

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluator.java Fri Sep 14 13:14:59 2007
@@ -22,7 +22,7 @@
 
 import org.apache.directory.server.schema.registries.OidRegistry;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.filter.SimpleNode;
 import org.apache.directory.shared.ldap.util.StringTools;
 
@@ -72,9 +72,9 @@
         {
             throw new IllegalArgumentException( "node cannot be null" );
         }
-        if ( node.getAssertionType() != AssertionEnum.EQUALITY )
+        if ( !( node instanceof EqualityNode ) )
         {
-            throw new NamingException( "Unrecognized assertion type for refinement node: " + node.getAssertionType() );
+            throw new NamingException( "Unrecognized assertion type for refinement node: " + node );
         }
         if ( !node.getAttribute().equalsIgnoreCase( SchemaConstants.OBJECT_CLASS_AT ) )
         {

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryService.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryService.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/subtree/SubentryService.java Fri Sep 14 13:14:59 2007
@@ -61,10 +61,9 @@
 import org.apache.directory.shared.ldap.exception.LdapInvalidAttributeValueException;
 import org.apache.directory.shared.ldap.exception.LdapNoSuchAttributeException;
 import org.apache.directory.shared.ldap.exception.LdapSchemaViolationException;
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
 import org.apache.directory.shared.ldap.filter.PresenceNode;
-import org.apache.directory.shared.ldap.filter.SimpleNode;
 import org.apache.directory.shared.ldap.message.AttributeImpl;
 import org.apache.directory.shared.ldap.message.AttributesImpl;
 import org.apache.directory.shared.ldap.message.ModificationItemImpl;
@@ -149,7 +148,7 @@
 
         // prepare to find all subentries in all namingContexts
         Iterator suffixes = this.nexus.listSuffixes( null );
-        ExprNode filter = new SimpleNode( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.SUBENTRY_OC, AssertionEnum.EQUALITY );
+        ExprNode filter = new EqualityNode( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.SUBENTRY_OC );
         SearchControls controls = new SearchControls();
         controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
         controls.setReturningAttributes( new String[] { SchemaConstants.SUBTREE_SPECIFICATION_AT, SchemaConstants.OBJECT_CLASS_AT } );

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java Fri Sep 14 13:14:59 2007
@@ -44,9 +44,8 @@
 import org.apache.directory.server.core.partition.PartitionNexus;
 import org.apache.directory.server.schema.registries.AttributeTypeRegistry;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
-import org.apache.directory.shared.ldap.filter.SimpleNode;
 import org.apache.directory.shared.ldap.message.ModificationItemImpl;
 import org.apache.directory.shared.ldap.name.LdapDN;
 import org.apache.directory.shared.ldap.schema.NormalizerMappingResolver;
@@ -117,7 +116,7 @@
         {
             String suffix = ( String ) suffixes.next();
             LdapDN baseDn = new LdapDN( suffix );
-            ExprNode filter = new SimpleNode( SchemaConstants.OBJECT_CLASS_AT, ApacheSchemaConstants.TRIGGER_EXECUTION_SUBENTRY_OC, AssertionEnum.EQUALITY );
+            ExprNode filter = new EqualityNode( SchemaConstants.OBJECT_CLASS_AT, ApacheSchemaConstants.TRIGGER_EXECUTION_SUBENTRY_OC );
             SearchControls ctls = new SearchControls();
             ctls.setSearchScope( SearchControls.SUBTREE_SCOPE );
             NamingEnumeration results = 

Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java Fri Sep 14 13:14:59 2007
@@ -36,12 +36,11 @@
 import org.apache.directory.server.schema.registries.DefaultRegistries;
 import org.apache.directory.server.schema.registries.OidRegistry;
 import org.apache.directory.server.schema.registries.Registries;
-import org.apache.directory.shared.ldap.filter.BranchNode;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
 import org.apache.directory.shared.ldap.filter.FilterParser;
 import org.apache.directory.shared.ldap.filter.FilterParserImpl;
-import org.apache.directory.shared.ldap.filter.SimpleNode;
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
+import org.apache.directory.shared.ldap.filter.NotNode;
 import org.apache.directory.shared.ldap.message.AttributeImpl;
 
 import java.util.Set;
@@ -119,7 +118,7 @@
 
         try
         {
-            assertFalse( evaluator.evaluate( new SimpleNode( "", "", AssertionEnum.EQUALITY ), null ) );
+            assertFalse( evaluator.evaluate( new EqualityNode( "", "" ), null ) );
             fail( "should never get here due to an IAE" );
         }
         catch ( IllegalArgumentException iae )
@@ -128,7 +127,7 @@
 
         try
         {
-            assertFalse( evaluator.evaluate( new SimpleNode( "", "", AssertionEnum.EQUALITY ), new AttributeImpl( "blah" ) ) );
+            assertFalse( evaluator.evaluate( new EqualityNode( "", "" ), new AttributeImpl( "blah" ) ) );
             fail( "should never get here due to an IAE" );
         }
         catch ( IllegalArgumentException iae )
@@ -143,19 +142,19 @@
 
         // positive test
         objectClasses = new AttributeImpl( "objectClass", "person" );
-        assertTrue( evaluator.evaluate( new SimpleNode( "objectClass", "person", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertTrue( evaluator.evaluate( new EqualityNode( "objectClass", "person" ), objectClasses ) );
 
         objectClasses = new AttributeImpl( "objectClass" );
         objectClasses.add( "person" );
         objectClasses.add( "blah" );
-        assertTrue( evaluator.evaluate( new SimpleNode( "objectClass", "person", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertTrue( evaluator.evaluate( new EqualityNode( "objectClass", "person" ), objectClasses ) );
 
         // negative tests
         objectClasses = new AttributeImpl( "objectClass", "person" );
-        assertFalse( evaluator.evaluate( new SimpleNode( "objectClass", "blah", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertFalse( evaluator.evaluate( new EqualityNode( "objectClass", "blah" ), objectClasses ) );
 
         objectClasses = new AttributeImpl( "objectClass", "blah" );
-        assertFalse( evaluator.evaluate( new SimpleNode( "objectClass", "person", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertFalse( evaluator.evaluate( new EqualityNode( "objectClass", "person" ), objectClasses ) );
     }
 
 
@@ -165,19 +164,19 @@
 
         // positive test
         objectClasses = new AttributeImpl( "objectClass", "person" );
-        assertTrue( evaluator.evaluate( new SimpleNode( "objectClass", "2.5.6.6", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertTrue( evaluator.evaluate( new EqualityNode( "objectClass", "2.5.6.6" ), objectClasses ) );
 
         objectClasses = new AttributeImpl( "objectClass" );
         objectClasses.add( "person" );
         objectClasses.add( "blah" );
-        assertTrue( evaluator.evaluate( new SimpleNode( "objectClass", "2.5.6.6", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertTrue( evaluator.evaluate( new EqualityNode( "objectClass", "2.5.6.6" ), objectClasses ) );
 
         // negative tests
         objectClasses = new AttributeImpl( "objectClass", "person" );
-        assertFalse( evaluator.evaluate( new SimpleNode( "objectClass", "2.5.6.5", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertFalse( evaluator.evaluate( new EqualityNode( "objectClass", "2.5.6.5" ), objectClasses ) );
 
         objectClasses = new AttributeImpl( "objectClass", "blah" );
-        assertFalse( evaluator.evaluate( new SimpleNode( "objectClass", "2.5.6.5", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertFalse( evaluator.evaluate( new EqualityNode( "objectClass", "2.5.6.5" ), objectClasses ) );
     }
 
 
@@ -232,7 +231,7 @@
 
         try
         {
-            assertFalse( evaluator.evaluate( new BranchNode( AssertionEnum.NOT ), new AttributeImpl( "objectClass" ) ) );
+            assertFalse( evaluator.evaluate( new NotNode(), new AttributeImpl( "objectClass" ) ) );
             fail( "should never get here due to an IAE" );
         }
         catch ( IllegalArgumentException iae )

Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java Fri Sep 14 13:14:59 2007
@@ -35,8 +35,8 @@
 import org.apache.directory.server.schema.registries.DefaultRegistries;
 import org.apache.directory.server.schema.registries.OidRegistry;
 import org.apache.directory.server.schema.registries.Registries;
-import org.apache.directory.shared.ldap.filter.SimpleNode;
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
+import org.apache.directory.shared.ldap.filter.GreaterEqNode;
 import org.apache.directory.shared.ldap.message.AttributeImpl;
 
 import java.util.Set;
@@ -115,7 +115,7 @@
 
         try
         {
-            assertFalse( evaluator.evaluate( new SimpleNode( "", "", AssertionEnum.GREATEREQ ), objectClasses ) );
+            assertFalse( evaluator.evaluate( new GreaterEqNode( "", "" ), objectClasses ) );
             fail( "should never get here due to an NE" );
         }
         catch ( NamingException ne )
@@ -124,7 +124,7 @@
 
         try
         {
-            assertFalse( evaluator.evaluate( new SimpleNode( "", "", AssertionEnum.EQUALITY ), objectClasses ) );
+            assertFalse( evaluator.evaluate( new EqualityNode( "", "" ), objectClasses ) );
             fail( "should never get here due to an NE" );
         }
         catch ( NamingException ne )
@@ -133,7 +133,7 @@
 
         try
         {
-            assertFalse( evaluator.evaluate( new SimpleNode( "objectClass", "", AssertionEnum.EQUALITY ), objectClasses ) );
+            assertFalse( evaluator.evaluate( new EqualityNode( "objectClass", "" ), objectClasses ) );
             fail( "should never get here due to an IAE" );
         }
         catch ( IllegalArgumentException iae )
@@ -143,7 +143,7 @@
         try
         {
             objectClasses = new AttributeImpl( "incorrectAttrId" );
-            assertFalse( evaluator.evaluate( new SimpleNode( "objectClass", "", AssertionEnum.EQUALITY ), objectClasses ) );
+            assertFalse( evaluator.evaluate( new EqualityNode( "objectClass", "" ), objectClasses ) );
             fail( "should never get here due to an IAE" );
         }
         catch ( IllegalArgumentException iae )
@@ -158,19 +158,19 @@
 
         // positive test
         objectClasses = new AttributeImpl( "objectClass", "person" );
-        assertTrue( evaluator.evaluate( new SimpleNode( "objectClass", "person", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertTrue( evaluator.evaluate( new EqualityNode( "objectClass", "person" ), objectClasses ) );
 
         objectClasses = new AttributeImpl( "objectClass" );
         objectClasses.add( "person" );
         objectClasses.add( "blah" );
-        assertTrue( evaluator.evaluate( new SimpleNode( "objectClass", "person", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertTrue( evaluator.evaluate( new EqualityNode( "objectClass", "person" ), objectClasses ) );
 
         // negative tests
         objectClasses = new AttributeImpl( "objectClass", "person" );
-        assertFalse( evaluator.evaluate( new SimpleNode( "objectClass", "blah", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertFalse( evaluator.evaluate( new EqualityNode( "objectClass", "blah" ), objectClasses ) );
 
         objectClasses = new AttributeImpl( "objectClass", "blah" );
-        assertFalse( evaluator.evaluate( new SimpleNode( "objectClass", "person", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertFalse( evaluator.evaluate( new EqualityNode( "objectClass", "person" ), objectClasses ) );
     }
 
 
@@ -180,18 +180,18 @@
 
         // positive test
         objectClasses = new AttributeImpl( "objectClass", "person" );
-        assertTrue( evaluator.evaluate( new SimpleNode( "objectClass", "2.5.6.6", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertTrue( evaluator.evaluate( new EqualityNode( "objectClass", "2.5.6.6" ), objectClasses ) );
 
         objectClasses = new AttributeImpl( "objectClass" );
         objectClasses.add( "person" );
         objectClasses.add( "blah" );
-        assertTrue( evaluator.evaluate( new SimpleNode( "objectClass", "2.5.6.6", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertTrue( evaluator.evaluate( new EqualityNode( "objectClass", "2.5.6.6" ), objectClasses ) );
 
         // negative tests
         objectClasses = new AttributeImpl( "objectClass", "person" );
-        assertFalse( evaluator.evaluate( new SimpleNode( "objectClass", "2.5.6.5", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertFalse( evaluator.evaluate( new EqualityNode( "objectClass", "2.5.6.5" ), objectClasses ) );
 
         objectClasses = new AttributeImpl( "objectClass", "blah" );
-        assertFalse( evaluator.evaluate( new SimpleNode( "objectClass", "2.5.6.5", AssertionEnum.EQUALITY ), objectClasses ) );
+        assertFalse( evaluator.evaluate( new EqualityNode( "objectClass", "2.5.6.5" ), objectClasses ) );
     }
 }

Modified: directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/SearchHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/SearchHandler.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/SearchHandler.java (original)
+++ directory/apacheds/trunk/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/SearchHandler.java Fri Sep 14 13:14:59 2007
@@ -347,7 +347,7 @@
 
                 // now we process entries for ever as they change 
                 PersistentSearchListener handler = new PersistentSearchListener( ctx, session, req );
-                StringBuffer buf = new StringBuffer();
+                StringBuilder buf = new StringBuilder();
                 req.getFilter().printToBuffer( buf );
                 ctx.addNamingListener( req.getBase(), buf.toString(), controls, handler );
                 //TM long t1 = System.nanoTime();

Modified: directory/shared/trunk/ldap/src/main/antlr/ACIItem.g
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/antlr/ACIItem.g?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/antlr/ACIItem.g (original)
+++ directory/shared/trunk/ldap/src/main/antlr/ACIItem.g Fri Sep 14 13:14:59 2007
@@ -34,12 +34,14 @@
 import javax.naming.directory.Attribute;
 import javax.naming.Name;
 
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
 import org.apache.directory.shared.ldap.filter.BranchNode;
+import org.apache.directory.shared.ldap.filter.AndNode;
+import org.apache.directory.shared.ldap.filter.OrNode;
+import org.apache.directory.shared.ldap.filter.NotNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
 import org.apache.directory.shared.ldap.filter.FilterParserImpl;
 import org.apache.directory.shared.ldap.filter.LeafNode;
-import org.apache.directory.shared.ldap.filter.SimpleNode;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.message.AttributeImpl;
 import org.apache.directory.shared.ldap.name.NameComponentNormalizer;
 import org.apache.directory.shared.ldap.subtree.SubtreeSpecification;
@@ -1224,7 +1226,7 @@
     :
     ID_item ( SP )* COLON ( SP )* oid=oid
     {
-        node = new SimpleNode( SchemaConstants.OBJECT_CLASS_AT , oid , AssertionEnum.EQUALITY );
+        node = new EqualityNode( SchemaConstants.OBJECT_CLASS_AT , oid );
     }
     ;
 
@@ -1237,7 +1239,7 @@
     :
     ID_and ( SP )* COLON ( SP )* children=refinements
     {
-        node = new BranchNode( AssertionEnum.AND , children );
+        node = new AndNode( children );
     }
     ;
 
@@ -1250,7 +1252,7 @@
     :
     ID_or ( SP )* COLON ( SP )* children=refinements
     {
-        node = new BranchNode( AssertionEnum.OR , children );
+        node = new OrNode( children );
     }
     ;
 
@@ -1263,7 +1265,7 @@
     :
     ID_not ( SP )* COLON ( SP )* children=refinements
     {
-        node = new BranchNode( AssertionEnum.NOT , children );
+        node = new NotNode( children );
     }
     ;
 

Modified: directory/shared/trunk/ldap/src/main/antlr/filter-parser.g
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/antlr/filter-parser.g?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/antlr/filter-parser.g (original)
+++ directory/shared/trunk/ldap/src/main/antlr/filter-parser.g Fri Sep 14 13:14:59 2007
@@ -66,10 +66,13 @@
 {
     /** the monitor used to track the activities of this parser */
     FilterParserMonitor monitor;
+    
     /** the token stream selector used for multiplexing the underlying stream */
     TokenStreamSelector selector;
+    
     /** the filter value encoding lexer */
     AntlrFilterValueLexer valueLexer;
+    
     /** the value parser pulling tokens from the value lexer */
     AntlrFilterValueParser valueParser;
 
@@ -173,7 +176,7 @@
       }
     )*
     {
-        node = new BranchNode( AssertionEnum.AND, children );
+        node = new AndNode( children );
     }
     ;
 
@@ -198,7 +201,7 @@
       }
     )*
     {
-        node = new BranchNode( AssertionEnum.OR, children );
+        node = new OrNode( children );
     }
     ;
 
@@ -213,7 +216,7 @@
 }
     : EXCLAMATION child=filter
     {
-        node = new BranchNode( AssertionEnum.NOT );
+        node = new NotNode();
         node.addNode( child );
     }
     ;
@@ -297,31 +300,53 @@
         switch( type )
         {
             case APPROXIMATE :
+                if ( value instanceof String )
+                {
+                    node = new ApproximateNode( attribute, ( String ) value );
+                }
+                else if ( value instanceof byte[] )
+                {
+                    node = new ApproximateNode( attribute, ( byte[] ) value );
+                }
+                break;
+
             case GREATEREQ :
+                if ( value instanceof String )
+                {
+                    node = new GreaterEqNode( attribute, ( String ) value );
+                }
+                else if ( value instanceof byte[] )
+                {
+                    node = new GreaterEqNode( attribute, ( byte[] ) value );
+                }
+                break;
+
             case LESSEQ :
                 if ( value instanceof String )
                 {
-                    node = new SimpleNode( attribute, ( String ) value, type );
+                    node = new LessEqNode( attribute, ( String ) value );
                 }
                 else if ( value instanceof byte[] )
                 {
-                    node = new SimpleNode( attribute, ( byte[] ) value, type );
+                    node = new LessEqNode( attribute, ( byte[] ) value );
                 }
+
                 break;
                 
             case EQUALITY :
                 if ( value instanceof String )
                 {
-                    node = new SimpleNode( attribute, ( String ) value, type );
+                    node = new EqualityNode( attribute, ( String ) value );
                 }
                 else if ( value instanceof byte[] )
                 {
-                    node = new SimpleNode( attribute, ( byte[] ) value, type );
+                    node = new EqualityNode( attribute, ( byte[] ) value );
                 }
                 else
                 {
                     node = ( LeafNode ) value;
                 }
+                
                 break;
                 
             default:

Modified: directory/shared/trunk/ldap/src/main/antlr/subtree-specification.g
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/antlr/subtree-specification.g?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/antlr/subtree-specification.g (original)
+++ directory/shared/trunk/ldap/src/main/antlr/subtree-specification.g Fri Sep 14 13:14:59 2007
@@ -32,9 +32,11 @@
 import org.apache.directory.shared.ldap.name.LdapDN;
 import org.apache.directory.shared.ldap.filter.ExprNode;
 import org.apache.directory.shared.ldap.filter.LeafNode;
-import org.apache.directory.shared.ldap.filter.SimpleNode;
 import org.apache.directory.shared.ldap.filter.BranchNode;
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
+import org.apache.directory.shared.ldap.filter.AndNode;
+import org.apache.directory.shared.ldap.filter.OrNode;
+import org.apache.directory.shared.ldap.filter.NotNode;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.filter.FilterParserImpl;
 import org.apache.directory.shared.ldap.subtree.SubtreeSpecification;
 import org.apache.directory.shared.ldap.subtree.SubtreeSpecificationModifier;
@@ -399,7 +401,7 @@
     :
     ID_item ( SP )* COLON ( SP )* oid=oid
     {
-        node = new SimpleNode( SchemaConstants.OBJECT_CLASS_AT , oid , AssertionEnum.EQUALITY );
+        node = new EqualityNode( SchemaConstants.OBJECT_CLASS_AT, oid );
     }
     ;
 
@@ -412,7 +414,7 @@
     :
     ID_and ( SP )* COLON ( SP )* children=refinements
     {
-        node = new BranchNode( AssertionEnum.AND , children );
+        node = new AndNode( children );
     }
     ;
 
@@ -425,7 +427,7 @@
     :
     ID_or ( SP )* COLON ( SP )* children=refinements
     {
-        node = new BranchNode( AssertionEnum.OR , children );
+        node = new OrNode( children );
     }
     ;
 
@@ -438,7 +440,7 @@
     :
     ID_not ( SP )* COLON ( SP )* children=refinements
     {
-        node = new BranchNode( AssertionEnum.NOT , children );
+        node = new NotNode( children );
     }
     ;
 

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ACIItem.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ACIItem.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ACIItem.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ACIItem.java Fri Sep 14 13:14:59 2007
@@ -115,7 +115,7 @@
      *
      * @param buffer the string buffer
      */
-    public abstract void printToBuffer( StringBuffer buffer );
+    public abstract void printToBuffer( StringBuilder buffer );
 
     
     /**

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/GrantAndDenial.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/GrantAndDenial.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/GrantAndDenial.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/GrantAndDenial.java Fri Sep 14 13:14:59 2007
@@ -180,7 +180,7 @@
      *
      * @param buffer the string buffer
      */
-    public void printToBuffer( StringBuffer buffer )
+    public void printToBuffer( StringBuilder buffer )
     {
         buffer.append( getName() );
     }

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ItemFirstACIItem.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ItemFirstACIItem.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ItemFirstACIItem.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ItemFirstACIItem.java Fri Sep 14 13:14:59 2007
@@ -125,7 +125,7 @@
      *
      * @param buffer the string buffer
      */
-    public void printToBuffer( StringBuffer buffer )
+    public void printToBuffer( StringBuilder buffer )
     {
         // identificationTag
         buffer.append( "{ identificationTag \"" );

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ItemPermission.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ItemPermission.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ItemPermission.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ItemPermission.java Fri Sep 14 13:14:59 2007
@@ -79,7 +79,7 @@
      *
      * @param buffer the string buffer
      */
-    public void printToBuffer( StringBuffer buffer )
+    public void printToBuffer( StringBuilder buffer )
     {
         buffer.append( "{ " );
 

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ProtectedItem.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ProtectedItem.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ProtectedItem.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/ProtectedItem.java Fri Sep 14 13:14:59 2007
@@ -77,7 +77,7 @@
      *
      * @param buffer the string buffer
      */
-    public abstract void printToBuffer( StringBuffer buffer );
+    public abstract void printToBuffer( StringBuilder buffer );
 
     
     /**
@@ -130,10 +130,9 @@
         }
 
 
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( "classes" );
-            buffer.append( ' ' );
+            buffer.append( "classes " );
             classes.printRefinementToBuffer( buffer );
         }
     }
@@ -162,7 +161,7 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
             buffer.append( "entry" );
         }
@@ -188,7 +187,7 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
             buffer.append( "allUserAttributeTypes" );
         }
@@ -214,7 +213,7 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
             buffer.append( "allUserAttributeTypesAndValues" );
         }
@@ -255,11 +254,6 @@
                 return true;
             }
 
-            if ( o == null )
-            {
-                return false;
-            }
-
             if ( getClass().isAssignableFrom( o.getClass() ) )
             {
                 AttributeTypeProtectedItem that = ( AttributeTypeProtectedItem ) o;
@@ -270,7 +264,7 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
             buffer.append( "{ " );
             boolean isFirst = true;
@@ -320,10 +314,9 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( "attributeType" );
-            buffer.append( ' ' );
+            buffer.append( "attributeType " );
             super.printToBuffer( buffer );
         }
     }
@@ -354,10 +347,9 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( "allAttributeValues" );
-            buffer.append( ' ' );
+            buffer.append( "allAttributeValues " );
             super.printToBuffer( buffer );
         }
     }
@@ -392,10 +384,9 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( "selfValue" );
-            buffer.append( ' ' );
+            buffer.append( "selfValue " );
             super.printToBuffer( buffer );
         }
     }
@@ -453,19 +444,16 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( "attributeValue" );
-            buffer.append( ' ' );
-           
-            buffer.append( '{' );
-            buffer.append( ' ' );
+            buffer.append( "attributeValue {" );
             
             for ( Iterator<Attribute> it = attributes.iterator(); it.hasNext(); )
             {
                 Attribute attribute = it.next();
                 buffer.append( attribute.getID() );
                 buffer.append( '=' );
+                
                 try
                 {
                     buffer.append( attribute.get( 0 ) );
@@ -475,14 +463,13 @@
                     // doesn't occur here, it is an Attribute
                 }
                 
-                if(it.hasNext()) {
-                    buffer.append( ',' );
-                    buffer.append( ' ' );
+                if ( it.hasNext() ) 
+                {
+                    buffer.append( ", " );
                 }
             }
             
-            buffer.append( ' ' );
-            buffer.append( '}' );
+            buffer.append( " }" );
         }
     }
 
@@ -510,14 +497,6 @@
          */
         public MaxValueCount( Collection<MaxValueCountItem> items )
         {
-            for ( Iterator<MaxValueCountItem> i = items.iterator(); i.hasNext(); )
-            {
-                if ( !MaxValueCountItem.class.isAssignableFrom( i.next().getClass() ) )
-                {
-                    throw new IllegalArgumentException( "Max value count contains a wrong element." );
-                }
-            }
-
             this.items = Collections.unmodifiableCollection( new ArrayList<MaxValueCountItem>( items ) );
         }
 
@@ -554,27 +533,22 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( "maxValueCount" );
-            buffer.append( ' ' );
-           
-            buffer.append( '{' );
-            buffer.append( ' ' );
+            buffer.append( "maxValueCount {" );
             
             for ( Iterator<MaxValueCountItem> it = items.iterator(); it.hasNext(); )
             {
                 MaxValueCountItem item = it.next();
                 item.printToBuffer( buffer );
                 
-                if(it.hasNext()) {
-                    buffer.append( ',' );
-                    buffer.append( ' ' );
+                if ( it.hasNext() ) 
+                {
+                    buffer.append( ", " );
                 }
             }
             
-            buffer.append( ' ' );
-            buffer.append( '}' );
+            buffer.append( " }" );
         }
     }
 
@@ -634,17 +608,16 @@
 
         public String toString()
         {
-            StringBuffer buf = new StringBuffer();
+        	StringBuilder buf = new StringBuilder();
             buf.append( "rangeOfValues: " );
             filter.printToBuffer( buf );
             return buf.toString();
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( "rangeOfValues" );
-            buffer.append( ' ' );
+            buffer.append( "rangeOfValues " );
             filter.printToBuffer( buffer );
         }
     }
@@ -710,10 +683,9 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( "maxImmSub" );
-            buffer.append( ' ' );
+            buffer.append( "maxImmSub " );
             buffer.append( value );
         }
     }
@@ -777,27 +749,22 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( "restrictedBy" );
-            buffer.append( ' ' );
-            
-            buffer.append( '{' );
-            buffer.append( ' ' );
+            buffer.append( "restrictedBy {" );
             
             for ( Iterator<RestrictedByItem> it = items.iterator(); it.hasNext(); )
             {
                 RestrictedByItem item = it.next();
                 item.printToBuffer( buffer );
                 
-                if(it.hasNext()) {
-                    buffer.append( ',' );
-                    buffer.append( ' ' );
+                if ( it.hasNext() ) 
+                {
+                    buffer.append( ", " );
                 }
             }
             
-            buffer.append( ' ' );
-            buffer.append( '}' );
+            buffer.append( " }" );
         }
     }
 
@@ -853,24 +820,13 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( '{' );
-            buffer.append( ' ' );
-            
-            buffer.append( "type" );
-            buffer.append( ' ' );
-            buffer.append( attributeType );
+            buffer.append( "{ type " ).append( attributeType );
 
-            buffer.append( ',' );
-            buffer.append( ' ' );
+            buffer.append( ", maxcount " ).append( maxCount );
             
-            buffer.append( "maxCount" );
-            buffer.append( ' ' );
-            buffer.append( maxCount );
-            
-            buffer.append( ' ' );
-            buffer.append( '}' );
+            buffer.append( " }" );
         }
     }
 
@@ -927,25 +883,13 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
-            buffer.append( '{' );
-            buffer.append( ' ' );
-            
-            buffer.append( "type" );
-            buffer.append( ' ' );
-            buffer.append( attributeType );
+            buffer.append( "' type " ).append( attributeType );
 
-            buffer.append( ',' );
-            buffer.append( ' ' );
+            buffer.append( ", valuesIn " ).append( valuesIn );
             
-            buffer.append( "valuesIn" );
-            buffer.append( ' ' );
-            buffer.append( valuesIn );
-            
-            buffer.append( ' ' );
-            buffer.append( '}' );
+            buffer.append( " }" );
         }
     }
-    
 }

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserClass.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserClass.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserClass.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserClass.java Fri Sep 14 13:14:59 2007
@@ -66,7 +66,7 @@
      *
      * @param buffer the string buffer
      */
-    public abstract void printToBuffer( StringBuffer buffer );
+    public abstract void printToBuffer( StringBuilder buffer );
     
 
     /**
@@ -89,7 +89,7 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
             buffer.append( "allUsers" );
         }
@@ -116,7 +116,7 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
             buffer.append( "thisEntry" );
         }
@@ -178,7 +178,7 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
             boolean isFirst = true;
             buffer.append( "{ " );
@@ -229,7 +229,7 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
             buffer.append( "name " );
             super.printToBuffer( buffer );
@@ -265,7 +265,7 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
             buffer.append( "userGroup " );
             super.printToBuffer( buffer );
@@ -327,7 +327,7 @@
         }
         
         
-        public void printToBuffer( StringBuffer buffer )
+        public void printToBuffer( StringBuilder buffer )
         {
             boolean isFirst = true;
             buffer.append( "subtree { " );

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserFirstACIItem.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserFirstACIItem.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserFirstACIItem.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserFirstACIItem.java Fri Sep 14 13:14:59 2007
@@ -126,87 +126,56 @@
      *
      * @param buffer the string buffer
      */
-    public void printToBuffer( StringBuffer buffer )
+    public void printToBuffer( StringBuilder buffer )
     {
-        buffer.append( '{' );
-        buffer.append( ' ' );
-        
         // identificationTag
-        buffer.append( "identificationTag" );
-        buffer.append( ' ' );
-        buffer.append( '"' );
+        buffer.append( "{ identificationTag \"" );
         buffer.append( getIdentificationTag() );
-        buffer.append( '"' );
-        buffer.append( ',' );
-        buffer.append( ' ' );
+        buffer.append( "\", " );
         
         // precedence
-        buffer.append( "precedence" );
-        buffer.append( ' ' );
+        buffer.append( "precedence " );
         buffer.append( getPrecedence() );
-        buffer.append( ',' );
-        buffer.append( ' ' );
+        buffer.append( ", " );
         
         // authenticationLevel
-        buffer.append( "authenticationLevel" );
-        buffer.append( ' ' );
+        buffer.append( "authenticationLevel " );
         buffer.append( getAuthenticationLevel().getName() );
-        buffer.append( ',' );
-        buffer.append( ' ' );
+        buffer.append( ", " );
         
         // itemOrUserFirst
-        buffer.append( "itemOrUserFirst" );
-        buffer.append( ' ' );
-        buffer.append( "userFirst" );
-        buffer.append( ':' );
-        buffer.append( ' ' );
-        
-        buffer.append( '{' );
-        buffer.append( ' ' );
+        buffer.append( "itemOrUserFirst userFirst: { " );
         
         // protectedItems
-        buffer.append( "userClasses" );
-        buffer.append( ' ' );
-        buffer.append( '{' );
-        buffer.append( ' ' );
+        buffer.append( "userClasses { " );
+
         for ( Iterator it = userClasses.iterator(); it.hasNext(); )
         {
             UserClass userClass =  ( UserClass ) it.next();
             userClass.printToBuffer( buffer );
             
-            if(it.hasNext()) {
-                buffer.append( ',' );
-                buffer.append( ' ' );
+            if ( it.hasNext() ) 
+            {
+                buffer.append( ", " );
             }
         }
-        buffer.append( ' ' );
-        buffer.append( '}' );
-        
-        buffer.append( ',' );
-        buffer.append( ' ' );
+
+        buffer.append( " }, " );
         
         // itemPermissions
-        buffer.append( "userPermissions" );
-        buffer.append( ' ' );
-        buffer.append( '{' );
-        buffer.append( ' ' );
+        buffer.append( "userPermissions { " );
+
         for ( Iterator it = userPermissions.iterator(); it.hasNext(); )
         {
             UserPermission permission = ( UserPermission ) it.next();
             permission.printToBuffer( buffer );
             
-            if(it.hasNext()) {
-                buffer.append( ',' );
-                buffer.append( ' ' );
+            if ( it.hasNext() ) 
+            {
+                buffer.append( ", " );
             }
         }
-        buffer.append( ' ' );
-        buffer.append( '}' );
-        
-        buffer.append( ' ' );
-        buffer.append( '}' );
         
-        buffer.append( ' ' );
-        buffer.append( '}' );
+        buffer.append( " } } }" );
     }
 }

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserPermission.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserPermission.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserPermission.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/aci/UserPermission.java Fri Sep 14 13:14:59 2007
@@ -80,58 +80,43 @@
      *
      * @param buffer the string buffer
      */
-    public void printToBuffer( StringBuffer buffer )
+    public void printToBuffer( StringBuilder buffer )
     {
-        buffer.append( '{' );
-        buffer.append( ' ' );
+        buffer.append( "{ " );
 
         if ( getPrecedence() >= 0 && getPrecedence() <= 255 )
         {
-            buffer.append( "precedence" );
-            buffer.append( ' ' );
+            buffer.append( "precedence " );
             buffer.append( getPrecedence() );
-            buffer.append( ',' );
-            buffer.append( ' ' );
+            buffer.append( ", " );
         }
         
-        buffer.append( "protectedItems" );
-        buffer.append( ' ' );
-        buffer.append( '{' );
-        buffer.append( ' ' );
+        buffer.append( "protectedItems { " );
+        
         for ( Iterator it = protectedItems.iterator(); it.hasNext(); )
         {
             ProtectedItem item = ( ProtectedItem ) it.next();
             item.printToBuffer( buffer );
             
-            if(it.hasNext()) {
-                buffer.append( ',' );
-                buffer.append( ' ' );
+            if ( it.hasNext() ) 
+            {
+                buffer.append( ", " );
             }
         }
-        buffer.append( ' ' );
-        buffer.append( '}' );
-        
-        buffer.append( ',' );
-        buffer.append( ' ' );
         
-        buffer.append( "grantsAndDenials" );
-        buffer.append( ' ' );
-        buffer.append( '{' );
-        buffer.append( ' ' );
+        buffer.append( " }, grantsAndDenials { " );
+
         for ( Iterator it = getGrantsAndDenials().iterator(); it.hasNext(); )
         {
             GrantAndDenial grantAndDenial = ( GrantAndDenial ) it.next();
             grantAndDenial.printToBuffer( buffer );
             
-            if(it.hasNext()) {
-                buffer.append( ',' );
-                buffer.append( ' ' );
+            if ( it.hasNext() ) 
+            {
+                buffer.append( ", " );
             }
         }
-        buffer.append( ' ' );
-        buffer.append( '}' );
         
-        buffer.append( ' ' );
-        buffer.append( '}' );
+        buffer.append( " } }" );
     }
 }

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java Fri Sep 14 13:14:59 2007
@@ -65,13 +65,18 @@
 import org.apache.directory.shared.ldap.codec.search.controls.SubEntryControl;
 import org.apache.directory.shared.ldap.codec.util.LdapURL;
 import org.apache.directory.shared.ldap.codec.util.LdapURLEncodingException;
-import org.apache.directory.shared.ldap.filter.AssertionEnum;
+import org.apache.directory.shared.ldap.filter.AndNode;
+import org.apache.directory.shared.ldap.filter.ApproximateNode;
 import org.apache.directory.shared.ldap.filter.BranchNode;
+import org.apache.directory.shared.ldap.filter.EqualityNode;
 import org.apache.directory.shared.ldap.filter.ExprNode;
 import org.apache.directory.shared.ldap.filter.ExtensibleNode;
+import org.apache.directory.shared.ldap.filter.GreaterEqNode;
 import org.apache.directory.shared.ldap.filter.LeafNode;
+import org.apache.directory.shared.ldap.filter.LessEqNode;
+import org.apache.directory.shared.ldap.filter.NotNode;
+import org.apache.directory.shared.ldap.filter.OrNode;
 import org.apache.directory.shared.ldap.filter.PresenceNode;
-import org.apache.directory.shared.ldap.filter.SimpleNode;
 import org.apache.directory.shared.ldap.filter.SubstringNode;
 import org.apache.directory.shared.ldap.message.AbandonRequestImpl;
 import org.apache.directory.shared.ldap.message.AddRequestImpl;
@@ -395,15 +400,15 @@
 
                 if ( twixFilter instanceof AndFilter )
                 {
-                    branch = new BranchNode( AssertionEnum.AND );
+                    branch = new AndNode();
                 }
                 else if ( twixFilter instanceof OrFilter )
                 {
-                    branch = new BranchNode( AssertionEnum.OR );
+                    branch = new OrNode();
                 }
                 else if ( twixFilter instanceof NotFilter )
                 {
-                    branch = new BranchNode( AssertionEnum.NOT );
+                    branch = new NotNode();
                 }
 
                 List<Filter> filtersSet = ( ( ConnectorFilter ) twixFilter ).getFilterSet();
@@ -440,15 +445,13 @@
                         case LdapConstants.EQUALITY_MATCH_FILTER:
                             if ( ava.getAssertionValue() instanceof String )
                             {
-                                branch = new SimpleNode( ava.getAttributeDesc(), 
-                                    (String)ava.getAssertionValue(), 
-                                    AssertionEnum.EQUALITY );
+                                branch = new EqualityNode( ava.getAttributeDesc(), 
+                                    (String)ava.getAssertionValue() );
                             }
                             else
                             {
-                                branch = new SimpleNode( ava.getAttributeDesc(), 
-                                    (byte[])ava.getAssertionValue(), 
-                                    AssertionEnum.EQUALITY );
+                                branch = new EqualityNode( ava.getAttributeDesc(), 
+                                    (byte[])ava.getAssertionValue() );
                             }
                             
                             break;
@@ -456,15 +459,13 @@
                         case LdapConstants.GREATER_OR_EQUAL_FILTER:
                             if ( ava.getAssertionValue() instanceof String )
                             {
-                                branch = new SimpleNode( ava.getAttributeDesc(),
-                                    (String)ava.getAssertionValue(),
-                                    AssertionEnum.GREATEREQ );
+                                branch = new GreaterEqNode( ava.getAttributeDesc(),
+                                    (String)ava.getAssertionValue() );
                             }
                             else
                             {
-                                branch = new SimpleNode( ava.getAttributeDesc(),
-                                    (byte[])ava.getAssertionValue(),
-                                    AssertionEnum.GREATEREQ );
+                                branch = new GreaterEqNode( ava.getAttributeDesc(),
+                                    (byte[])ava.getAssertionValue() );
                             }
 
                             break;
@@ -472,15 +473,13 @@
                         case LdapConstants.LESS_OR_EQUAL_FILTER:
                             if ( ava.getAssertionValue() instanceof String )
                             {
-                                branch = new SimpleNode( ava.getAttributeDesc(), 
-                                    (String)ava.getAssertionValue(), 
-                                    AssertionEnum.LESSEQ );
+                                branch = new LessEqNode( ava.getAttributeDesc(), 
+                                    (String)ava.getAssertionValue() );
                             }
                             else
                             {
-                                branch = new SimpleNode( ava.getAttributeDesc(), 
-                                    (byte[])ava.getAssertionValue(), 
-                                    AssertionEnum.LESSEQ );
+                                branch = new LessEqNode( ava.getAttributeDesc(), 
+                                    (byte[])ava.getAssertionValue() );
                             }
 
                             break;
@@ -488,15 +487,13 @@
                         case LdapConstants.APPROX_MATCH_FILTER:
                             if ( ava.getAssertionValue() instanceof String )
                             {
-                                branch = new SimpleNode( ava.getAttributeDesc(), 
-                                    (String)ava.getAssertionValue(), 
-                                    AssertionEnum.APPROXIMATE );
+                                branch = new ApproximateNode( ava.getAttributeDesc(), 
+                                    (String)ava.getAssertionValue() );
                             }
                             else
                             {
-                                branch = new SimpleNode( ava.getAttributeDesc(), 
-                                    (byte[])ava.getAssertionValue(), 
-                                    AssertionEnum.APPROXIMATE );
+                                branch = new ApproximateNode( ava.getAttributeDesc(), 
+                                    (byte[])ava.getAssertionValue() );
                             }
 
                             break;

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/filter/AbstractExprNode.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/filter/AbstractExprNode.java?rev=575783&r1=575782&r2=575783&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/filter/AbstractExprNode.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/filter/AbstractExprNode.java Fri Sep 14 13:14:59 2007
@@ -33,21 +33,13 @@
 public abstract class AbstractExprNode implements ExprNode
 {
     /** The map of annotations */
-    private Map<String, Object> annotations;
-
-    /** node type set to enumation of constants */
-    private final AssertionEnum assertionType;
-
+    protected Map<String, Object> annotations;
 
     /**
-     * Creates an node by setting abstract node type.
-     * 
-     * @param type
-     *            the type of this leaf node
+     * Creates a node by setting abstract node type.
      */
-    protected AbstractExprNode( AssertionEnum type)
+    protected AbstractExprNode()
     {
-        assertionType = type;
     }
 
 
@@ -85,125 +77,8 @@
      * 
      * @return the annotation map.
      */
-    protected Map getAnnotations()
+    protected Map<String, Object> getAnnotations()
     {
         return annotations;
-    }
-
-
-    /**
-     * Gets the assertion type of this leaf node.
-     * 
-     * @return the assertion or node type
-     */
-    public AssertionEnum getAssertionType()
-    {
-        return assertionType;
-    }
-
-
-    /**
-     * Returns the filter operator string associated with an assertion type.
-     * 
-     * @param assertionType
-     *            the assertion type value
-     * @return the string representation
-     * TODO Refactor these classes to use an enumeration type
-     */
-    public static final String getOperationString( AssertionEnum assertionType )
-    {
-        String opstr = null;
-
-        switch ( assertionType )
-        {
-            case APPROXIMATE :
-                opstr = "~=";
-
-                break;
-
-            case EQUALITY :
-                opstr = "=";
-
-                break;
-
-            case EXTENSIBLE :
-                opstr = "extensible";
-
-                break;
-
-            case GREATEREQ :
-                opstr = ">=";
-
-                break;
-
-            case LESSEQ :
-                opstr = "<=";
-
-                break;
-
-            case PRESENCE :
-                opstr = "=*";
-
-                break;
-
-            case SUBSTRING :
-                opstr = "=";
-
-                break;
-
-            default:
-                throw new IllegalArgumentException( "Attribute value assertion type is undefined." );
-        }
-
-        return opstr;
-    }
-
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
-    public boolean equals( Object other )
-    {
-        if ( this == other )
-        {
-            return true;
-        }
-
-        if ( ( other == null ) || ( other.getClass() != this.getClass() ) )
-        {
-            return false;
-        }
-
-        AbstractExprNode otherExprNode = ( AbstractExprNode ) other;
-
-        if ( otherExprNode.getAssertionType() != assertionType )
-        {
-            return false;
-        }
-
-        Map otherAnnotations = otherExprNode.annotations;
-
-        if ( otherAnnotations == annotations )
-        {
-            return true;
-        }
-
-        // return true if both are non-null and equals() is true
-
-        return ( ( null != annotations ) && ( null != otherAnnotations ) && 
-        		annotations.equals( otherAnnotations ) );
-    }
-    
-    /**
-     * @see Object#hashCode()
-     */
-    public int hashCode()
-    {
-        int hash = 7;
-        hash = hash*31 + ( assertionType == null ? 0 : assertionType.hashCode() );
-        hash = hash*31 + ( annotations == null ? 0 : annotations.hashCode() );
-        return hash;
     }
 }