You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sa...@apache.org on 2011/11/09 18:02:10 UTC

svn commit: r1199849 [2/2] - in /directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search: ./ impl/

Modified: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeEvaluator.java?rev=1199849&r1=1199848&r2=1199849&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeEvaluator.java (original)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeEvaluator.java Wed Nov  9 17:02:09 2011
@@ -20,10 +20,13 @@
 package org.apache.directory.server.xdbm.search.impl;
 
 
+import java.util.UUID;
+
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.core.api.partition.index.IndexEntry;
 import org.apache.directory.server.xdbm.Store;
 import org.apache.directory.server.xdbm.search.Evaluator;
+import org.apache.directory.shared.ldap.model.entry.Entry;
 import org.apache.directory.shared.ldap.model.filter.ScopeNode;
 import org.apache.directory.shared.ldap.model.message.SearchScope;
 
@@ -33,19 +36,19 @@ import org.apache.directory.shared.ldap.
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class OneLevelScopeEvaluator<E, ID extends Comparable<ID>> implements Evaluator<ScopeNode, E, ID>
+public class OneLevelScopeEvaluator implements Evaluator<ScopeNode>
 {
     /** The ScopeNode containing initial search scope constraints */
     private final ScopeNode node;
 
     /** The entry identifier of the scope base */
-    private final ID baseId;
+    private final UUID baseId;
 
     /** True if the scope requires alias dereferencing while searching */
     private final boolean dereferencing;
 
     /** the entry db storing entries */
-    private final Store<E, ID> db;
+    private final Store db;
 
 
     /**
@@ -55,7 +58,7 @@ public class OneLevelScopeEvaluator<E, I
      * @param db the database used to evaluate scope node
      * @throws Exception on db access failure
      */
-    public OneLevelScopeEvaluator( Store<E, ID> db, ScopeNode node ) throws Exception
+    public OneLevelScopeEvaluator( Store db, ScopeNode node ) throws Exception
     {
         this.node = node;
 
@@ -79,7 +82,7 @@ public class OneLevelScopeEvaluator<E, I
      * @throws Exception if db lookups fail
      * @see org.apache.directory.server.xdbm.search.Evaluator#evaluate(IndexEntry)
      */
-    public boolean evaluateId( ID candidate ) throws Exception
+    public boolean evaluateId( UUID candidate ) throws Exception
     {
         boolean isChild = db.getOneLevelIndex().forward( baseId, candidate );
 
@@ -135,7 +138,7 @@ public class OneLevelScopeEvaluator<E, I
      *
      * {@inheritDoc}
      */
-    public boolean evaluateEntry( E candidate ) throws Exception
+    public boolean evaluateEntry( Entry candidate ) throws Exception
     {
         throw new UnsupportedOperationException( I18n.err( I18n.ERR_721 ) );
     }
@@ -150,7 +153,7 @@ public class OneLevelScopeEvaluator<E, I
      * @throws Exception if db lookups fail
      * @see org.apache.directory.server.xdbm.search.Evaluator#evaluate(IndexEntry)
      */
-    public boolean evaluate( IndexEntry<?, ID> candidate ) throws Exception
+    public boolean evaluate( IndexEntry<?> candidate ) throws Exception
     {
         boolean isChild = db.getOneLevelIndex().forward( baseId, candidate.getId() );
 
@@ -208,7 +211,7 @@ public class OneLevelScopeEvaluator<E, I
      *
      * @return identifier of the search base
      */
-    public ID getBaseId()
+    public UUID getBaseId()
     {
         return baseId;
     }

Modified: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OrCursor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OrCursor.java?rev=1199849&r1=1199848&r2=1199849&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OrCursor.java (original)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OrCursor.java Wed Nov  9 17:02:09 2011
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.UUID;
 
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.core.api.partition.index.AbstractIndexCursor;
@@ -41,18 +42,18 @@ import org.apache.directory.shared.ldap.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class OrCursor<V, ID> extends AbstractIndexCursor<V, Entry, ID>
+public class OrCursor<V> extends AbstractIndexCursor<V>
 {
     private static final String UNSUPPORTED_MSG = I18n.err( I18n.ERR_722 );
-    private final List<IndexCursor<V, Entry, ID>> cursors;
-    private final List<Evaluator<? extends ExprNode, Entry, ID>> evaluators;
-    private final List<Set<ID>> blacklists;
+    private final List<IndexCursor<V>> cursors;
+    private final List<Evaluator<? extends ExprNode>> evaluators;
+    private final List<Set<UUID>> blacklists;
     private int cursorIndex = -1;
 
 
     // TODO - do same evaluator fail fast optimization that we do in AndCursor
-    public OrCursor( List<IndexCursor<V, Entry, ID>> cursors,
-        List<Evaluator<? extends ExprNode, Entry, ID>> evaluators )
+    public OrCursor( List<IndexCursor<V>> cursors,
+        List<Evaluator<? extends ExprNode>> evaluators )
     {
         if ( cursors.size() <= 1 )
         {
@@ -61,11 +62,11 @@ public class OrCursor<V, ID> extends Abs
 
         this.cursors = cursors;
         this.evaluators = evaluators;
-        this.blacklists = new ArrayList<Set<ID>>();
+        this.blacklists = new ArrayList<Set<UUID>>();
 
         for ( int ii = 0; ii < cursors.size(); ii++ )
         {
-            this.blacklists.add( new HashSet<ID>() );
+            this.blacklists.add( new HashSet<UUID>() );
         }
         this.cursorIndex = 0;
     }
@@ -114,7 +115,7 @@ public class OrCursor<V, ID> extends Abs
     }
 
 
-    private boolean isBlackListed( ID id )
+    private boolean isBlackListed( UUID id )
     {
         return blacklists.get( cursorIndex ).contains( id );
     }
@@ -127,7 +128,7 @@ public class OrCursor<V, ID> extends Abs
      * @param indexEntry the index entry to blacklist
      * @throws Exception if there are problems accessing underlying db
      */
-    private void blackListIfDuplicate( IndexEntry<?, ID> indexEntry ) throws Exception
+    private void blackListIfDuplicate( IndexEntry<?> indexEntry ) throws Exception
     {
         for ( int ii = 0; ii < evaluators.size(); ii++ )
         {
@@ -149,7 +150,7 @@ public class OrCursor<V, ID> extends Abs
         while ( cursors.get( cursorIndex ).previous() )
         {
             checkNotClosed( "previous()" );
-            IndexEntry<?, ID> candidate = cursors.get( cursorIndex ).get();
+            IndexEntry<?> candidate = cursors.get( cursorIndex ).get();
             
             if ( !isBlackListed( candidate.getId() ) )
             {
@@ -168,7 +169,7 @@ public class OrCursor<V, ID> extends Abs
             while ( cursors.get( cursorIndex ).previous() )
             {
                 checkNotClosed( "previous()" );
-                IndexEntry<?, ID> candidate = cursors.get( cursorIndex ).get();
+                IndexEntry<?> candidate = cursors.get( cursorIndex ).get();
                 
                 if ( !isBlackListed( candidate.getId() ) )
                 {
@@ -188,7 +189,7 @@ public class OrCursor<V, ID> extends Abs
         while ( cursors.get( cursorIndex ).next() )
         {
             checkNotClosed( "next()" );
-            IndexEntry<?, ID> candidate = cursors.get( cursorIndex ).get();
+            IndexEntry<?> candidate = cursors.get( cursorIndex ).get();
             if ( !isBlackListed( candidate.getId() ) )
             {
                 blackListIfDuplicate( candidate );
@@ -206,7 +207,7 @@ public class OrCursor<V, ID> extends Abs
             while ( cursors.get( cursorIndex ).next() )
             {
                 checkNotClosed( "previous()" );
-                IndexEntry<?, ID> candidate = cursors.get( cursorIndex ).get();
+                IndexEntry<?> candidate = cursors.get( cursorIndex ).get();
                 if ( !isBlackListed( candidate.getId() ) )
                 {
                     blackListIfDuplicate( candidate );
@@ -220,7 +221,7 @@ public class OrCursor<V, ID> extends Abs
     }
 
 
-    public IndexEntry<V, ID> get() throws Exception
+    public IndexEntry<V> get() throws Exception
     {
         checkNotClosed( "get()" );
         

Modified: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OrEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OrEvaluator.java?rev=1199849&r1=1199848&r2=1199849&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OrEvaluator.java (original)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/OrEvaluator.java Wed Nov  9 17:02:09 2011
@@ -37,16 +37,16 @@ import org.apache.directory.shared.ldap.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class OrEvaluator<ID> implements Evaluator<OrNode, Entry, ID>
+public class OrEvaluator implements Evaluator<OrNode>
 {
     /** The list of evaluators associated with each of the children */
-    private final List<Evaluator<? extends ExprNode, Entry, ID>> evaluators;
+    private final List<Evaluator<? extends ExprNode>> evaluators;
 
     /** The OrNode */
     private final OrNode node;
 
 
-    public OrEvaluator( OrNode node, List<Evaluator<? extends ExprNode, Entry, ID>> evaluators )
+    public OrEvaluator( OrNode node, List<Evaluator<? extends ExprNode>> evaluators )
     {
         this.node = node;
         this.evaluators = optimize( evaluators );
@@ -64,16 +64,16 @@ public class OrEvaluator<ID> implements 
      * @param unoptimized the unoptimized list of Evaluators
      * @return optimized Evaluator list with decreasing scan count ordering
      */
-    private List<Evaluator<? extends ExprNode, Entry, ID>> optimize(
-        List<Evaluator<? extends ExprNode, Entry, ID>> unoptimized )
+    private List<Evaluator<? extends ExprNode>> optimize(
+        List<Evaluator<? extends ExprNode>> unoptimized )
     {
-        List<Evaluator<? extends ExprNode, Entry, ID>> optimized = new ArrayList<Evaluator<? extends ExprNode, Entry, ID>>(
+        List<Evaluator<? extends ExprNode>> optimized = new ArrayList<Evaluator<? extends ExprNode>>(
             unoptimized.size() );
         optimized.addAll( unoptimized );
-        Collections.sort( optimized, new Comparator<Evaluator<? extends ExprNode, Entry, ID>>()
+        Collections.sort( optimized, new Comparator<Evaluator<? extends ExprNode>>()
         {
-            public int compare( Evaluator<? extends ExprNode, Entry, ID> e1,
-                Evaluator<? extends ExprNode, Entry, ID> e2 )
+            public int compare( Evaluator<? extends ExprNode> e1,
+                Evaluator<? extends ExprNode> e2 )
             {
                 long scanCount1 = ( Long ) e1.getExpression().get( "count" );
                 long scanCount2 = ( Long ) e2.getExpression().get( "count" );
@@ -102,9 +102,9 @@ public class OrEvaluator<ID> implements 
     }
 
 
-    public boolean evaluate( IndexEntry<?, ID> indexEntry ) throws Exception
+    public boolean evaluate( IndexEntry<?> indexEntry ) throws Exception
     {
-        for ( Evaluator<?, Entry, ID> evaluator : evaluators )
+        for ( Evaluator<?> evaluator : evaluators )
         {
             if ( evaluator.evaluate( indexEntry ) )
             {
@@ -118,7 +118,7 @@ public class OrEvaluator<ID> implements 
 
     public boolean evaluateEntry( Entry entry ) throws Exception
     {
-        for ( Evaluator<?, Entry, ID> evaluator : evaluators )
+        for ( Evaluator<?> evaluator : evaluators )
         {
             if ( evaluator.evaluateEntry( entry ) )
             {

Modified: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceCursor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceCursor.java?rev=1199849&r1=1199848&r2=1199849&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceCursor.java (original)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceCursor.java Wed Nov  9 17:02:09 2011
@@ -20,6 +20,8 @@
 package org.apache.directory.server.xdbm.search.impl;
 
 
+import java.util.UUID;
+
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.core.api.partition.index.AbstractIndexCursor;
 import org.apache.directory.server.core.api.partition.index.IndexCursor;
@@ -35,15 +37,15 @@ import org.apache.directory.shared.ldap.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class PresenceCursor<ID extends Comparable<ID>> extends AbstractIndexCursor<String, Entry, ID>
+public class PresenceCursor extends AbstractIndexCursor<String>
 {
     private static final String UNSUPPORTED_MSG = I18n.err( I18n.ERR_724 );
-    private final IndexCursor<String, Entry, ID> uuidCursor;
-    private final IndexCursor<String, Entry, ID> presenceCursor;
-    private final PresenceEvaluator<ID> presenceEvaluator;
+    private final IndexCursor<String> uuidCursor;
+    private final IndexCursor<String> presenceCursor;
+    private final PresenceEvaluator presenceEvaluator;
 
 
-    public PresenceCursor( Store<Entry, ID> store, PresenceEvaluator<ID> presenceEvaluator ) throws Exception
+    public PresenceCursor( Store store, PresenceEvaluator presenceEvaluator ) throws Exception
     {
         this.presenceEvaluator = presenceEvaluator;
         AttributeType type = presenceEvaluator.getAttributeType();
@@ -87,7 +89,7 @@ public class PresenceCursor<ID extends C
     /**
      * {@inheritDoc}
      */
-    public void beforeValue( ID id, String value ) throws Exception
+    public void beforeValue( UUID id, String value ) throws Exception
     {
         checkNotClosed( "beforeValue()" );
         
@@ -105,7 +107,7 @@ public class PresenceCursor<ID extends C
     /**
      * {@inheritDoc}
      */
-    public void before( IndexEntry<String, ID> element ) throws Exception
+    public void before( IndexEntry<String> element ) throws Exception
     {
         checkNotClosed( "before()" );
         
@@ -123,7 +125,7 @@ public class PresenceCursor<ID extends C
     /**
      * {@inheritDoc}
      */
-    public void afterValue( ID id, String value ) throws Exception
+    public void afterValue( UUID id, String value ) throws Exception
     {
         checkNotClosed( "afterValue()" );
         
@@ -141,7 +143,7 @@ public class PresenceCursor<ID extends C
     /**
      * {@inheritDoc}
      */
-    public void after( IndexEntry<String, ID> element ) throws Exception
+    public void after( IndexEntry<String> element ) throws Exception
     {
         checkNotClosed( "after()" );
         
@@ -227,7 +229,7 @@ public class PresenceCursor<ID extends C
         while ( uuidCursor.previous() )
         {
             checkNotClosed( "previous()" );
-            IndexEntry<?, ID> candidate = uuidCursor.get();
+            IndexEntry<?> candidate = uuidCursor.get();
             
             if ( presenceEvaluator.evaluate( candidate ) )
             {
@@ -250,7 +252,7 @@ public class PresenceCursor<ID extends C
         while ( uuidCursor.next() )
         {
             checkNotClosed( "next()" );
-            IndexEntry<?, ID> candidate = uuidCursor.get();
+            IndexEntry<?> candidate = uuidCursor.get();
             
             if ( presenceEvaluator.evaluate( candidate ) )
             {
@@ -262,7 +264,7 @@ public class PresenceCursor<ID extends C
     }
 
 
-    public IndexEntry<String, ID> get() throws Exception
+    public IndexEntry<String> get() throws Exception
     {
         checkNotClosed( "get()" );
         
@@ -283,7 +285,7 @@ public class PresenceCursor<ID extends C
              * value to be the value of the attribute in question.  So we will
              * set that accordingly here.
              */
-            IndexEntry<String, ID> indexEntry = uuidCursor.get();
+            IndexEntry<String> indexEntry = uuidCursor.get();
             indexEntry.setValue( presenceEvaluator.getAttributeType().getOid() );
             
             return indexEntry;

Modified: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceEvaluator.java?rev=1199849&r1=1199848&r2=1199849&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceEvaluator.java (original)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/PresenceEvaluator.java Wed Nov  9 17:02:09 2011
@@ -21,6 +21,7 @@ package org.apache.directory.server.xdbm
 
 
 import java.util.Iterator;
+import java.util.UUID;
 
 import org.apache.directory.server.core.api.partition.index.Index;
 import org.apache.directory.server.core.api.partition.index.IndexEntry;
@@ -39,13 +40,13 @@ import org.apache.directory.shared.ldap.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class PresenceEvaluator<ID extends Comparable<ID>> implements Evaluator<PresenceNode, Entry, ID>
+public class PresenceEvaluator implements Evaluator<PresenceNode>
 {
     /** The ExprNode to evaluate */
     private final PresenceNode node;
 
     /** The backend */
-    private final Store<Entry, ID> db;
+    private final Store db;
 
     /** The AttributeType we will use for the evaluation */
     private final AttributeType attributeType;
@@ -54,10 +55,10 @@ public class PresenceEvaluator<ID extend
     private final SchemaManager schemaManager;
 
     /** The index to use if any */
-    private final Index<String, Entry, ID> idx;
+    private final Index<String> idx;
 
 
-    public PresenceEvaluator( PresenceNode node, Store<Entry, ID> db, SchemaManager schemaManager )
+    public PresenceEvaluator( PresenceNode node, Store db, SchemaManager schemaManager )
         throws Exception
     {
         this.db = db;
@@ -90,7 +91,7 @@ public class PresenceEvaluator<ID extend
 
     // TODO - determine if comaparator and index entry should have the Value
     // wrapper or the raw normalized value
-    public boolean evaluate( IndexEntry<?, ID> indexEntry ) throws Exception
+    public boolean evaluate( IndexEntry<?> indexEntry ) throws Exception
     {
         if ( idx != null )
         {
@@ -112,7 +113,7 @@ public class PresenceEvaluator<ID extend
 
     // TODO - determine if comaparator and index entry should have the Value
     // wrapper or the raw normalized value
-    public boolean evaluateId( ID id ) throws Exception
+    public boolean evaluateId( UUID id ) throws Exception
     {
         if ( idx != null )
         {

Modified: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ScanCountComparator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ScanCountComparator.java?rev=1199849&r1=1199848&r2=1199849&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ScanCountComparator.java (original)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/ScanCountComparator.java Wed Nov  9 17:02:09 2011
@@ -31,12 +31,12 @@ import org.apache.directory.shared.ldap.
  *
  * @param <ID> The type of element
  */
-public class ScanCountComparator<ID> implements Comparator<Evaluator<?, Entry, ID>>
+public class ScanCountComparator implements Comparator<Evaluator<?>>
 {
     /**
      * Compare two scan counts frpm two evaluators 
      */
-    public int compare( Evaluator<?, Entry, ID> e1, Evaluator<?, Entry, ID> e2 )
+    public int compare( Evaluator<?> e1, Evaluator<?> e2 )
     {
         long scanCount1 = ( Long ) e1.getExpression().get( "count" );
         long scanCount2 = ( Long ) e2.getExpression().get( "count" );

Modified: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringCursor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringCursor.java?rev=1199849&r1=1199848&r2=1199849&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringCursor.java (original)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringCursor.java Wed Nov  9 17:02:09 2011
@@ -36,17 +36,17 @@ import org.apache.directory.shared.ldap.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class SubstringCursor<ID extends Comparable<ID>> extends AbstractIndexCursor<String, Entry, ID>
+public class SubstringCursor extends AbstractIndexCursor<String>
 {
     private static final String UNSUPPORTED_MSG = I18n.err( I18n.ERR_725 );
     private final boolean hasIndex;
-    private final IndexCursor<String, Entry, ID> wrapped;
-    private final SubstringEvaluator<ID> evaluator;
-    private final ForwardIndexEntry<String, ID> indexEntry = new ForwardIndexEntry<String, ID>();
+    private final IndexCursor<String> wrapped;
+    private final SubstringEvaluator evaluator;
+    private final ForwardIndexEntry<String> indexEntry = new ForwardIndexEntry<String>();
 
 
     @SuppressWarnings("unchecked")
-    public SubstringCursor( Store<Entry, ID> store, final SubstringEvaluator<ID> substringEvaluator )
+    public SubstringCursor( Store store, final SubstringEvaluator substringEvaluator )
         throws Exception
     {
         evaluator = substringEvaluator;
@@ -54,7 +54,7 @@ public class SubstringCursor<ID extends 
 
         if ( hasIndex )
         {
-            wrapped = ( ( Index<String, Entry, ID> ) store.getIndex( evaluator.getExpression().getAttributeType() ) )
+            wrapped = ( ( Index<String> ) store.getIndex( evaluator.getExpression().getAttributeType() ) )
                 .forwardCursor();
         }
         else
@@ -89,7 +89,7 @@ public class SubstringCursor<ID extends 
         checkNotClosed( "beforeFirst()" );
         if ( evaluator.getExpression().getInitial() != null && hasIndex )
         {
-            ForwardIndexEntry<String, ID> indexEntry = new ForwardIndexEntry<String, ID>();
+            ForwardIndexEntry<String> indexEntry = new ForwardIndexEntry<String>();
             indexEntry.setValue( evaluator.getExpression().getInitial() );
             wrapped.before( indexEntry );
         }
@@ -130,7 +130,7 @@ public class SubstringCursor<ID extends 
     }
 
 
-    private boolean evaluateCandidate( IndexEntry<String, ID> indexEntry ) throws Exception
+    private boolean evaluateCandidate( IndexEntry<String> indexEntry ) throws Exception
     {
         if ( hasIndex )
         {
@@ -155,7 +155,7 @@ public class SubstringCursor<ID extends 
         while ( wrapped.previous() )
         {
             checkNotClosed( "previous()" );
-            IndexEntry<String, ID> entry = wrapped.get();
+            IndexEntry<String> entry = wrapped.get();
             
             if ( evaluateCandidate( entry ) )
             {
@@ -177,7 +177,7 @@ public class SubstringCursor<ID extends 
         while ( wrapped.next() )
         {
             checkNotClosed( "next()" );
-            IndexEntry<String, ID> entry = wrapped.get();
+            IndexEntry<String> entry = wrapped.get();
             
             if ( evaluateCandidate( entry ) )
             {
@@ -194,7 +194,7 @@ public class SubstringCursor<ID extends 
     }
 
 
-    public IndexEntry<String, ID> get() throws Exception
+    public IndexEntry<String> get() throws Exception
     {
         checkNotClosed( "get()" );
         

Modified: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringEvaluator.java?rev=1199849&r1=1199848&r2=1199849&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringEvaluator.java (original)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubstringEvaluator.java Wed Nov  9 17:02:09 2011
@@ -21,6 +21,7 @@ package org.apache.directory.server.xdbm
 
 
 import java.util.Iterator;
+import java.util.UUID;
 import java.util.regex.Pattern;
 
 import org.apache.directory.server.i18n.I18n;
@@ -45,10 +46,10 @@ import org.apache.directory.shared.ldap.
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class SubstringEvaluator<ID extends Comparable<ID>> implements Evaluator<SubstringNode, Entry, ID>
+public class SubstringEvaluator implements Evaluator<SubstringNode>
 {
     /** Database used while evaluating candidates */
-    private final Store<Entry, ID> db;
+    private final Store db;
 
     /** Reference to the SchemaManager */
     private final SchemaManager schemaManager;
@@ -66,7 +67,7 @@ public class SubstringEvaluator<ID exten
     private final Normalizer normalizer;
 
     /** The index to use if any */
-    private final Index<String, Entry, ID> idx;
+    private final Index<String> idx;
 
 
     /**
@@ -78,7 +79,7 @@ public class SubstringEvaluator<ID exten
      * @throws Exception if there are failures accessing resources and the db
      */
     @SuppressWarnings("unchecked")
-    public SubstringEvaluator( SubstringNode node, Store<Entry, ID> db, SchemaManager schemaManager )
+    public SubstringEvaluator( SubstringNode node, Store db, SchemaManager schemaManager )
         throws Exception
     {
         this.db = db;
@@ -115,7 +116,7 @@ public class SubstringEvaluator<ID exten
 
         if ( db.hasIndexOn( attributeType ) )
         {
-            idx = ( Index<String, Entry, ID> ) db.getIndex( attributeType );
+            idx = ( Index<String> ) db.getIndex( attributeType );
         }
         else
         {
@@ -125,12 +126,12 @@ public class SubstringEvaluator<ID exten
 
 
     @SuppressWarnings("unchecked")
-    public boolean evaluate( IndexEntry<?, ID> indexEntry ) throws Exception
+    public boolean evaluate( IndexEntry<?> indexEntry ) throws Exception
     {
 
         if ( idx == null )
         {
-            return evaluateWithoutIndex( ( IndexEntry<String, ID> ) indexEntry );
+            return evaluateWithoutIndex( ( IndexEntry<String> ) indexEntry );
         }
         else
         {
@@ -139,7 +140,7 @@ public class SubstringEvaluator<ID exten
     }
 
 
-    public boolean evaluateId( ID id ) throws Exception
+    public boolean evaluateId( UUID id ) throws Exception
     {
 
         if ( idx == null )
@@ -180,7 +181,7 @@ public class SubstringEvaluator<ID exten
     }
 
 
-    private boolean evaluateWithIndex( IndexEntry<?, ID> indexEntry ) throws Exception
+    private boolean evaluateWithIndex( IndexEntry<?> indexEntry ) throws Exception
     {
         /*
          * Note that this is using the reverse half of the index giving a
@@ -188,12 +189,12 @@ public class SubstringEvaluator<ID exten
          * Otherwise we would have to scan the entire index if there were
          * no reverse lookups.
          */
-        Cursor<IndexEntry<String, ID>> entries = idx.reverseCursor( indexEntry.getId() );
+        Cursor<IndexEntry<String>> entries = idx.reverseCursor( indexEntry.getId() );
 
         // cycle through the attribute values testing for a match
         while ( entries.next() )
         {
-            IndexEntry<String, ID> rec = entries.get();
+            IndexEntry<String> rec = entries.get();
 
             // once match is found cleanup and return true
             if ( regex.matcher( ( String ) rec.getValue() ).matches() )
@@ -216,7 +217,7 @@ public class SubstringEvaluator<ID exten
     }
 
 
-    private boolean evaluateWithIndex( ID id ) throws Exception
+    private boolean evaluateWithIndex( UUID id ) throws Exception
     {
         /*
          * Note that this is using the reverse half of the index giving a
@@ -224,12 +225,12 @@ public class SubstringEvaluator<ID exten
          * Otherwise we would have to scan the entire index if there were
          * no reverse lookups.
          */
-        Cursor<IndexEntry<String, ID>> entries = idx.reverseCursor( id );
+        Cursor<IndexEntry<String>> entries = idx.reverseCursor( id );
 
         // cycle through the attribute values testing for a match
         while ( entries.next() )
         {
-            IndexEntry<String, ID> rec = entries.get();
+            IndexEntry<String> rec = entries.get();
 
             // once match is found cleanup and return true
             if ( regex.matcher( ( String ) rec.getValue() ).matches() )
@@ -248,7 +249,7 @@ public class SubstringEvaluator<ID exten
 
     // TODO - determine if comaparator and index entry should have the Value
     // wrapper or the raw normalized value
-    private boolean evaluateWithoutIndex( ID id ) throws Exception
+    private boolean evaluateWithoutIndex( UUID id ) throws Exception
     {
         return evaluateWithoutIndex( db.lookup( id ) );
     }
@@ -330,7 +331,7 @@ public class SubstringEvaluator<ID exten
 
     // TODO - determine if comaparator and index entry should have the Value
     // wrapper or the raw normalized value
-    private boolean evaluateWithoutIndex( IndexEntry<String, ID> indexEntry ) throws Exception
+    private boolean evaluateWithoutIndex( IndexEntry<String> indexEntry ) throws Exception
     {
         Entry entry = indexEntry.getEntry();
 

Modified: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeCursor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeCursor.java?rev=1199849&r1=1199848&r2=1199849&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeCursor.java (original)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeCursor.java Wed Nov  9 17:02:09 2011
@@ -20,6 +20,8 @@
 package org.apache.directory.server.xdbm.search.impl;
 
 
+import java.util.UUID;
+
 import org.apache.directory.server.core.api.partition.Partition;
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.core.api.partition.index.AbstractIndexCursor;
@@ -36,26 +38,26 @@ import org.apache.directory.shared.ldap.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class SubtreeScopeCursor<ID extends Comparable<ID>> extends AbstractIndexCursor<ID, Entry, ID>
+public class SubtreeScopeCursor extends AbstractIndexCursor<UUID>
 {
     private static final String UNSUPPORTED_MSG = I18n.err( I18n.ERR_719 );
 
     /** The Entry database/store */
-    private final Store<Entry, ID> db;
+    private final Store db;
 
     /** A ScopeNode Evaluator */
-    private final SubtreeScopeEvaluator<Entry, ID> evaluator;
+    private final SubtreeScopeEvaluator evaluator;
 
     /** A Cursor over the entries in the scope of the search base */
-    private final IndexCursor<ID, Entry, ID> scopeCursor;
+    private final IndexCursor<UUID> scopeCursor;
 
     /** A Cursor over entries brought into scope by alias dereferencing */
-    private final IndexCursor<ID, Entry, ID> dereferencedCursor;
+    private final IndexCursor<UUID> dereferencedCursor;
 
     /** Currently active Cursor: we switch between two cursors */
-    private IndexCursor<ID, Entry, ID> cursor;
+    private IndexCursor<UUID> cursor;
 
-    private ID contextEntryId;
+    private UUID contextEntryId;
 
 
     /**
@@ -65,15 +67,15 @@ public class SubtreeScopeCursor<ID exten
      * @param evaluator an IndexEntry (candidate) evaluator
      * @throws Exception on db access failures
      */
-    public SubtreeScopeCursor( Store<Entry, ID> db, SubtreeScopeEvaluator<Entry, ID> evaluator )
+    public SubtreeScopeCursor( Store db, SubtreeScopeEvaluator evaluator )
         throws Exception
     {
         this.db = db;
         this.evaluator = evaluator;
 
-        if ( evaluator.getBaseId() == getContextEntryId() )
+        if ( evaluator.getBaseId().compareTo( getContextEntryId() ) == 0 )
         {
-            scopeCursor = new AllEntriesCursor<ID>( db );
+            scopeCursor = new AllEntriesCursor( db );
         }
         else
         {
@@ -101,7 +103,7 @@ public class SubtreeScopeCursor<ID exten
 
     
     // This will suppress PMD.EmptyCatchBlock warnings in this method
-    private ID getContextEntryId() throws Exception
+    private UUID getContextEntryId() throws Exception
     {
         if ( contextEntryId == null )
         {
@@ -299,7 +301,7 @@ public class SubtreeScopeCursor<ID exten
     }
 
 
-    public IndexEntry<ID, ID> get() throws Exception
+    public IndexEntry<UUID> get() throws Exception
     {
         checkNotClosed( "get()" );
         

Modified: directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeEvaluator.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeEvaluator.java?rev=1199849&r1=1199848&r2=1199849&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeEvaluator.java (original)
+++ directory/apacheds/branches/apacheds-txns/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeEvaluator.java Wed Nov  9 17:02:09 2011
@@ -20,11 +20,14 @@
 package org.apache.directory.server.xdbm.search.impl;
 
 
+import java.util.UUID;
+
 import org.apache.directory.server.core.api.partition.Partition;
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.core.api.partition.index.IndexEntry;
 import org.apache.directory.server.xdbm.Store;
 import org.apache.directory.server.xdbm.search.Evaluator;
+import org.apache.directory.shared.ldap.model.entry.Entry;
 import org.apache.directory.shared.ldap.model.filter.ScopeNode;
 import org.apache.directory.shared.ldap.model.message.SearchScope;
 
@@ -35,13 +38,13 @@ import org.apache.directory.shared.ldap.
  * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class SubtreeScopeEvaluator<E, ID extends Comparable<ID>> implements Evaluator<ScopeNode, E, ID>
+public class SubtreeScopeEvaluator implements Evaluator<ScopeNode>
 {
     /** The ScopeNode containing initial search scope constraints */
     private final ScopeNode node;
 
     /** The entry identifier of the scope base */
-    private final ID baseId;
+    private final UUID baseId;
 
     /** 
      * Whether or not to accept all candidates.  If this evaluator's baseId is
@@ -59,7 +62,7 @@ public class SubtreeScopeEvaluator<E, ID
     private final boolean dereferencing;
 
     /** The entry database/store */
-    private final Store<E, ID> db;
+    private final Store db;
 
 
     /**
@@ -69,7 +72,7 @@ public class SubtreeScopeEvaluator<E, ID
      * @param db the database used to evaluate scope node
      * @throws Exception on db access failure
      */
-    public SubtreeScopeEvaluator( Store<E, ID> db, ScopeNode node ) throws Exception
+    public SubtreeScopeEvaluator( Store db, ScopeNode node ) throws Exception
     {
         this.db = db;
         this.node = node;
@@ -80,16 +83,16 @@ public class SubtreeScopeEvaluator<E, ID
         }
 
         baseId = db.getEntryId( node.getBaseDn() );
-        baseIsContextEntry = getContextEntryId() == baseId;
+        baseIsContextEntry = ( getContextEntryId().compareTo( baseId ) == 0 );
         dereferencing = node.getDerefAliases().isDerefInSearching() || node.getDerefAliases().isDerefAlways();
     }
 
-    private ID contextEntryId;
+    private UUID contextEntryId;
 
 
     // This will suppress PMD.EmptyCatchBlock warnings in this method
     @SuppressWarnings("PMD.EmptyCatchBlock")
-    private ID getContextEntryId() throws Exception
+    private UUID getContextEntryId() throws Exception
     {
         if ( contextEntryId == null )
         {
@@ -123,9 +126,9 @@ public class SubtreeScopeEvaluator<E, ID
      * @throws Exception if the index lookups fail.
      * @see Evaluator#evaluate(org.apache.directory.server.xdbm.IndexEntry)
      */
-    public boolean evaluate( IndexEntry<?, ID> candidate ) throws Exception
+    public boolean evaluate( IndexEntry<?> candidate ) throws Exception
     {
-        ID id = candidate.getId();
+        UUID id = candidate.getId();
         
         /*
          * This condition catches situations where the candidate is equal to 
@@ -192,7 +195,7 @@ public class SubtreeScopeEvaluator<E, ID
      * @throws Exception if the index lookups fail.
      * @see Evaluator#evaluate(org.apache.directory.server.xdbm.IndexEntry)
      */
-    public boolean evaluateEntry( E candidate ) throws Exception
+    public boolean evaluateEntry( Entry candidate ) throws Exception
     {
         throw new UnsupportedOperationException( I18n.err( I18n.ERR_721 ) );
     }
@@ -204,7 +207,7 @@ public class SubtreeScopeEvaluator<E, ID
     }
 
 
-    public ID getBaseId()
+    public UUID getBaseId()
     {
         return baseId;
     }