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/05/11 12:00:28 UTC

svn commit: r1743342 - in /directory/shared/branches/shared-value: integ/src/test/java/org/apache/directory/api/ldap/entry/ integ/src/test/java/org/apache/directory/api/ldap/model/name/ ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/...

Author: elecharny
Date: Wed May 11 12:00:27 2016
New Revision: 1743342

URL: http://svn.apache.org/viewvc?rev=1743342&view=rev
Log:
o Fixed the Normalizer, to take a parameter for substrings normalizations
o Fixed a bug in the DnComparator
o Added an (incomplete) implementation to the Rdn.compareTo() method
o Fixed a bug in the FilterParser 
o Used a NoOpNormalizer instance when computing the normalized value if we don'(t have a MatchingRule for a value
o Ignorihg a performance test in DnTest

Modified:
    directory/shared/branches/shared-value/integ/src/test/java/org/apache/directory/api/ldap/entry/TestEntryUtils.java
    directory/shared/branches/shared-value/integ/src/test/java/org/apache/directory/api/ldap/model/name/DnTest.java
    directory/shared/branches/shared-value/ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/actions/modifyDnRequest/StoreModifyDnRequestNewRdn.java
    directory/shared/branches/shared-value/ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/decorators/ModifyDnRequestDecorator.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/constants/SchemaConstants.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterParser.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Rdn.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/Normalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/PrepareString.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/DnComparator.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/ObjectIdentifierComparator.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/BooleanNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ConcreteNameComponentNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DnNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/GeneralizedTimeNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NameOrNumericIdNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NoOpNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NumericNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ObjectIdentifierNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/RegexNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/TelephoneNumberNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/UniqueMemberNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/BinaryValueAttributeTypeTest.java
    directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/BinaryValueTest.java
    directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/EntryUtils.java
    directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/ValueSerializationTest.java
    directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/name/DnParserTest.java
    directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/BooleanNormalizerTest.java
    directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DummyNormalizer.java

Modified: directory/shared/branches/shared-value/integ/src/test/java/org/apache/directory/api/ldap/entry/TestEntryUtils.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/integ/src/test/java/org/apache/directory/api/ldap/entry/TestEntryUtils.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/integ/src/test/java/org/apache/directory/api/ldap/entry/TestEntryUtils.java (original)
+++ directory/shared/branches/shared-value/integ/src/test/java/org/apache/directory/api/ldap/entry/TestEntryUtils.java Wed May 11 12:00:27 2016
@@ -20,7 +20,6 @@
 package org.apache.directory.api.ldap.entry;
 
 
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.LdapComparator;
@@ -29,6 +28,8 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
 import org.apache.directory.api.ldap.model.schema.MutableMatchingRule;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
+import org.apache.directory.api.ldap.model.schema.PrepareString.AssertionType;
 import org.apache.directory.api.ldap.model.schema.SyntaxChecker;
 import org.apache.directory.api.ldap.model.schema.comparators.ByteArrayComparator;
 import org.apache.directory.api.ldap.model.schema.normalizers.DeepTrimToLowerNormalizer;
@@ -157,18 +158,13 @@ public final class TestEntryUtils
             public static final long serialVersionUID = 1L;
 
 
-            public Value normalize( Value value ) throws LdapException
+            public String normalize( String value ) throws LdapException
             {
-                if ( value.isHumanReadable() )
-                {
-                    return new Value( Strings.toLowerCaseAscii( value.getValue() ) );
-                }
-
-                throw new IllegalStateException();
+                return normalize( value, AssertionType.ATTRIBUTE_VALUE );
             }
 
 
-            public String normalize( String value ) throws LdapException
+            public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
             {
                 return Strings.toLowerCaseAscii( value );
             }
@@ -255,32 +251,27 @@ public final class TestEntryUtils
             public static final long serialVersionUID = 1L;
 
 
-            public Value normalize( Value value ) throws LdapException
+            public String normalize( String value ) throws LdapException
             {
-                if ( !value.isHumanReadable() )
-                {
-                    byte[] val = value.getBytes();
-
-                    // each byte will be changed to be > 0, and spaces will be trimmed
-                    byte[] newVal = new byte[val.length];
+                return normalize( value, AssertionType.ATTRIBUTE_VALUE );
+            }
 
-                    int i = 0;
 
-                    for ( byte b : val )
-                    {
-                        newVal[i++] = ( byte ) ( b & 0x007F );
-                    }
-
-                    return new Value( Strings.trim( newVal ) );
-                }
+            public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
+            {
+                byte[] val = Strings.getBytesUtf8( value );
 
-                throw new IllegalStateException();
-            }
+                // each byte will be changed to be > 0, and spaces will be trimmed
+                byte[] newVal = new byte[val.length];
 
+                int i = 0;
 
-            public String normalize( String value ) throws LdapException
-            {
-                throw new IllegalStateException();
+                for ( byte b : val )
+                {
+                    newVal[i++] = ( byte ) ( b & 0x007F );
+                }
+                
+                return Strings.utf8ToString( Strings.trim( newVal ) );
             }
         } );
 

Modified: directory/shared/branches/shared-value/integ/src/test/java/org/apache/directory/api/ldap/model/name/DnTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/integ/src/test/java/org/apache/directory/api/ldap/model/name/DnTest.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/integ/src/test/java/org/apache/directory/api/ldap/model/name/DnTest.java (original)
+++ directory/shared/branches/shared-value/integ/src/test/java/org/apache/directory/api/ldap/model/name/DnTest.java Wed May 11 12:00:27 2016
@@ -2983,7 +2983,7 @@ public class DnTest
     
     
     @Test
