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 2012/04/28 17:14:37 UTC

svn commit: r1331784 - /directory/apacheds/branches/index-work/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/ParentIdAndRdn.java

Author: elecharny
Date: Sat Apr 28 15:14:37 2012
New Revision: 1331784

URL: http://svn.apache.org/viewvc?rev=1331784&view=rev
Log:
Simplified and speeded up the RDN comparison

Modified:
    directory/apacheds/branches/index-work/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/ParentIdAndRdn.java

Modified: directory/apacheds/branches/index-work/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/ParentIdAndRdn.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/index-work/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/ParentIdAndRdn.java?rev=1331784&r1=1331783&r2=1331784&view=diff
==============================================================================
--- directory/apacheds/branches/index-work/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/ParentIdAndRdn.java (original)
+++ directory/apacheds/branches/index-work/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/ParentIdAndRdn.java Sat Apr 28 15:14:37 2012
@@ -226,6 +226,8 @@ public class ParentIdAndRdn<ID extends C
         {
             return val;
         }
+        
+        // The ID is the same, check the RDNs now
 
         val = rdns.length - that.rdns.length;
 
@@ -234,47 +236,27 @@ public class ParentIdAndRdn<ID extends C
             return val;
         }
         
-        StringBuilder sb = new StringBuilder();
-        boolean isFirst = true;
-        
-        for ( Rdn rdn : rdns )
+        if ( rdns.length == 1 )
         {
-            if ( isFirst )
-            {
-                sb.append( ',' );
-            }
-            else
-            {
-                isFirst = false;
-            }
+            // Special case : we only have one rdn.
+            val = rdns[0].getNormName().compareTo( that.rdns[0].getNormName() );
             
-            sb.append( rdn.getNormName() );
+            return val;
         }
-        
-        String thisString = sb.toString();
-        
-        isFirst = true;
-        sb = new StringBuilder();
-
-        for ( Rdn rdn : that.rdns )
+        else
         {
-            if ( isFirst )
+            for ( int i = 0; i < rdns.length; i++ )
             {
-                sb.append( ',' );
-            }
-            else
-            {
-                isFirst = false;
+                val = rdns[i].getNormName().compareTo( that.rdns[i].getNormName() );
+            
+                if ( val != 0 )
+                {
+                    return val;
+                }
             }
             
-            sb.append( rdn.getNormName() );
+            return 0;
         }
-        
-        String thatString = sb.toString();
-        
-        val = ( thisString.compareTo( thatString ) );
-        
-        return val;
     }