Author: elecharny
Date: Tue Jul 13 15:59:10 2010
New Revision: 963773
URL: http://svn.apache.org/viewvc?rev=963773&view=rev
Log:
Created an Abstract SimpleEvaluator class to gather some common informations
Added:
directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SimpleEvaluator.java
Modified:
directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java
directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java
directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java
directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqCursor.java
directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/LessEqEvaluator.java
directory/apacheds/trunk/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/LessEqTest.java
Modified: directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java?rev=963773&r1=963772&r2=963773&view=diff
==============================================================================
--- directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java (original)
+++ directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ApproximateEvaluator.java Tue Jul 13 15:59:10 2010
@@ -26,15 +26,12 @@ import org.apache.directory.server.i18n.
import org.apache.directory.server.xdbm.Index;
import org.apache.directory.server.xdbm.IndexEntry;
import org.apache.directory.server.xdbm.Store;
-import org.apache.directory.server.xdbm.search.Evaluator;
import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.EntryAttribute;
import org.apache.directory.shared.ldap.entry.Value;
import org.apache.directory.shared.ldap.filter.ApproximateNode;
import org.apache.directory.shared.ldap.schema.AttributeType;
-import org.apache.directory.shared.ldap.schema.LdapComparator;
import org.apache.directory.shared.ldap.schema.MatchingRule;
-import org.apache.directory.shared.ldap.schema.Normalizer;
import org.apache.directory.shared.ldap.schema.SchemaManager;
@@ -44,39 +41,13 @@ import org.apache.directory.shared.ldap.
*
* @author Apache Directory Project
*/
-public class ApproximateEvaluator> implements Evaluator, Entry, ID>
+public class ApproximateEvaluator> extends SimpleEvaluator
{
- /** The ExprNode to evaluate */
- private final ApproximateNode node;
-
- /** The backend */
- private final Store db;
-
- /** The SchemaManager instance */
- private final SchemaManager schemaManager;
-
- /** The AttributeType we will use for the evaluation */
- private final AttributeType attributeType;
-
- /** The associated normalizer */
- private final Normalizer normalizer;
-
- /** The associated comparator */
- private final LdapComparator super Object> ldapComparator;
-
- /** The index to use if any */
- private final Index idx;
-
-
- @SuppressWarnings("unchecked")
public ApproximateEvaluator( ApproximateNode node, Store db, SchemaManager schemaManager )
throws Exception
{
- this.db = db;
- this.node = node;
- this.schemaManager = schemaManager;
- this.attributeType = node.getAttributeType();
-
+ super( node, db, schemaManager );
+
if ( db.hasIndexOn( attributeType ) )
{
idx = ( Index ) db.getIndex( attributeType );
@@ -102,7 +73,7 @@ public class ApproximateEvaluator getExpression()
{
- return node;
+ return (ApproximateNode)node;
}
Modified: directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java?rev=963773&r1=963772&r2=963773&view=diff
==============================================================================
--- directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java (original)
+++ directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/EqualityEvaluator.java Tue Jul 13 15:59:10 2010
@@ -26,15 +26,12 @@ import java.util.Iterator;
import org.apache.directory.server.xdbm.Index;
import org.apache.directory.server.xdbm.IndexEntry;
import org.apache.directory.server.xdbm.Store;
-import org.apache.directory.server.xdbm.search.Evaluator;
import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.EntryAttribute;
import org.apache.directory.shared.ldap.entry.Value;
import org.apache.directory.shared.ldap.filter.EqualityNode;
import org.apache.directory.shared.ldap.schema.AttributeType;
-import org.apache.directory.shared.ldap.schema.LdapComparator;
import org.apache.directory.shared.ldap.schema.MatchingRule;
-import org.apache.directory.shared.ldap.schema.Normalizer;
import org.apache.directory.shared.ldap.schema.SchemaManager;
import org.apache.directory.shared.ldap.schema.comparators.ByteArrayComparator;
import org.apache.directory.shared.ldap.schema.comparators.StringComparator;
@@ -48,50 +45,26 @@ import org.apache.directory.shared.ldap.
*
* @author Apache Directory Project
*/
-public class EqualityEvaluator> implements Evaluator, Entry, ID>
+public class EqualityEvaluator> extends SimpleEvaluator
{
- /** The ExprNode to evaluate */
- private final EqualityNode node;
-
- /** The backend */
- private final Store db;
-
- /** The SchemaManager instance */
- private final SchemaManager schemaManager;
-
- /** The AttributeType we will use for the evaluation */
- private final AttributeType attributeType;
-
- /** The associated normalizer */
- private final Normalizer normalizer;
-
- /** The comparator to use */
- private final LdapComparator> comparator;
-
/** The default byte[] comparator if no comparator has been defined */
private static final Comparator BINARY_COMPARATOR = new ByteArrayComparator( null );
/** The default String comparator if no comparator has been defined */
private static final Comparator STRING_COMPARATOR = new StringComparator( null );
- /** The index to use if any */
- private final Index idx;
-
@SuppressWarnings("unchecked")
public EqualityEvaluator( EqualityNode node, Store db, SchemaManager schemaManager )
throws Exception
{
- this.db = db;
- this.node = node;
- this.schemaManager = schemaManager;
- this.attributeType = node.getAttributeType();
+ super( node, db, schemaManager );
if ( db.hasIndexOn( attributeType ) )
{
idx = ( Index ) db.getIndex( attributeType );
normalizer = null;
- comparator = null;
+ ldapComparator = null;
}
else
{
@@ -102,12 +75,12 @@ public class EqualityEvaluator getExpression()
{
- return node;
+ return (EqualityNode)node;
}
@@ -210,9 +183,9 @@ public class EqualityEvaluator ) value ).getNormalizedValue();
byte[] nodeValue = ( ( Value ) node.getValue() ).getNormalizedValue();
- if ( comparator != null )
+ if ( ldapComparator != null )
{
- if ( ( ( ( LdapComparator ) comparator ).compare( serverValue, nodeValue ) == 0 ) )
+ if ( ldapComparator.compare( (Object)serverValue, (Object)nodeValue ) == 0 )
{
return true;
}
@@ -240,9 +213,9 @@ public class EqualityEvaluator ) node.getValue() ).getNormalizedValue();
}
- if ( comparator != null )
+ if ( ldapComparator != null )
{
- if ( ( ( LdapComparator ) comparator ).compare( serverValue, nodeValue ) == 0 )
+ if ( ldapComparator.compare( serverValue, nodeValue ) == 0 )
{
return true;
}
Modified: directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java?rev=963773&r1=963772&r2=963773&view=diff
==============================================================================
--- directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java (original)
+++ directory/apacheds/trunk/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/GreaterEqEvaluator.java Tue Jul 13 15:59:10 2010
@@ -20,21 +20,18 @@
package org.apache.directory.server.xdbm.search.impl;
-import java.util.Comparator;
import java.util.Iterator;
import org.apache.directory.server.i18n.I18n;
import org.apache.directory.server.xdbm.Index;
import org.apache.directory.server.xdbm.IndexEntry;
import org.apache.directory.server.xdbm.Store;
-import org.apache.directory.server.xdbm.search.Evaluator;
import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.EntryAttribute;
import org.apache.directory.shared.ldap.entry.Value;
import org.apache.directory.shared.ldap.filter.GreaterEqNode;
import org.apache.directory.shared.ldap.schema.AttributeType;
import org.apache.directory.shared.ldap.schema.MatchingRule;
-import org.apache.directory.shared.ldap.schema.Normalizer;
import org.apache.directory.shared.ldap.schema.SchemaManager;
@@ -44,42 +41,17 @@ import org.apache.directory.shared.ldap.
*
* @author Apache Directory Project
*/
-public class GreaterEqEvaluator> implements Evaluator, Entry, ID>
+public class GreaterEqEvaluator> extends SimpleEvaluator
{
- /** The ExprNode to evaluate */
- private final GreaterEqNode node;
-
- /** The backend */
- private final Store db;
-
- /** The SchemaManager instance */
- private final SchemaManager schemaManager;
-
- /** The AttributeType we will use for the evaluation */
- private final AttributeType attributeType;
-
- /** The associated normalizer */
- private final Normalizer normalizer;
-
- /** The associated comparator */
- private final Comparator comparator;
-
- /** The index to use if any */
- private final Index