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();