Author: akarasulu Date: Thu Dec 2 01:55:44 2004 New Revision: 109487 URL: http://svn.apache.org/viewcvs?view=rev&rev=109487 Log: Changes ...
o adjusted for new SubstringNode function changes where regex generation requires the substring matching rule's normalizer to build o changes now required the attributeTypeRegistry in certain places Notes ... o might want to remove OID checks which happen automatically using oid registry Modified: incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/ExpressionEnumerator.java incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEnumerator.java incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEvaluator.java incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveContextFactory.java Modified: incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/ExpressionEnumerator.java Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/ExpressionEnumerator.java?view=diff&rev=109487&p1=incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/ExpressionEnumerator.java&r1=109486&p2=incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/ExpressionEnumerator.java&r2=109487 ============================================================================== --- incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/ExpressionEnumerator.java (original) +++ incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/ExpressionEnumerator.java Thu Dec 2 01:55:44 2004 @@ -29,6 +29,7 @@ import org.apache.ldap.common.filter.AssertionNode; import org.apache.ldap.common.filter.SubstringNode; import org.apache.ldap.common.NotImplementedException; +import org.apache.eve.schema.AttributeTypeRegistry; import java.util.ArrayList; import java.math.BigInteger; @@ -58,14 +59,17 @@ * @param db database used by this enumerator * @param evaluator */ - public ExpressionEnumerator( Database db, ExpressionEvaluator evaluator ) + public ExpressionEnumerator( Database db, + AttributeTypeRegistry attributeTypeRegistry, + ExpressionEvaluator evaluator ) { this.db = db; this.evaluator = evaluator; LeafEvaluator leafEvaluator = evaluator.getLeafEvaluator(); scopeEnumerator = new ScopeEnumerator( db, leafEvaluator.getScopeEvaluator() ); - substringEnumerator = new SubstringEnumerator( db, leafEvaluator.getSubstringEvaluator() ); + substringEnumerator = new SubstringEnumerator( db, attributeTypeRegistry, + leafEvaluator.getSubstringEvaluator() ); } Modified: incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEnumerator.java Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEnumerator.java?view=diff&rev=109487&p1=incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEnumerator.java&r1=109486&p2=incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEnumerator.java&r2=109487 ============================================================================== --- incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEnumerator.java (original) +++ incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEnumerator.java Thu Dec 2 01:55:44 2004 @@ -223,6 +223,9 @@ import org.apache.ldap.common.filter.ExprNode; import org.apache.ldap.common.filter.SubstringNode; +import org.apache.ldap.common.schema.Normalizer; +import org.apache.ldap.common.schema.AttributeType; +import org.apache.eve.schema.AttributeTypeRegistry; /** @@ -235,9 +238,11 @@ public class SubstringEnumerator implements Enumerator { /** Database used */ - private Database db = null; + private final Database db; /** Evaluator used is an Avalon dependent object */ - private SubstringEvaluator evaluator = null; + private final SubstringEvaluator evaluator; + /** the attribute type registry */ + private final AttributeTypeRegistry attributeTypeRegistry; /** @@ -246,10 +251,13 @@ * @param db the database * @param evaluator a substring evaluator */ - public SubstringEnumerator( Database db, SubstringEvaluator evaluator ) + public SubstringEnumerator( Database db, + AttributeTypeRegistry attributeTypeRegistry, + SubstringEvaluator evaluator ) { this.db = db; this.evaluator = evaluator; + this.attributeTypeRegistry = attributeTypeRegistry; } @@ -268,7 +276,9 @@ RE regex = null; Index idx = null; final SubstringNode snode = ( SubstringNode ) node; - + AttributeType type = attributeTypeRegistry.lookup( snode.getAttribute() ); + Normalizer normalizer = type.getSubstr().getNormalizer(); + if ( db.hasUserIndexOn( snode.getAttribute() ) ) { /* @@ -277,7 +287,7 @@ */ try { - regex = snode.getRegex(); + regex = snode.getRegex( normalizer ); } catch ( RESyntaxException e ) { Modified: incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEvaluator.java Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEvaluator.java?view=diff&rev=109487&p1=incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEvaluator.java&r1=109486&p2=incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEvaluator.java&r2=109487 ============================================================================== --- incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEvaluator.java (original) +++ incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/db/SubstringEvaluator.java Thu Dec 2 01:55:44 2004 @@ -74,6 +74,9 @@ { RE regex = null; SubstringNode snode = ( SubstringNode ) node; + String oid = oidRegistry.getOid( snode.getAttribute() ); + AttributeType type = attributeTypeRegistry.lookup( oid ); + Normalizer normalizer = type.getSubstr().getNormalizer(); if ( db.hasUserIndexOn( snode.getAttribute() ) ) { @@ -91,7 +94,7 @@ // compile the regular expression to search for a matching attribute try { - regex = snode.getRegex(); + regex = snode.getRegex( normalizer ); } catch ( RESyntaxException e ) { @@ -122,10 +125,6 @@ // Index not defined beyond this point // -------------------------------------------------------------------- - String oid = oidRegistry.getOid( snode.getAttribute() ); - AttributeType type = attributeTypeRegistry.lookup( oid ); - Normalizer normalizer = type.getSubstr().getNormalizer(); - // resusitate the entry if it has not been and set entry in IndexRecord if ( null == record.getAttributes() ) { @@ -145,7 +144,7 @@ // compile the regular expression to search for a matching attribute try { - regex = snode.getRegex(); + regex = snode.getRegex( normalizer ); } catch ( RESyntaxException e ) { Modified: incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveContextFactory.java Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveContextFactory.java?view=diff&rev=109487&p1=incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveContextFactory.java&r1=109486&p2=incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveContextFactory.java&r2=109487 ============================================================================== --- incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveContextFactory.java (original) +++ incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveContextFactory.java Thu Dec 2 01:55:44 2004 @@ -397,7 +397,7 @@ evaluator = new ExpressionEvaluator( db, oidRegistry, attributeTypeRegistry ); ExpressionEnumerator enumerator; - enumerator = new ExpressionEnumerator( db, evaluator ); + enumerator = new ExpressionEnumerator( db, attributeTypeRegistry, evaluator ); SearchEngine eng = new DefaultSearchEngine( db, evaluator, enumerator ); @@ -581,7 +581,7 @@ ExpressionEvaluator evaluator; evaluator = new ExpressionEvaluator( db, oidRegistry, attributeTypeRegistry ); ExpressionEnumerator enumerator; - enumerator = new ExpressionEnumerator( db, evaluator ); + enumerator = new ExpressionEnumerator( db, attributeTypeRegistry, evaluator ); SearchEngine eng = new DefaultSearchEngine( db, evaluator, enumerator ); // ----------------------------------------------------------------
