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 2016/06/20 18:52:57 UTC

svn commit: r1749383 - in /directory/shared/branches/shared-value/ldap/model/src: main/antlr/distinguishedName.g test/java/org/apache/directory/api/ldap/model/name/DnParserTest.java

Author: elecharny
Date: Mon Jun 20 18:52:57 2016
New Revision: 1749383

URL: http://svn.apache.org/viewvc?rev=1749383&view=rev
Log:
o Added the hanlding of Multi-AVA RDN
o 

Modified:
    directory/shared/branches/shared-value/ldap/model/src/main/antlr/distinguishedName.g
    directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/name/DnParserTest.java

Modified: directory/shared/branches/shared-value/ldap/model/src/main/antlr/distinguishedName.g
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/antlr/distinguishedName.g?rev=1749383&r1=1749382&r2=1749383&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/antlr/distinguishedName.g (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/antlr/distinguishedName.g Mon Jun 20 18:52:57 2016
@@ -325,20 +325,15 @@ relativeDistinguishedName [SchemaManager
             
             attributeType = currentAva.getAttributeType();
             
-            if ( attributeType != null )
-            {
-                rdnNormStr.append( attributeType.getOid() );
-            }
-            else
+            if ( schemaManager == null )
             {
                 rdnNormStr.append( currentAva.getNormType() );
+                rdnNormStr.append( '=' );
             }
             
-            rdnNormStr.append( '=' );
-            
             val = currentAva.getValue();
             
-            if ( ( val != null ) && ( val.getNormalized() != null ) )
+            if ( ( schemaManager == null ) && ( val != null ) && ( val.getNormalized() != null ) )
             {
                 rdnNormStr.append( val.getNormalized() );
             }
@@ -347,7 +342,12 @@ relativeDistinguishedName [SchemaManager
             PLUS 
             { 
                 rdnStr.append( '+' ); 
-                rdnNormStr.append( '+' );
+                
+                if ( schemaManager == null )
+                {
+                    rdnNormStr.append( '+' );
+                }
+                
                 avaPos++;
             }
 
@@ -357,20 +357,15 @@ relativeDistinguishedName [SchemaManager
                 currentAva = rdn.getAva( avaPos );
                 attributeType = currentAva.getAttributeType();
             
-                if ( attributeType != null )
-                {
-                    rdnNormStr.append( attributeType.getOid() );
-                }
-                else
+                if ( schemaManager == null )
                 {
                     rdnNormStr.append( tmp );
+                    rdnNormStr.append( '=' );
                 }
             
-                rdnNormStr.append( '=' );
-            
                 val = currentAva.getValue();
             
-                if ( ( val != null ) && ( val.getNormalized() != null ) )
+                if ( ( schemaManager == null ) &&( val != null ) && ( val.getNormalized() != null ) )
                 {
                     rdnNormStr.append( val.getNormalized() );
                 }
@@ -380,6 +375,35 @@ relativeDistinguishedName [SchemaManager
     {
         rdn.hashCode();
         rdn.setUpName( rdnStr.toString() );
+        
+        if ( schemaManager != null )
+        {
+            // process the multi-value RDN, ordering them by attributes
+            boolean isFirst = true;
+            
+            for ( Ava ava : rdn )
+            {
+                if ( isFirst )
+                {
+                    isFirst = false;
+                }
+                else
+                {
+                    rdnNormStr.append( '+' );
+                }
+                
+                rdnNormStr.append( ava.getAttributeType().getOid() );
+                rdnNormStr.append( '=' );
+                
+                val = ava.getValue();
+
+                if ( ( val != null ) && ( val.getNormalized() != null ) )
+                {
+                    rdnNormStr.append( val.getNormalized() );
+                }
+            }
+        }
+        
         rdn.setNormName( rdnNormStr.toString() );
     }
     ;

Modified: directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/name/DnParserTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/name/DnParserTest.java?rev=1749383&r1=1749382&r2=1749383&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/name/DnParserTest.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/name/DnParserTest.java Mon Jun 20 18:52:57 2016
@@ -682,7 +682,7 @@ public class DnParserTest
     
     @Test
     @Ignore
-    public void testDnParsing() throws LdapInvalidDnException
+    public void testDnParsingPerf() throws LdapInvalidDnException
     {
         long[] deltas = new long[10];
         
@@ -786,7 +786,7 @@ public class DnParserTest
     
     @Test
     @Ignore
-    public void testDnParsingOneRdn() throws LdapInvalidDnException
+    public void testDnParsingOneRdnPerf() throws LdapInvalidDnException
     {
         long t0 = System.currentTimeMillis();