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 2010/03/23 03:48:04 UTC

svn commit: r926442 - in /directory/shared/trunk/ldap/src: main/java/org/apache/directory/shared/ldap/name/DN.java test/java/org/apache/directory/shared/ldap/name/DNTest.java

Author: elecharny
Date: Tue Mar 23 02:48:04 2010
New Revision: 926442

URL: http://svn.apache.org/viewvc?rev=926442&view=rev
Log:
o DN now implements Serializable, Comparator and Iterable
o Added some tests for the iterator

Modified:
    directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/name/DN.java
    directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/name/DNTest.java

Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/name/DN.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/name/DN.java?rev=926442&r1=926441&r2=926442&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/name/DN.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/name/DN.java Tue Mar 23 02:48:04 2010
@@ -25,8 +25,10 @@ import java.io.Externalizable;
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
@@ -64,7 +66,7 @@ import org.slf4j.LoggerFactory;
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
-public class DN implements Externalizable, Cloneable
+public class DN implements Cloneable, Serializable, Comparable<DN>, Iterable<RDN>
 {
     /** The LoggerFactory used by this class */
     protected static final Logger LOG = LoggerFactory.getLogger( DN.class );
@@ -1319,35 +1321,26 @@ public class DN implements Externalizabl
     /**
      * {@inheritDoc}
      */
-    public int compareTo( Object obj )
+    public int compareTo( DN dn )
     {
-        if ( obj instanceof DN )
+        if ( dn.size() != size() )
         {
-            DN dn = ( DN ) obj;
+            return size() - dn.size();
+        }
 
-            if ( dn.size() != size() )
-            {
-                return size() - dn.size();
-            }
+        for ( int i = rdns.size(); i > 0; i-- )
+        {
+            RDN rdn1 = rdns.get( i - 1 );
+            RDN rdn2 = dn.rdns.get( i - 1 );
+            int res = rdn1.compareTo( rdn2 );
 
-            for ( int i = rdns.size(); i > 0; i-- )
+            if ( res != 0 )
             {
-                RDN rdn1 = rdns.get( i - 1 );
-                RDN rdn2 = dn.rdns.get( i - 1 );
-                int res = rdn1.compareTo( rdn2 );
-
-                if ( res != 0 )
-                {
-                    return res;
-                }
+                return res;
             }
-
-            return EQUAL;
-        }
-        else
-        {
-            return 1;
         }
+
+        return EQUAL;
     }
 
 
@@ -1698,4 +1691,13 @@ public class DN implements Externalizabl
             return null;
         }
     }
+
+
+    /**
+     * {@inheritDoc}
+     */
+    public Iterator<RDN> iterator()
+    {
+        return rdns.iterator();
+    }
 }

Modified: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/name/DNTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/name/DNTest.java?rev=926442&r1=926441&r2=926442&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/name/DNTest.java (original)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/name/DNTest.java Tue Mar 23 02:48:04 2010
@@ -50,7 +50,6 @@ import org.apache.directory.shared.ldap.
 import org.apache.directory.shared.ldap.schema.normalizers.OidNormalizer;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 
 
@@ -3665,4 +3664,55 @@ public class DNTest
             assertEquals( "t+st", ava.getNormValue().get() );
         }
     }
+    
+    
+    //-------------------------------------------------------------------------
+    // test the iterator
+    //-------------------------------------------------------------------------
+    @Test
+    public void testIteratorNullDN()
+    {
+        DN dn = DN.EMPTY_DN;
+        
+        for ( RDN rdn : dn )
+        {
+            fail( "Should not be there" );
+        }
+        
+        assertTrue( true );
+    }
+    
+    
+    @Test
+    public void testIteratorOneRDN() throws Exception
+    {
+        DN dn = new DN( "ou=example" );
+        int count = 0;
+        
+        for ( RDN rdn : dn )
+        {
+            count++;
+            assertEquals( "ou=example", rdn.getName() );
+        }
+        
+        assertEquals( 1, count );
+    }
+    
+    
+    @Test
+    public void testIteratorMultipleRDN() throws Exception
+    {
+        DN dn = new DN( "sn=joe+cn=doe,dc=apache,dc=org" );
+        int count = 0;
+        
+        String[] expected = new String[]{ "sn=joe+cn=doe", "dc=apache", "dc=org" };
+        
+        for ( RDN rdn : dn )
+        {
+            assertEquals( expected[count], rdn.getName() );
+            count++;
+        }
+        
+        assertEquals( 3, count );
+    }
 }