-    //@Ignore
+    @Ignore
     public void testDnParsing() throws LdapInvalidDnException
     {
         long[] deltas = new long[10];

Modified: directory/shared/branches/shared-value/ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/actions/modifyDnRequest/StoreModifyDnRequestNewRdn.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/actions/modifyDnRequest/StoreModifyDnRequestNewRdn.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/actions/modifyDnRequest/StoreModifyDnRequestNewRdn.java (original)
+++ directory/shared/branches/shared-value/ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/actions/modifyDnRequest/StoreModifyDnRequestNewRdn.java Wed May 11 12:00:27 2016
@@ -80,7 +80,7 @@ public class StoreModifyDnRequestNewRdn
 
         // We have to handle the special case of a 0 length matched
         // newDN
-        Rdn newRdn = null;
+        Rdn newRdn;
 
         if ( tlv.getLength() == 0 )
         {

Modified: directory/shared/branches/shared-value/ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/decorators/ModifyDnRequestDecorator.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/decorators/ModifyDnRequestDecorator.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/decorators/ModifyDnRequestDecorator.java (original)
+++ directory/shared/branches/shared-value/ldap/codec/core/src/main/java/org/apache/directory/api/ldap/codec/decorators/ModifyDnRequestDecorator.java Wed May 11 12:00:27 2016
@@ -222,6 +222,7 @@ public class ModifyDnRequestDecorator ex
      * 
      * @return The PDU's length of a ModifyDN Request
      */
+    @Override
     public int computeLength()
     {
         int newRdnlength = Strings.getBytesUtf8( getNewRdn().getName() ).length;
@@ -264,7 +265,6 @@ public class ModifyDnRequestDecorator ex
             buffer.put( TLV.getBytes( modifyDnRequestLength ) );
 
             // The entry
-
             BerValue.encode( buffer, dnBytes );
 
             // The newRDN

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/constants/SchemaConstants.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/constants/SchemaConstants.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/constants/SchemaConstants.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/constants/SchemaConstants.java Wed May 11 12:00:27 2016
@@ -50,6 +50,7 @@ public final class SchemaConstants
     public static final String OBJECT_CLASS = "ObjectCLass";
     public static final String SYNTAX = "Syntax";
     public static final String SYNTAX_CHECKER = "SyntaxChecker";
+    public static final String SYNTAXES = "Syntaxes";
 
     // SchemaEntity paths
     public static final String ATTRIBUTE_TYPES_PATH = "ou=attributetypes";

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java Wed May 11 12:00:27 2016
@@ -35,6 +35,7 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.schema.MatchingRule;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
 import org.apache.directory.api.ldap.model.schema.SyntaxChecker;
+import org.apache.directory.api.ldap.model.schema.normalizers.NoOpNormalizer;
 import org.apache.directory.api.util.Serialize;
 import org.apache.directory.api.util.Strings;
 import org.slf4j.Logger;
@@ -484,7 +485,7 @@ public class Value implements Cloneable,
             return;
         }
         
-        Normalizer normalizer = null;
+        Normalizer normalizer;
         
         // We should have a Equality MatchingRule
         MatchingRule equality = attributeType.getEquality();
@@ -501,7 +502,8 @@ public class Value implements Cloneable,
                 
                 if ( ordering == null )
                 {
-                    throw new IllegalArgumentException( I18n.err( I18n.ERR_04148_MATCHING_RULE_EXPECTED ) );
+                    // Ok, no luck. Use a NoOp normalizer
+                    normalizer = new NoOpNormalizer();
                 }
                 else
                 {
@@ -526,6 +528,15 @@ public class Value implements Cloneable,
         // Now, normalize the upValue
         normValue = normalizer.normalize( upValue );
     }
+    
+    
+    /**
+     * @return The normalized value
+     */
+    public String getNormalized()
+    {
+        return normValue;
+    }
 
 
     /**

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterParser.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterParser.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterParser.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterParser.java Wed May 11 12:00:27 2016
@@ -549,6 +549,12 @@ public final class FilterParser
 
             pos.start++;
 
+            if ( Strings.isCharASCII( filterBytes, pos.start, ')' ) )
+            {
+                // No any or final, we are done
+                return node;
+            }
+
             //
             while ( true )
             {

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Rdn.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Rdn.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Rdn.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Rdn.java Wed May 11 12:00:27 2016
@@ -1004,6 +1004,7 @@ public class Rdn implements Cloneable, E
      * @param rdn Rdn to be compared for equality with this Rdn
      * @return true if the specified object is equal to this Rdn
      */
+    @Override
     public boolean equals( Object that )
     {
         if ( this == that )
@@ -1011,7 +1012,7 @@ public class Rdn implements Cloneable, E
             return true;
         }
         
-        Rdn rdn = null;
+        Rdn rdn;
 
         if ( that instanceof String )
         {
@@ -1830,7 +1831,74 @@ public class Rdn implements Cloneable, E
      */
     public int compareTo( Rdn otherRdn )
     {
-        return 0;
+        if ( otherRdn == null )
+        {
+            return 1;
+        }
+        
+        if ( nbAvas < otherRdn.nbAvas )
+        {
+            return -1;
+        }
+        else if ( nbAvas > otherRdn.nbAvas )
+        {
+            return 1;
+        }
+        
+        switch ( nbAvas )
+        {
+            case 0 :
+                return 0;
+                
+            case 1 :
+                int comp = ava.compareTo( otherRdn.ava );
+                
+                if ( comp < 0 )
+                {
+                    return -1;
+                }
+                else if ( comp > 0 )
+                {
+                    return 1;
+                }
+                else
+                {
+                    return 0;
+                }
+                
+            default :
+                // Loop on all the Avas. As we have more than one,
+                // we have to order them by their AttributeType.
+                /*if ( isSchemaAware() )
+                {
+                    
+                }*/
+                
+                int pos = 0;
+                
+                for ( Ava ava : avas )
+                {
+                    Ava otherAva = otherRdn.avas.get( pos );
+                    
+                    comp = ava.compareTo( otherAva );
+                    
+                    if ( comp != 0 )
+                    {
+                        if ( comp < 0 )
+                        {
+                            return -1;
+                        }
+                        else
+                        {
+                            return 1;
+                        }
+                    }
+                    
+                    pos++;
+                }
+                
+                return 0;
+        }
     }
 
 

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/Normalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/Normalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/Normalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/Normalizer.java Wed May 11 12:00:27 2016
@@ -20,7 +20,6 @@
 package org.apache.directory.api.ldap.model.schema;
 
 
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 
 
@@ -58,23 +57,24 @@ public abstract class Normalizer extends
 
 
     /**
-     * Gets the normalized value.
+     * Gets the normalized value of AssertionValues.
      * 
      * @param value the value to normalize. It must *not* be null !
-     * @param assertionType The PrepareString.AssertionType
      * @return the normalized form for a value
      * @throws LdapException if an error results during normalization
      */
-    public abstract Value normalize( Value value ) throws LdapException;
+    public abstract String normalize( String value ) throws LdapException;
+
 
     /**
-     * Gets the normalized value of AssertionValues.
+     * Gets the normalized value of a substring assertion.
      * 
-     * @param value the value to normalize. It must *not* be null !
+     * @param value the substring value to normalize. It must *not* be null !
+     * @param assertionType The type of assertion
      * @return the normalized form for a value
      * @throws LdapException if an error results during normalization
      */
-    public abstract String normalize( String value ) throws LdapException;
+    public abstract String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException;
 
 
     /**

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/PrepareString.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/PrepareString.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/PrepareString.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/PrepareString.java Wed May 11 12:00:27 2016
@@ -3285,7 +3285,7 @@ public final class PrepareString
      * 
      * For instance, the following telephone number :
      * "+ (33) 1-123--456  789"
-     * will be trasnformed to :
+     * will be transformed to :
      * "+(33)1123456789"
      *
      * @param str The telephoneNumber String

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/DnComparator.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/DnComparator.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/DnComparator.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/DnComparator.java Wed May 11 12:00:27 2016
@@ -84,7 +84,7 @@ public class DnComparator extends LdapCo
             return 1;
         }
 
-        for ( int i = dn0Size; i >= 0; i-- )
+        for ( int i = dn0Size - 1; i >= 0; i-- )
         {
             int comp = dn0.getRdn( i ).compareTo( dn1.getRdn( i ) );
             

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/ObjectIdentifierComparator.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/ObjectIdentifierComparator.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/ObjectIdentifierComparator.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/ObjectIdentifierComparator.java Wed May 11 12:00:27 2016
@@ -84,7 +84,7 @@ public class ObjectIdentifierComparator
             return -1;
         }
 
-        // Here, we should leverage the SchemaManager to compare the String and teh OID
+        // Here, we should leverage the SchemaManager to compare the String and the OID
         return ( ( String ) o1 ).compareToIgnoreCase( ( String ) o2 );
     }
 }

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/BooleanNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/BooleanNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/BooleanNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/BooleanNormalizer.java Wed May 11 12:00:27 2016
@@ -21,9 +21,9 @@ package org.apache.directory.api.ldap.mo
 
 
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapInvalidDnException;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
 import org.apache.directory.api.util.Strings;
 
 
@@ -48,23 +48,23 @@ public class BooleanNormalizer extends N
     /**
      * {@inheritDoc}
      */
-    public Value normalize( Value value ) throws LdapInvalidDnException
+    @Override
+    public String normalize( String value ) throws LdapInvalidDnException
     {
         if ( value == null )
         {
             return null;
         }
 
-        String strValue = value.getValue();
-
-        return new Value( Strings.upperCase( strValue.trim() ) );
+        return Strings.upperCase( value.trim() );
     }
 
 
     /**
      * {@inheritDoc}
      */
-    public String normalize( String value ) throws LdapInvalidDnException
+    @Override
+    public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapInvalidDnException
     {
         if ( value == null )
         {

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ConcreteNameComponentNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ConcreteNameComponentNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ConcreteNameComponentNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ConcreteNameComponentNormalizer.java Wed May 11 12:00:27 2016
@@ -20,7 +20,6 @@
 package org.apache.directory.api.ldap.model.schema.normalizers;
 
 
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.MatchingRule;
@@ -61,7 +60,7 @@ public class ConcreteNameComponentNormal
         char[] newVal = new char[value.length()];
         int escaped = 0;
         char high = 0;
-        char low = 0;
+        char low;
         int pos = 0;
 
         for ( int index = 0; index < value.length(); index++  )
@@ -105,20 +104,21 @@ public class ConcreteNameComponentNormal
     /**
      * {@inheritDoc}
      */
+    @Override
     public Object normalizeByName( String name, String value ) throws LdapException
     {
         AttributeType attributeType = schemaManager.lookupAttributeTypeRegistry( name );
+        Normalizer normalizer = lookup( name );
 
         if ( attributeType.getSyntax().isHumanReadable() )
         {
-            return lookup( name ).normalize( value );
+            return normalizer.normalize( value );
         }
         else
         {
             String unescaped = unescape( value );
-            byte[] valBytes = Strings.getBytesUtf8( unescaped );
 
-            return lookup( name ).normalize( new Value( valBytes ) );
+            return normalizer.normalize( unescaped );
         }
 
     }
@@ -127,25 +127,19 @@ public class ConcreteNameComponentNormal
     /**
      * {@inheritDoc}
      */
+    @Override
     public Object normalizeByName( String name, byte[] value ) throws LdapException
     {
-        AttributeType attributeType = schemaManager.lookupAttributeTypeRegistry( name );
+        String valStr = Strings.utf8ToString( value );
 
-        if ( !attributeType.getSyntax().isHumanReadable() )
-        {
-            return lookup( name ).normalize( new Value( value ) );
-        }
-        else
-        {
-            String valStr = Strings.utf8ToString( value );
-            return lookup( name ).normalize( valStr );
-        }
+        return lookup( name ).normalize( valStr );
     }
 
 
     /**
      * {@inheritDoc}
      */
+    @Override
     public Object normalizeByOid( String oid, String value ) throws LdapException
     {
         return lookup( oid ).normalize( value );
@@ -155,9 +149,10 @@ public class ConcreteNameComponentNormal
     /**
      * {@inheritDoc}
      */
+    @Override
     public Object normalizeByOid( String oid, byte[] value ) throws LdapException
     {
-        return lookup( oid ).normalize( new Value( value ) );
+        return lookup( oid ).normalize( Strings.utf8ToString( value ) );
     }
 
 
@@ -189,12 +184,17 @@ public class ConcreteNameComponentNormal
     /**
      * @see NameComponentNormalizer#isDefined(String)
      */
+    @Override
     public boolean isDefined( String id )
     {
         return schemaManager.getAttributeTypeRegistry().contains( id );
     }
 
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
     public String normalizeName( String attributeName ) throws LdapException
     {
         return schemaManager.getAttributeTypeRegistry().getOidByName( attributeName );

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimNormalizer.java Wed May 11 12:00:27 2016
@@ -23,7 +23,6 @@ package org.apache.directory.api.ldap.mo
 import java.io.IOException;
 
 import org.apache.directory.api.i18n.I18n;
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
 import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
@@ -59,12 +58,14 @@ public class DeepTrimNormalizer extends
      */
     public DeepTrimNormalizer()
     {
+        super();
     }
 
 
     /**
      * {@inheritDoc}
      */
+    @Override
     public String normalize( String value ) throws LdapException
     {
         return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
@@ -74,25 +75,7 @@ public class DeepTrimNormalizer extends
     /**
      * {@inheritDoc}
      */
-    public Value normalize( Value value ) throws LdapException
-    {
-        if ( value == null )
-        {
-            return null;
-        }
-
-        // Transcoding
-        String transcoded = PrepareString.transcode( value.getBytes() );
-
-        String normValue = normalize( transcoded, PrepareString.AssertionType.ATTRIBUTE_VALUE );
-
-        return new Value( value.getAttributeType(), value.getValue() );
-    }
-
-
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
     {
         if ( value == null )

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DeepTrimToLowerNormalizer.java Wed May 11 12:00:27 2016
@@ -23,7 +23,6 @@ package org.apache.directory.api.ldap.mo
 import java.io.IOException;
 
 import org.apache.directory.api.i18n.I18n;
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
 import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
@@ -60,31 +59,14 @@ public class DeepTrimToLowerNormalizer e
      */
     public DeepTrimToLowerNormalizer()
     {
-    }
-    
-    
-    /**
-     * {@inheritDoc}
-     */
-    public Value normalize( Value value ) throws LdapException
-    {
-        if ( value == null )
-        {
-            return null;
-        }
-
-        // Transcoding
-        String transcoded = PrepareString.transcode( value.getBytes() );
-
-        String normValue = normalize( transcoded, PrepareString.AssertionType.ATTRIBUTE_VALUE );
-
-        return new Value( value.getAttributeType(), normValue );
+        super();
     }
 
 
     /**
      * {@inheritDoc}
      */
+    @Override
     public String normalize( String value ) throws LdapException
     {
         return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
@@ -94,6 +76,7 @@ public class DeepTrimToLowerNormalizer e
     /**
      * {@inheritDoc}
      */
+    @Override
     public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
     {
         if ( value == null )

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DnNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DnNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DnNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DnNormalizer.java Wed May 11 12:00:27 2016
@@ -21,10 +21,10 @@ package org.apache.directory.api.ldap.mo
 
 
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.name.Dn;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
 import org.apache.directory.api.ldap.model.schema.SchemaManager;
 
 
@@ -37,7 +37,7 @@ import org.apache.directory.api.ldap.mod
 public class DnNormalizer extends Normalizer
 {
     /** A reference to the schema manager used to normalize the Dn */
-    private SchemaManager schemaManager;
+    private transient SchemaManager schemaManager;
 
 
     /**
@@ -52,26 +52,22 @@ public class DnNormalizer extends Normal
     /**
      * {@inheritDoc}
      */
-    public Value normalize( Value value ) throws LdapException
+    @Override
+    public String normalize( String value ) throws LdapException
     {
-        Dn dn = null;
-
-        String dnStr = value.getValue();
-
-        dn = new Dn( schemaManager, dnStr );
+        Dn dn = new Dn( schemaManager, value );
 
-        return new Value( dn.getName() );
+        return dn.getName();
     }
 
 
     /**
      * {@inheritDoc}
      */
-    public String normalize( String value ) throws LdapException
+    @Override
+    public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
     {
-        Dn dn = null;
-
-        dn = new Dn( schemaManager, value );
+        Dn dn = new Dn( schemaManager, value );
 
         return dn.getName();
     }

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/GeneralizedTimeNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/GeneralizedTimeNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/GeneralizedTimeNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/GeneralizedTimeNormalizer.java Wed May 11 12:00:27 2016
@@ -24,7 +24,6 @@ import java.text.ParseException;
 
 import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
 import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
@@ -45,6 +44,8 @@ import org.apache.directory.api.util.Gen
  * <li>the time is supposed to be expressed in Zulu (GMT), so 
  * increment is applied to hours/days/yeah, and a Z is added at the end</li>
  * </ul>
+ * 
+ * Note : there is no Substring for this type of values.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -63,18 +64,18 @@ public class GeneralizedTimeNormalizer e
     /**
      * {@inheritDoc}
      */
-    public Value normalize( Value value ) throws LdapException
+    @Override
+    public String normalize( String value ) throws LdapException
     {
-        String normalized = PrepareString.normalize( value.getValue() );
-
-        return new Value( normalized );
+        return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
     }
 
 
     /**
      * {@inheritDoc}
      */
-    public String normalize( String value ) throws LdapException
+    @Override
+    public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
     {
         if ( value == null )
         {
@@ -86,10 +87,8 @@ public class GeneralizedTimeNormalizer e
         try
         {
             GeneralizedTime time = new GeneralizedTime( value );
-            String normalized = time.toGeneralizedTime( Format.YEAR_MONTH_DAY_HOUR_MIN_SEC_FRACTION,
+            return time.toGeneralizedTime( Format.YEAR_MONTH_DAY_HOUR_MIN_SEC_FRACTION,
                 FractionDelimiter.DOT, 3, TimeZoneFormat.Z );
-
-            return normalized;
         }
         catch ( ParseException pe )
         {

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NameOrNumericIdNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NameOrNumericIdNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NameOrNumericIdNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NameOrNumericIdNormalizer.java Wed May 11 12:00:27 2016
@@ -22,12 +22,13 @@ package org.apache.directory.api.ldap.mo
 
 import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.exception.LdapOtherException;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
 import org.apache.directory.api.ldap.model.schema.SchemaManager;
 import org.apache.directory.api.ldap.model.schema.syntaxCheckers.NumericOidSyntaxChecker;
+import org.apache.directory.api.util.Strings;
 
 
 /**
@@ -62,50 +63,20 @@ public class NameOrNumericIdNormalizer e
     /**
      * {@inheritDoc} 
      */
-    public Value normalize( Value value ) throws LdapException
+    @Override
+    public String normalize( String value ) throws LdapException
     {
-        if ( value == null )
-        {
-            return null;
-        }
-
-        String strValue = value.getValue();
-
-        if ( strValue.length() == 0 )
-        {
-            return new Value( "" );
-        }
-
-        // if value is a numeric id then return it as is
-        if ( checker.isValidSyntax( strValue ) )
-        {
-            return value;
-        }
-
-        // if it is a name we need to do a lookup
-        String oid = schemaManager.getRegistries().getOid( strValue );
-
-        if ( oid != null )
-        {
-            return new Value( oid );
-        }
-
-        // if all else fails
-        throw new LdapOtherException( I18n.err( I18n.ERR_04225, value ) );
+        return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
     }
 
 
     /**
      * {@inheritDoc} 
      */
-    public String normalize( String value ) throws LdapException
+    @Override
+    public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
     {
-        if ( value == null )
-        {
-            return null;
-        }
-
-        if ( value.length() == 0 )
+        if ( Strings.isEmpty( value ) )
         {
             return value;
         }
@@ -132,6 +103,7 @@ public class NameOrNumericIdNormalizer e
     /**
      * {@inheritDoc}
      */
+    @Override
     public void setSchemaManager( SchemaManager schemaManager )
     {
         this.schemaManager = schemaManager;

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NoOpNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NoOpNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NoOpNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NoOpNormalizer.java Wed May 11 12:00:27 2016
@@ -20,8 +20,8 @@
 package org.apache.directory.api.ldap.model.schema.normalizers;
 
 
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
 
 
 /**
@@ -49,6 +49,7 @@ public class NoOpNormalizer extends Norm
      */
     public NoOpNormalizer()
     {
+        super();
     }
 
 
@@ -57,22 +58,20 @@ public class NoOpNormalizer extends Norm
      * 
      * @param value any value
      * @return the value argument returned as-is
-     * @see org.apache.directory.api.ldap.model.schema.Normalizer#normalize(Value)
+     * @see org.apache.directory.api.ldap.model.schema.Normalizer#normalize(String)
      */
-    public Value normalize( Value value )
+    @Override
+    public String normalize( String value )
     {
         return value;
     }
 
 
     /**
-     * Returns the value argument as-is without alterations all the time.
-     * 
-     * @param value any value
-     * @return the value argument returned as-is
-     * @see org.apache.directory.api.ldap.model.schema.Normalizer#normalize(String)
+     * {@inheritDoc}
      */
-    public String normalize( String value )
+    @Override
+    public String normalize( String value, PrepareString.AssertionType assertionType )
     {
         return value;
     }

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NumericNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NumericNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NumericNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/NumericNormalizer.java Wed May 11 12:00:27 2016
@@ -59,6 +59,7 @@ public class NumericNormalizer extends N
     /**
      * {@inheritDoc}
      */
+    @Override
     public String normalize( String value ) throws LdapException
     {
         return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
@@ -68,6 +69,7 @@ public class NumericNormalizer extends N
     /**
      * {@inheritDoc}
      */
+    @Override
     public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
     {
         if ( value == null )
@@ -78,8 +80,6 @@ public class NumericNormalizer extends N
         char[] chars = value.toCharArray();
         
         // Insignificant Characters Handling
-        String normValue = PrepareString.insignificantNumericStringHandling( chars );
-
-        return normValue;
+        return PrepareString.insignificantNumericStringHandling( chars );
     }
 }
\ No newline at end of file

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ObjectIdentifierNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ObjectIdentifierNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ObjectIdentifierNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ObjectIdentifierNormalizer.java Wed May 11 12:00:27 2016
@@ -21,9 +21,9 @@ package org.apache.directory.api.ldap.mo
 
 
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
 import org.apache.directory.api.util.Strings;
 
 
@@ -47,35 +47,18 @@ public class ObjectIdentifierNormalizer
     /**
      * {@inheritDoc}
      */
-    public Value normalize( Value value ) throws LdapException
+    @Override
+    public String normalize( String value ) throws LdapException
     {
-        if ( value == null )
-        {
-            return null;
-        }
-
-        String str = value.getValue().trim();
-
-        if ( str.length() == 0 )
-        {
-            return new Value( "" );
-        }
-        else if ( Character.isDigit( str.charAt( 0 ) ) )
-        {
-            // We do this test to avoid a lowerCasing which cost time
-            return new Value( str );
-        }
-        else
-        {
-            return new Value( Strings.toLowerCaseAscii( str ) );
-        }
+        return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
     }
 
 
     /**
      * {@inheritDoc}
      */
-    public String normalize( String value ) throws LdapException
+    @Override
+    public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
     {
         if ( value == null )
         {

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/RegexNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/RegexNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/RegexNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/RegexNormalizer.java Wed May 11 12:00:27 2016
@@ -23,8 +23,8 @@ package org.apache.directory.api.ldap.mo
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
 
 
 /**
@@ -39,7 +39,7 @@ public class RegexNormalizer extends Nor
     private final Pattern[] regexes;
 
     /** the set of regular expressions used to transform values */
-    private final Matcher[] matchers;
+    private final transient Matcher[] matchers;
 
 
     /**
@@ -74,34 +74,18 @@ public class RegexNormalizer extends Nor
     /**
      * {@inheritDoc}
      */
-    public Value normalize( final Value value )
+    @Override
+    public String normalize( String value )
     {
-        if ( value == null )
-        {
-            return null;
-        }
-
-        if ( value.isHumanReadable() )
-        {
-            String str = value.getValue();
-
-            for ( int i = 0; i < matchers.length; i++ )
-            {
-
-                str = matchers[i].replaceAll( str );
-            }
-
-            return new Value( str );
-        }
-
-        return value;
+        return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
     }
 
 
     /**
      * {@inheritDoc}
      */
-    public String normalize( String value )
+    @Override
+    public String normalize( String value, PrepareString.AssertionType assertionType )
     {
         if ( value == null )
         {
@@ -112,7 +96,6 @@ public class RegexNormalizer extends Nor
 
         for ( int i = 0; i < matchers.length; i++ )
         {
-
             str = matchers[i].replaceAll( str );
         }
 

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/TelephoneNumberNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/TelephoneNumberNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/TelephoneNumberNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/TelephoneNumberNormalizer.java Wed May 11 12:00:27 2016
@@ -21,14 +21,14 @@ package org.apache.directory.api.ldap.mo
 
 
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
 import org.apache.directory.api.ldap.model.schema.PrepareString;
 
 
 /**
- * Normalize Telephone Number Strings
+ * Normalize Telephone Number Strings. We don't process substring differently, as we don't
+ * have any significant space in a Telephone Number.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
@@ -47,18 +47,18 @@ public class TelephoneNumberNormalizer e
     /**
      * {@inheritDoc}
      */
-    public Value normalize( Value value ) throws LdapException
+    @Override
+    public String normalize( String value ) throws LdapException
     {
-        String normalized = normalize( value.getValue() );
-
-        return new Value( normalized );
+        return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
     }
-
+    
 
     /**
      * {@inheritDoc}
      */
-    public String normalize( String value ) throws LdapException
+    @Override
+    public String normalize( String value, PrepareString.AssertionType assertiontype ) throws LdapException
     {
         if ( value == null )
         {
@@ -68,8 +68,6 @@ public class TelephoneNumberNormalizer e
         char[] chars = value.toCharArray();
         
         // Insignificant Characters Handling
-        String normValue = PrepareString.insignificantTelephoneNumberStringHandling( chars );
-
-        return normValue;
+        return PrepareString.insignificantTelephoneNumberStringHandling( chars );
     }
 }
\ No newline at end of file

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/UniqueMemberNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/UniqueMemberNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/UniqueMemberNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/UniqueMemberNormalizer.java Wed May 11 12:00:27 2016
@@ -22,10 +22,10 @@ package org.apache.directory.api.ldap.mo
 
 import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.name.Dn;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
 import org.apache.directory.api.ldap.model.schema.SchemaManager;
 import org.apache.directory.api.util.Strings;
 
@@ -39,7 +39,7 @@ import org.apache.directory.api.util.Str
 public class UniqueMemberNormalizer extends Normalizer
 {
     /** A reference to the schema manager used to normalize the Dn */
-    private SchemaManager schemaManager;
+    private transient SchemaManager schemaManager;
 
 
     public UniqueMemberNormalizer()
@@ -48,54 +48,21 @@ public class UniqueMemberNormalizer exte
     }
 
 
-    public Value normalize( Value value ) throws LdapException
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public String normalize( String value ) throws LdapException
     {
-        String nameAndUid = value.getValue();
-
-        if ( nameAndUid.length() == 0 )
-        {
-            return null;
-        }
-
-        // Let's see if we have an UID part
-        int sharpPos = nameAndUid.lastIndexOf( '#' );
-
-        if ( sharpPos != -1 )
-        {
-            // Now, check that we don't have another '#'
-            if ( nameAndUid.indexOf( '#' ) != sharpPos )
-            {
-                // Yes, we have one : this is not allowed, it should have been
-                // escaped.
-                return null;
-            }
-
-            // This is an UID if the '#' is immediately
-            // followed by a BitString, except if the '#' is
-            // on the last position
-            String uid = nameAndUid.substring( sharpPos + 1 );
-
-            if ( sharpPos > 0 )
-            {
-                Dn dn = new Dn( schemaManager, nameAndUid.substring( 0, sharpPos ) );
-
-                return new Value( dn.getName() + '#' + uid );
-            }
-            else
-            {
-                throw new IllegalStateException( I18n.err( I18n.ERR_04226, value.getClass() ) );
-            }
-        }
-        else
-        {
-            // No UID, the strValue is a Dn
-            // Return the normalized Dn
-            return new Value( new Dn( nameAndUid ).getName() );
-        }
+        return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
     }
 
 
-    public String normalize( String value ) throws LdapException
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
     {
         if ( Strings.isEmpty( value ) )
         {
@@ -143,6 +110,7 @@ public class UniqueMemberNormalizer exte
     /**
      * {@inheritDoc}
      */
+    @Override
     public void setSchemaManager( SchemaManager schemaManager )
     {
         this.schemaManager = schemaManager;

Modified: directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/BinaryValueAttributeTypeTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/BinaryValueAttributeTypeTest.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/BinaryValueAttributeTypeTest.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/BinaryValueAttributeTypeTest.java Wed May 11 12:00:27 2016
@@ -41,6 +41,7 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
 import org.apache.directory.api.ldap.model.schema.MutableMatchingRule;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
 import org.apache.directory.api.ldap.model.schema.comparators.ByteArrayComparator;
 import org.apache.directory.api.ldap.model.schema.syntaxCheckers.OctetStringSyntaxChecker;
 import org.apache.directory.api.util.StringConstants;
@@ -96,31 +97,25 @@ public class BinaryValueAttributeTypeTes
         {
             public static final long serialVersionUID = 1L;
 
+            public String normalize( String value ) throws LdapException
+            {
+                return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
+            }
+            
 
-            public Value normalize( Value value ) throws LdapException
+            public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
             {
-                if ( !value.isHumanReadable() )
-                {
-                    byte[] val = value.getBytes();
-                    // each byte will be changed to be > 0, and spaces will be trimmed
-                    byte[] newVal = new byte[val.length];
-                    int i = 0;
-
-                    for ( byte b : val )
-                    {
-                        newVal[i++] = ( byte ) ( b & 0x007F );
-                    }
+                byte[] val = Strings.getBytesUtf8( value );
+                // each byte will be changed to be > 0, and spaces will be trimmed
+                byte[] newVal = new byte[val.length];
+                int i = 0;
 
-                    return new Value( Strings.trim( newVal ) );
+                for ( byte b : val )
+                {
+                    newVal[i++] = ( byte ) ( b & 0x007F );
                 }
 
-                throw new IllegalStateException( "expected byte[] to normalize" );
-            }
-
-
-            public String normalize( String value ) throws LdapException
-            {
-                throw new IllegalStateException( "expected byte[] to normalize" );
+                return Strings.utf8ToString( Strings.trim( newVal ) );
             }
         } );
 

Modified: directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/BinaryValueTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/BinaryValueTest.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/BinaryValueTest.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/BinaryValueTest.java Wed May 11 12:00:27 2016
@@ -39,6 +39,7 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
 import org.apache.directory.api.ldap.model.schema.MutableMatchingRule;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
 import org.apache.directory.api.ldap.model.schema.SyntaxChecker;
 import org.apache.directory.api.ldap.model.schema.comparators.ByteArrayComparator;
 import org.apache.directory.api.ldap.model.schema.syntaxCheckers.OctetStringSyntaxChecker;
@@ -93,29 +94,25 @@ public class BinaryValueTest
             public static final long serialVersionUID = 1L;
 
 
-            public Value normalize( Value value ) throws LdapException
+            public String normalize( String value ) throws LdapException
             {
-                if ( !value.isHumanReadable() )
-                {
-                    byte[] val = value.getBytes();
-                    // each byte will be changed to be > 0, and spaces will be trimmed
-                    byte[] newVal = new byte[val.length];
-                    int i = 0;
-
-                    for ( byte b : val )
-                    {
-                        newVal[i++] = ( byte ) ( b & 0x007F );
-                    }
-
-                    return new Value( Strings.trim( newVal ) );
-                }
-
-                throw new IllegalStateException( "expected byte[] to normalize" );
+                return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
             }
 
-            public String normalize( String value ) throws LdapException
+            
+            public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
             {
-                throw new IllegalStateException( "expected byte[] to normalize" );
+                byte[] val = Strings.getBytesUtf8( value );
+                // each byte will be changed to be > 0, and spaces will be trimmed
+                byte[] newVal = new byte[val.length];
+                int i = 0;
+
+                for ( byte b : val )
+                {
+                    newVal[i++] = ( byte ) ( b & 0x007F );
+                }
+
+                return Strings.utf8ToString( Strings.trim( newVal ) );
             }
         } );
 

Modified: directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/EntryUtils.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/EntryUtils.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/EntryUtils.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/EntryUtils.java Wed May 11 12:00:27 2016
@@ -28,6 +28,7 @@ import org.apache.directory.api.ldap.mod
 import org.apache.directory.api.ldap.model.schema.MutableAttributeType;
 import org.apache.directory.api.ldap.model.schema.MutableMatchingRule;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
 import org.apache.directory.api.ldap.model.schema.SyntaxChecker;
 import org.apache.directory.api.ldap.model.schema.comparators.ByteArrayComparator;
 import org.apache.directory.api.ldap.model.schema.normalizers.DeepTrimToLowerNormalizer;
@@ -159,18 +160,13 @@ public class EntryUtils
             public static final long serialVersionUID = 1L;
 
 
-            public Value normalize( Value value ) throws LdapException
+            public String normalize( String value ) throws LdapException
             {
-                if ( value.isHumanReadable() )
-                {
-                    return new Value( Strings.toLowerCaseAscii( value.getValue() ) );
-                }
-
-                throw new IllegalStateException( I18n.err( I18n.ERR_04474 ) );
+                return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
             }
 
 
-            public String normalize( String value ) throws LdapException
+            public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
             {
                 return Strings.toLowerCaseAscii( value );
             }

Modified: directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/ValueSerializationTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/ValueSerializationTest.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/ValueSerializationTest.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/ValueSerializationTest.java Wed May 11 12:00:27 2016
@@ -99,30 +99,25 @@ public class ValueSerializationTest
             public static final long serialVersionUID = 1L;
 
 
-            public Value normalize( Value value ) throws LdapException
+            public String normalize( String value ) throws LdapException
             {
-                if ( !value.isHumanReadable() )
-                {
-                    byte[] val = value.getBytes();
-                    // each byte will be changed to be > 0, and spaces will be trimmed
-                    byte[] newVal = new byte[val.length];
-                    int i = 0;
-
-                    for ( byte b : val )
-                    {
-                        newVal[i++] = ( byte ) ( b & 0x007F );
-                    }
-
-                    return new Value( Strings.trim( newVal ) );
-                }
-
-                throw new IllegalStateException( "expected byte[] to normalize" );
+                return normalize( value, PrepareString.AssertionType.ATTRIBUTE_VALUE );
             }
 
-            
-            public String normalize( String value ) throws LdapException
+
+            public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
             {
-                throw new IllegalStateException( "expected byte[] to normalize" );
+                byte[] val = Strings.getBytesUtf8( value );
+                // each byte will be changed to be > 0, and spaces will be trimmed
+                byte[] newVal = new byte[val.length];
+                int i = 0;
+
+                for ( byte b : val )
+                {
+                    newVal[i++] = ( byte ) ( b & 0x007F );
+                }
+
+                return Strings.utf8ToString( Strings.trim( newVal ) );
             }
         } );
 

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=1743342&r1=1743341&r2=1743342&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 Wed May 11 12:00:27 2016
@@ -681,7 +681,7 @@ public class DnParserTest
     
     
     @Test
-    //@Ignore
+    @Ignore
     public void testDnParsing() throws LdapInvalidDnException
     {
         long[] deltas = new long[10];

Modified: directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/BooleanNormalizerTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/BooleanNormalizerTest.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/BooleanNormalizerTest.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/BooleanNormalizerTest.java Wed May 11 12:00:27 2016
@@ -23,7 +23,6 @@ package org.apache.directory.api.ldap.mo
 import com.mycila.junit.concurrent.Concurrency;
 import com.mycila.junit.concurrent.ConcurrentJunitRunner;
 
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.schema.normalizers.BooleanNormalizer;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -48,7 +47,7 @@ public class BooleanNormalizerTest
     @Test
     public void testNormalizeNullValue() throws Exception
     {
-        assertNull( normalizer.normalize( ( Value ) null ) );
+        assertNull( normalizer.normalize( null ) );
     }
 
 

Modified: directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DummyNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DummyNormalizer.java?rev=1743342&r1=1743341&r2=1743342&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DummyNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/schema/normalizers/DummyNormalizer.java Wed May 11 12:00:27 2016
@@ -21,9 +21,10 @@ package org.apache.directory.api.ldap.mo
 
 
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
+import org.apache.directory.api.ldap.model.schema.PrepareString;
+import org.apache.directory.api.ldap.model.schema.PrepareString.AssertionType;
 import org.apache.directory.api.util.Strings;
 
 
@@ -48,23 +49,16 @@ public class DummyNormalizer extends Nor
     /**
      * {@inheritDoc}
      */
-    public Value normalize( Value value ) throws LdapException
+    public String normalize( String value ) throws LdapException
     {
-        String str = value.getValue();
-
-        if ( Strings.isEmpty( str ) )
-        {
-            return new Value( str );
-        }
-
-        return new Value( str );
+        return normalize( value, AssertionType.ATTRIBUTE_VALUE );
     }
 
 
     /**
      * {@inheritDoc}
      */
-    public String normalize( String value ) throws LdapException
+    public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
     {
         if ( Strings.isEmpty( value ) )
         {