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/03/24 00:28:29 UTC

svn commit: r1736388 [4/6] - in /directory/shared/branches/shared-value: dsml/parser/src/main/java/org/apache/directory/api/dsmlv2/ dsml/parser/src/main/java/org/apache/directory/api/dsmlv2/request/ dsml/parser/src/main/java/org/apache/directory/api/ds...

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Ava.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Ava.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Ava.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Ava.java Wed Mar 23 23:28:28 2016
@@ -27,8 +27,6 @@ import java.io.ObjectOutput;
 import java.util.Arrays;
 
 import org.apache.directory.api.i18n.I18n;
-import org.apache.directory.api.ldap.model.entry.BinaryValue;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 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;
@@ -78,7 +76,7 @@ public class Ava implements Externalizab
     private String upType;
 
     /** The value. It can be a String or a byte array */
-    private Value<?> value;
+    private Value value;
 
     /** The user provided Ava */
     private String upName;
@@ -167,7 +165,7 @@ public class Ava implements Externalizab
 
             try
             {
-                createAva( schemaManager, upType, new BinaryValue( attributeType, upValue ) );
+                createAva( schemaManager, upType, new Value( attributeType, upValue ) );
             }
             catch ( LdapInvalidAttributeValueException liave )
             {
@@ -178,7 +176,7 @@ public class Ava implements Externalizab
         }
         else
         {
-            createAva( upType, new BinaryValue( upValue ) );
+            createAva( upType, new Value( upValue ) );
         }
     }
 
@@ -231,7 +229,7 @@ public class Ava implements Externalizab
 
             try
             {
-                createAva( schemaManager, upType, new StringValue( attributeType, upValue ) );
+                createAva( schemaManager, upType, new Value( attributeType, upValue ) );
             }
             catch ( LdapInvalidAttributeValueException liave )
             {
@@ -242,7 +240,7 @@ public class Ava implements Externalizab
         }
         else
         {
-            createAva( upType, new StringValue( upValue ) );
+            createAva( upType, new Value( upValue ) );
         }
     }
 
@@ -260,7 +258,7 @@ public class Ava implements Externalizab
      * 
      * @throws LdapInvalidDnException If the given type or value are invalid
      */
-    private void createAva( SchemaManager schemaManager, String upType, Value<?> value )
+    private void createAva( SchemaManager schemaManager, String upType, Value value )
         throws LdapInvalidDnException
     {
         normType = attributeType.getOid();
@@ -284,7 +282,7 @@ public class Ava implements Externalizab
      * 
      * @throws LdapInvalidDnException If the given type or value are invalid
      */
-    private void createAva( String upType, Value<?> upValue ) throws LdapInvalidDnException
+    private void createAva( String upType, Value upValue ) throws LdapInvalidDnException
     {
         String upTypeTrimmed = Strings.trim( upType );
         String normTypeTrimmed = Strings.trim( normType );
@@ -342,7 +340,7 @@ public class Ava implements Externalizab
     // WARNING : The protection level is left unspecified intentionally.
     // We need this method to be visible from the DnParser class, but not
     // from outside this package.
-    /* Unspecified protection */Ava( SchemaManager schemaManager, String upType, String normType, Value<?> value )
+    /* Unspecified protection */Ava( SchemaManager schemaManager, String upType, String normType, Value value )
         throws LdapInvalidDnException
     {
         this.upType = upType;
@@ -377,7 +375,7 @@ public class Ava implements Externalizab
     // WARNING : The protection level is left unspecified intentionally.
     // We need this method to be visible from the DnParser class, but not
     // from outside this package.
-    /* Unspecified protection */Ava( String upType, String normType, Value<?> value, String upName )
+    /* Unspecified protection */Ava( String upType, String normType, Value value, String upName )
         throws LdapInvalidDnException
     {
         this( null, upType, normType, value, upName );
@@ -403,7 +401,7 @@ public class Ava implements Externalizab
     // WARNING : The protection level is left unspecified intentionally.
     // We need this method to be visible from the DnParser class, but not
     // from outside this package.
-    /* Unspecified protection */Ava( AttributeType attributeType, String upType, String normType, Value<?> value, String upName )
+    /* Unspecified protection */Ava( AttributeType attributeType, String upType, String normType, Value value, String upName )
         throws LdapInvalidDnException
     {
         this.attributeType = attributeType;
@@ -493,7 +491,7 @@ public class Ava implements Externalizab
 
             try
             {
-                this.value.apply( tmpAttributeType );
+                value = new Value( tmpAttributeType, value );
             }
             catch ( LdapException le )
             {
@@ -534,7 +532,7 @@ public class Ava implements Externalizab
      *
      * @return The value
      */
-    public Value<?> getValue()
+    public Value getValue()
     {
         return value.clone();
     }
@@ -691,7 +689,7 @@ public class Ava implements Externalizab
                 else
                 {
                     // No Equality MR, use a direct comparison
-                    if ( value instanceof BinaryValue )
+                    if ( !value.isHumanReadable() )
                     {
                         return Arrays.equals( value.getBytes(), instance.value.getBytes() );
                     }
@@ -834,7 +832,7 @@ public class Ava implements Externalizab
         // Write the upValue
         if ( value.isHumanReadable() )
         {
-            pos = ( ( StringValue ) value ).serialize( buffer, pos );
+            pos = value.serialize( buffer, pos );
         }
 
         // Write the hash code
@@ -913,8 +911,8 @@ public class Ava implements Externalizab
         if ( isHR )
         {
             // Read the upValue
-            value = new StringValue( attributeType );
-            pos = ( ( StringValue ) value ).deserialize( buffer, pos );
+            value = Value.createValue( attributeType );
+            pos = value.deserialize( buffer, pos );
         }
 
         // Read the hashCode
@@ -1093,11 +1091,11 @@ public class Ava implements Externalizab
 
         if ( isHR )
         {
-            value = StringValue.deserialize( attributeType, in );
+            value = Value.deserialize( attributeType, in );
         }
         else
         {
-            value = BinaryValue.deserialize( attributeType, in );
+            value = Value.deserialize( attributeType, in );
         }
 
         h = in.readInt();
@@ -1141,8 +1139,8 @@ public class Ava implements Externalizab
         }
         else
         {
-            byte[] bytes1 = ( byte[] ) value.getNormValue();
-            byte[] bytes2 = ( byte[] ) that.value.getNormValue();
+            byte[] bytes1 = ( byte[] ) value.getBytes();
+            byte[] bytes2 = ( byte[] ) that.value.getBytes();
 
             for ( int pos = 0; pos < bytes1.length; pos++ )
             {
@@ -1208,15 +1206,15 @@ public class Ava implements Externalizab
                 }
                 else
                 {
-                    if ( value instanceof StringValue )
+                    if ( value instanceof Value )
                     {
-                        comp = ( ( StringValue ) value ).compareTo( ( StringValue ) that.value );
+                        comp = ( ( Value ) value ).compareTo( ( Value ) that.value );
 
                         return comp;
                     }
                     else
                     {
-                        comp = ( ( BinaryValue ) value ).compareTo( ( BinaryValue ) that.value );
+                        comp = ( ( Value ) value ).compareTo( ( Value ) that.value );
 
                         return comp;
                     }

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Dn.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Dn.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Dn.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/Dn.java Wed Mar 23 23:28:28 2016
@@ -36,8 +36,6 @@ import java.util.TreeSet;
 
 import org.apache.commons.collections.list.UnmodifiableList;
 import org.apache.directory.api.i18n.I18n;
-import org.apache.directory.api.ldap.model.entry.BinaryValue;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 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.LdapInvalidDnException;
@@ -1114,27 +1112,27 @@ public class Dn implements Iterable<Rdn>
                         throw new LdapInvalidDnException( ResultCodeEnum.INVALID_DN_SYNTAX,
                             I18n.err( I18n.ERR_04460_ATTRIBUTE_TYPE_NULL_NOT_ALLOWED, type ) );
                     }
-                    Value<?> atavValue = null;
-                    Value<?> value = atav.getValue();
+                    Value atavValue = null;
+                    Value value = atav.getValue();
                     
-                    if ( value instanceof StringValue )
+                    if ( value.isHumanReadable() )
                     {
                         // Active Directory specifies syntax OIDs in attributeTypes, but it does not specify
                         // any syntexes. Therefore attributeType.getSyntax() returns null. Assume human readable
                         // attribute in such case.
                         if ( attributeType.getSyntax() == null || attributeType.getSyntax().isHumanReadable() )
                         {
-                            atavValue = new StringValue( attributeType, value.getString() );
+                            atavValue = new Value( attributeType, value.getString() );
                         }
                         else
                         {
-                            // This is a binary variable, transaform the StringValue to a BinaryValye
-                            atavValue = new BinaryValue( attributeType, value.getBytes() );
+                            // This is a binary variable, transaform the Value to a BinaryValye
+                            atavValue = new Value( attributeType, value.getBytes() );
                         }
                     }
                     else
                     {
-                        atavValue = new BinaryValue( attributeType, atav.getValue().getBytes() );
+                        atavValue = new Value( attributeType, atav.getValue().getBytes() );
                     }
                     
                     Ava newAva = new Ava(

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/FastDnParser.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/FastDnParser.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/FastDnParser.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/name/FastDnParser.java Wed Mar 23 23:28:28 2016
@@ -23,7 +23,7 @@ package org.apache.directory.api.ldap.mo
 import java.util.List;
 
 import org.apache.directory.api.i18n.I18n;
-import org.apache.directory.api.ldap.model.entry.StringValue;
+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.LdapInvalidDnException;
 import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
@@ -172,7 +172,7 @@ import org.apache.directory.api.util.Pos
 
         String upName = name.substring( rdnStart, pos.start );
 
-        Ava ava = new Ava( type, type, new StringValue( upValue ), upName );
+        Ava ava = new Ava( type, type, new Value( upValue ), upName );
         rdn.addAVA( null, ava );
 
         rdn.setUpName( upName );

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -32,7 +32,6 @@ import java.util.List;
 import org.apache.commons.collections.MultiMap;
 import org.apache.commons.collections.map.MultiValueMap;
 import org.apache.directory.api.i18n.I18n;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
 import org.apache.directory.api.ldap.model.exception.LdapInvalidDnException;
@@ -293,7 +292,7 @@ public class Rdn implements Cloneable, E
      */
     public Rdn( SchemaManager schemaManager, String upType, String upValue ) throws LdapInvalidDnException
     {
-        addAVA( schemaManager, upType, upType, new StringValue( upValue ) );
+        addAVA( schemaManager, upType, upType, new Value( upValue ) );
 
         upName = upType + '=' + upValue;
 
@@ -499,7 +498,7 @@ public class Rdn implements Cloneable, E
      * @throws LdapInvalidDnException
      *             If the Rdn is invalid
      */
-    private void addAVA( SchemaManager schemaManager, String upType, String type, Value<?> value ) throws LdapInvalidDnException
+    private void addAVA( SchemaManager schemaManager, String upType, String type, Value value ) throws LdapInvalidDnException
     {
         // First, let's normalize the type
         AttributeType attributeType = null;
@@ -512,7 +511,7 @@ public class Rdn implements Cloneable, E
             
             try
             {
-                value.apply( attributeType );
+                value = new Value( attributeType, value );
             }
             catch ( LdapInvalidAttributeValueException liave )
             {

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -64,7 +64,7 @@ public abstract class Normalizer extends
      * @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 Value normalize( Value value ) throws LdapException;
 
 
     /**

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/SchemaUtils.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/SchemaUtils.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/SchemaUtils.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/SchemaUtils.java Wed Mar 23 23:28:28 2016
@@ -82,13 +82,13 @@ public final class SchemaUtils
 
                     if ( existing != null )
                     {
-                        for ( Value<?> value : existing )
+                        for ( Value value : existing )
                         {
                             combined.add( value );
                         }
                     }
 
-                    for ( Value<?> value : toBeAdded )
+                    for ( Value value : toBeAdded )
                     {
                         combined.add( value );
                     }
@@ -109,7 +109,7 @@ public final class SchemaUtils
 
                         if ( existing != null )
                         {
-                            for ( Value<?> value : toBeRemoved )
+                            for ( Value value : toBeRemoved )
                             {
                                 existing.remove( value );
                             }

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/ByteArrayComparator.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/ByteArrayComparator.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/ByteArrayComparator.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/ByteArrayComparator.java Wed Mar 23 23:28:28 2016
@@ -22,8 +22,6 @@ package org.apache.directory.api.ldap.mo
 
 import org.apache.directory.api.ldap.model.schema.LdapComparator;
 import org.apache.directory.api.util.Strings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 
 /**
@@ -36,10 +34,6 @@ public class ByteArrayComparator extends
     /** The serial version UID */
     private static final long serialVersionUID = 2L;
 
-    /** A logger for this class */
-    private static final Logger LOG = LoggerFactory.getLogger( ByteArrayComparator.class );
-
-
     /**
      * The ByteArrayComparator constructor. Its OID is the OctetStringMatch matching
      * rule OID.
@@ -55,66 +49,6 @@ public class ByteArrayComparator extends
      */
     public int compare( byte[] b1, byte[] b2 )
     {
-        LOG.debug( "comparing OctetString objects '{}' with '{}'",
-            Strings.dumpBytes( b1 ), Strings.dumpBytes( b2 ) );
-
-        // -------------------------------------------------------------------
-        // Handle some basis cases
-        // -------------------------------------------------------------------
-
-        if ( b1 == null )
-        {
-            return ( b2 == null ) ? 0 : -1;
-        }
-
-        if ( b2 == null )
-        {
-            return 1;
-        }
-
-        if ( b1.length == b2.length )
-        {
-            for ( int i = 0; i < b1.length; i++ )
-            {
-                if ( b1[i] > b2[i] )
-                {
-                    return 1;
-                }
-                else if ( b1[i] < b2[i] )
-                {
-                    return -1;
-                }
-            }
-
-            return 0;
-        }
-
-        int minLength = Math.min( b1.length, b2.length );
-
-        for ( int i = 0; i < minLength; i++ )
-        {
-            if ( b1[i] > b2[i] )
-            {
-                return 1;
-            }
-            else if ( b1[i] < b2[i] )
-            {
-                return -1;
-            }
-        }
-
-        // b2 is longer w/ b1 as prefix 
-        if ( b1.length == minLength )
-        {
-            return -1;
-        }
-
-        // b1 is longer w/ b2 as prefix
-        if ( b2.length == minLength )
-        {
-            return 1;
-        }
-
-        return 0;
+        return Strings.compare( b1, b2 );
     }
 }

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/CsnComparator.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/CsnComparator.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/CsnComparator.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/comparators/CsnComparator.java Wed Mar 23 23:28:28 2016
@@ -20,7 +20,7 @@
 package org.apache.directory.api.ldap.model.schema.comparators;
 
 
-import org.apache.directory.api.ldap.model.entry.StringValue;
+import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.schema.LdapComparator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -84,18 +84,18 @@ public class CsnComparator extends LdapC
         String csnStr1 = null;
         String csnStr2 = null;
 
-        if ( csnObj1 instanceof StringValue )
+        if ( csnObj1 instanceof Value )
         {
-            csnStr1 = ( ( StringValue ) csnObj1 ).getValue();
+            csnStr1 = ( ( Value ) csnObj1 ).getValue();
         }
         else
         {
             csnStr1 = csnObj1.toString();
         }
 
-        if ( csnObj2 instanceof StringValue )
+        if ( csnObj2 instanceof Value )
         {
-            csnStr2 = ( ( StringValue ) csnObj2 ).getValue();
+            csnStr2 = ( ( Value ) csnObj2 ).getValue();
         }
         else
         {

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -21,7 +21,6 @@ package org.apache.directory.api.ldap.mo
 
 
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 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;
@@ -49,7 +48,7 @@ public class BooleanNormalizer extends N
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( Value<?> value ) throws LdapInvalidDnException
+    public Value normalize( Value value ) throws LdapInvalidDnException
     {
         if ( value == null )
         {
@@ -58,7 +57,7 @@ public class BooleanNormalizer extends N
 
         String strValue = value.getString();
 
-        return new StringValue( Strings.upperCase( strValue.trim() ) );
+        return new Value( Strings.upperCase( strValue.trim() ) );
     }
 
 

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/CachingNormalizer.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/CachingNormalizer.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/CachingNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/CachingNormalizer.java Wed Mar 23 23:28:28 2016
@@ -98,14 +98,14 @@ public class CachingNormalizer extends N
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         if ( value == null )
         {
             return null;
         }
 
-        Value<?> normalized = normalizer.normalize( value );
+        Value normalized = normalizer.normalize( value );
 
         return normalized;
     }

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -20,7 +20,7 @@
 package org.apache.directory.api.ldap.model.schema.normalizers;
 
 
-import org.apache.directory.api.ldap.model.entry.BinaryValue;
+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;
@@ -118,7 +118,7 @@ public class ConcreteNameComponentNormal
             String unescaped = unescape( value );
             byte[] valBytes = Strings.getBytesUtf8( unescaped );
 
-            return lookup( name ).normalize( new BinaryValue( valBytes ) );
+            return lookup( name ).normalize( new Value( valBytes ) );
         }
 
     }
@@ -133,7 +133,7 @@ public class ConcreteNameComponentNormal
 
         if ( !attributeType.getSyntax().isHumanReadable() )
         {
-            return lookup( name ).normalize( new BinaryValue( value ) );
+            return lookup( name ).normalize( new Value( value ) );
         }
         else
         {
@@ -157,7 +157,7 @@ public class ConcreteNameComponentNormal
      */
     public Object normalizeByOid( String oid, byte[] value ) throws LdapException
     {
-        return lookup( oid ).normalize( new BinaryValue( value ) );
+        return lookup( oid ).normalize( new Value( value ) );
     }
 
 

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 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.StringValue;
 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;
@@ -65,14 +64,14 @@ public class DeepTrimNormalizer extends
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         try
         {
             String normalized = PrepareString.normalize( value.getString(),
                 PrepareString.StringType.DIRECTORY_STRING );
 
-            return new StringValue( normalized );
+            return new Value( normalized );
         }
         catch ( IOException ioe )
         {

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 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.StringValue;
 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;
@@ -66,7 +65,7 @@ public class DeepTrimToLowerNormalizer e
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         if ( value == null )
         {
@@ -78,7 +77,7 @@ public class DeepTrimToLowerNormalizer e
             String normalized = PrepareString.normalize( value.getString(),
                 PrepareString.StringType.CASE_IGNORE );
 
-            return new StringValue( normalized );
+            return new Value( normalized );
         }
         catch ( IOException ioe )
         {

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DefaultStringNormalizer.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/DefaultStringNormalizer.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DefaultStringNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DefaultStringNormalizer.java Wed Mar 23 23:28:28 2016
@@ -21,7 +21,6 @@ package org.apache.directory.api.ldap.mo
 
 
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 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;
@@ -53,16 +52,16 @@ public class DefaultStringNormalizer ext
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         String str = value.getString();
 
         if ( Strings.isEmpty( str ) )
         {
-            return new StringValue( str );
+            return new Value( str );
         }
 
-        return new StringValue( str );
+        return new Value( str );
     }
 
 

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -21,7 +21,6 @@ package org.apache.directory.api.ldap.mo
 
 
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 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;
@@ -53,7 +52,7 @@ public class DnNormalizer extends Normal
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         Dn dn = null;
 
@@ -61,7 +60,7 @@ public class DnNormalizer extends Normal
 
         dn = new Dn( schemaManager, dnStr );
 
-        return new StringValue( dn.getNormName() );
+        return new Value( dn.getNormName() );
     }
 
 

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -25,7 +25,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.StringValue;
 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;
@@ -65,13 +64,13 @@ public class GeneralizedTimeNormalizer e
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         try
         {
             String normalized = PrepareString.normalize( value.getString(), PrepareString.StringType.DIRECTORY_STRING );
 
-            return new StringValue( normalized );
+            return new Value( normalized );
         }
         catch ( IOException ioe )
         {

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -22,7 +22,6 @@ 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.StringValue;
 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;
@@ -63,7 +62,7 @@ public class NameOrNumericIdNormalizer e
     /**
      * {@inheritDoc} 
      */
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         if ( value == null )
         {
@@ -74,7 +73,7 @@ public class NameOrNumericIdNormalizer e
 
         if ( strValue.length() == 0 )
         {
-            return new StringValue( "" );
+            return new Value( "" );
         }
 
         // if value is a numeric id then return it as is
@@ -88,7 +87,7 @@ public class NameOrNumericIdNormalizer e
 
         if ( oid != null )
         {
-            return new StringValue( oid );
+            return new Value( oid );
         }
 
         // if all else fails

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -59,7 +59,7 @@ public class NoOpNormalizer extends Norm
      * @return the value argument returned as-is
      * @see org.apache.directory.api.ldap.model.schema.Normalizer#normalize(Value)
      */
-    public Value<?> normalize( Value<?> value )
+    public Value normalize( Value value )
     {
         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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -24,7 +24,6 @@ import java.io.IOException;
 
 import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 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.LdapInvalidDnException;
@@ -52,14 +51,14 @@ public class NumericNormalizer extends N
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         try
         {
             String normalized = PrepareString.normalize( value.getString(),
                 PrepareString.StringType.NUMERIC_STRING );
 
-            return new StringValue( normalized );
+            return new Value( normalized );
         }
         catch ( IOException ioe )
         {

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -21,7 +21,6 @@ package org.apache.directory.api.ldap.mo
 
 
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 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;
@@ -48,7 +47,7 @@ public class ObjectIdentifierNormalizer
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         if ( value == null )
         {
@@ -59,16 +58,16 @@ public class ObjectIdentifierNormalizer
 
         if ( str.length() == 0 )
         {
-            return new StringValue( "" );
+            return new Value( "" );
         }
         else if ( Character.isDigit( str.charAt( 0 ) ) )
         {
             // We do this test to avoid a lowerCasing which cost time
-            return new StringValue( str );
+            return new Value( str );
         }
         else
         {
-            return new StringValue( Strings.toLowerCaseAscii( str ) );
+            return new Value( Strings.toLowerCaseAscii( str ) );
         }
     }
 

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -23,7 +23,6 @@ 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.StringValue;
 import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
 
@@ -75,7 +74,7 @@ public class RegexNormalizer extends Nor
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( final Value<?> value )
+    public Value normalize( final Value value )
     {
         if ( value == null )
         {
@@ -92,7 +91,7 @@ public class RegexNormalizer extends Nor
                 str = matchers[i].replaceAll( str );
             }
 
-            return new StringValue( str );
+            return new Value( str );
         }
 
         return value;

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -24,7 +24,6 @@ import java.io.IOException;
 
 import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
-import org.apache.directory.api.ldap.model.entry.StringValue;
 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.LdapInvalidDnException;
@@ -52,14 +51,14 @@ public class TelephoneNumberNormalizer e
     /**
      * {@inheritDoc}
      */
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         try
         {
             String normalized = PrepareString.normalize( value.getString(),
                 PrepareString.StringType.TELEPHONE_NUMBER );
 
-            return new StringValue( normalized );
+            return new Value( normalized );
         }
         catch ( IOException ioe )
         {

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -22,7 +22,6 @@ 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.StringValue;
 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;
@@ -49,7 +48,7 @@ public class UniqueMemberNormalizer exte
     }
 
 
-    public Value<?> normalize( Value<?> value ) throws LdapException
+    public Value normalize( Value value ) throws LdapException
     {
         String nameAndUid = value.getString();
 
@@ -80,7 +79,7 @@ public class UniqueMemberNormalizer exte
             {
                 Dn dn = new Dn( schemaManager, nameAndUid.substring( 0, sharpPos ) );
 
-                return new StringValue( dn.getNormName() + '#' + uid );
+                return new Value( dn.getNormName() + '#' + uid );
             }
             else
             {
@@ -91,7 +90,7 @@ public class UniqueMemberNormalizer exte
         {
             // No UID, the strValue is a Dn
             // Return the normalized Dn
-            return new StringValue( new Dn( nameAndUid ).getNormName() );
+            return new Value( new Dn( nameAndUid ).getNormName() );
         }
     }
 

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/AbstractSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/AbstractSchemaLoader.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/AbstractSchemaLoader.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/AbstractSchemaLoader.java Wed Mar 23 23:28:28 2016
@@ -129,7 +129,7 @@ public abstract class AbstractSchemaLoad
         Attribute objectClasses = entry.get( SchemaConstants.OBJECT_CLASS_AT );
         boolean isSchema = false;
 
-        for ( Value<?> value : objectClasses )
+        for ( Value value : objectClasses )
         {
             if ( MetaSchemaConstants.META_SCHEMA_OC.equalsIgnoreCase( value.getString() ) )
             {
@@ -178,7 +178,7 @@ public abstract class AbstractSchemaLoad
             Set<String> depsSet = new HashSet<String>();
             Attribute depsAttr = entry.get( MetaSchemaConstants.M_DEPENDENCIES_AT );
 
-            for ( Value<?> value : depsAttr )
+            for ( Value value : depsAttr )
             {
                 depsSet.add( value.getString() );
             }

Modified: directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/AttributeTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/AttributeTest.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/AttributeTest.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/AttributeTest.java Wed Mar 23 23:28:28 2016
@@ -57,8 +57,8 @@ import com.mycila.junit.concurrent.Concu
 @Concurrency()
 public class AttributeTest
 {
-    private static final Value<String> NULL_STRING_VALUE = new StringValue( ( String ) null );
-    private static final Value<byte[]> NULL_BINARY_VALUE = new BinaryValue( ( byte[] ) null );
+    private static final Value NULL_STRING_VALUE = new Value( ( String ) null );
+    private static final Value NULL_BINARY_VALUE = new Value( ( byte[] ) null );
     private static final byte[] BYTES1 = new byte[]
         { 'a', 'b' };
     private static final byte[] BYTES2 = new byte[]
@@ -68,15 +68,15 @@ public class AttributeTest
     private static final byte[] BYTES4 = new byte[]
         { 'd' };
 
-    private static final StringValue STR_VALUE1 = new StringValue( "a" );
-    private static final StringValue STR_VALUE2 = new StringValue( "b" );
-    private static final StringValue STR_VALUE3 = new StringValue( "c" );
-    private static final StringValue STR_VALUE4 = new StringValue( "d" );
-
-    private static final BinaryValue BIN_VALUE1 = new BinaryValue( BYTES1 );
-    private static final BinaryValue BIN_VALUE2 = new BinaryValue( BYTES2 );
-    private static final BinaryValue BIN_VALUE3 = new BinaryValue( BYTES3 );
-    private static final BinaryValue BIN_VALUE4 = new BinaryValue( BYTES4 );
+    private static final Value STR_VALUE1 = new Value( "a" );
+    private static final Value STR_VALUE2 = new Value( "b" );
+    private static final Value STR_VALUE3 = new Value( "c" );
+    private static final Value STR_VALUE4 = new Value( "d" );
+
+    private static final Value BIN_VALUE1 = new Value( BYTES1 );
+    private static final Value BIN_VALUE2 = new Value( BYTES2 );
+    private static final Value BIN_VALUE3 = new Value( BYTES3 );
+    private static final Value BIN_VALUE4 = new Value( BYTES4 );
 
 
     /**
@@ -447,7 +447,7 @@ public class AttributeTest
         Attribute attr = new DefaultAttribute();
         attr.add( "a", "b", "c" );
 
-        Iterator<Value<?>> iter = attr.iterator();
+        Iterator<Value> iter = attr.iterator();
 
         assertTrue( iter.hasNext() );
 
@@ -455,9 +455,9 @@ public class AttributeTest
             { "a", "b", "c" };
         int pos = 0;
 
-        for ( Value<?> val : attr )
+        for ( Value val : attr )
         {
-            assertTrue( val instanceof StringValue );
+            assertTrue( val instanceof Value );
             assertEquals( values[pos++], val.getString() );
         }
     }
@@ -471,21 +471,21 @@ public class AttributeTest
     {
         Attribute attr1 = new DefaultAttribute( "test" );
 
-        int nbAdded = attr1.add( new StringValue( ( String ) null ) );
+        int nbAdded = attr1.add( new Value( ( String ) null ) );
         assertEquals( 1, nbAdded );
         assertTrue( attr1.isHumanReadable() );
         assertEquals( NULL_STRING_VALUE, attr1.get() );
 
         Attribute attr2 = new DefaultAttribute( "test" );
 
-        nbAdded = attr2.add( new BinaryValue( ( byte[] ) null ) );
+        nbAdded = attr2.add( new Value( ( byte[] ) null ) );
         assertEquals( 1, nbAdded );
         assertFalse( attr2.isHumanReadable() );
         assertEquals( NULL_BINARY_VALUE, attr2.get() );
 
         Attribute attr3 = new DefaultAttribute( "test" );
 
-        nbAdded = attr3.add( new StringValue( "a" ), new StringValue( "b" ) );
+        nbAdded = attr3.add( new Value( "a" ), new Value( "b" ) );
         assertEquals( 2, nbAdded );
         assertTrue( attr3.isHumanReadable() );
         assertTrue( attr3.contains( "a" ) );
@@ -493,7 +493,7 @@ public class AttributeTest
 
         Attribute attr4 = new DefaultAttribute( "test" );
 
-        nbAdded = attr4.add( new BinaryValue( BYTES1 ), new BinaryValue( BYTES2 ) );
+        nbAdded = attr4.add( new Value( BYTES1 ), new Value( BYTES2 ) );
         assertEquals( 2, nbAdded );
         assertFalse( attr4.isHumanReadable() );
         assertTrue( attr4.contains( BYTES1 ) );
@@ -501,7 +501,7 @@ public class AttributeTest
 
         Attribute attr5 = new DefaultAttribute( "test" );
 
-        nbAdded = attr5.add( new StringValue( "c" ), new BinaryValue( BYTES1 ) );
+        nbAdded = attr5.add( new Value( "c" ), new Value( BYTES1 ) );
         assertEquals( 2, nbAdded );
         assertTrue( attr5.isHumanReadable() );
         assertTrue( attr5.contains( "ab" ) );
@@ -509,7 +509,7 @@ public class AttributeTest
 
         Attribute attr6 = new DefaultAttribute( "test" );
 
-        nbAdded = attr6.add( new BinaryValue( BYTES1 ), new StringValue( "c" ) );
+        nbAdded = attr6.add( new Value( BYTES1 ), new Value( "c" ) );
         assertEquals( 2, nbAdded );
         assertFalse( attr6.isHumanReadable() );
         assertTrue( attr6.contains( BYTES1 ) );
@@ -517,7 +517,7 @@ public class AttributeTest
 
         Attribute attr7 = new DefaultAttribute( "test" );
 
-        nbAdded = attr7.add( new BinaryValue( ( byte[] ) null ), new StringValue( "c" ) );
+        nbAdded = attr7.add( new Value( ( byte[] ) null ), new Value( "c" ) );
         assertEquals( 2, nbAdded );
         assertFalse( attr7.isHumanReadable() );
         assertTrue( attr7.contains( NULL_BINARY_VALUE ) );
@@ -525,7 +525,7 @@ public class AttributeTest
 
         Attribute attr8 = new DefaultAttribute( "test" );
 
-        nbAdded = attr8.add( new StringValue( ( String ) null ), new BinaryValue( BYTES1 ) );
+        nbAdded = attr8.add( new Value( ( String ) null ), new Value( BYTES1 ) );
         assertEquals( 2, nbAdded );
         assertTrue( attr8.isHumanReadable() );
         assertTrue( attr8.contains( NULL_STRING_VALUE ) );
@@ -913,14 +913,14 @@ public class AttributeTest
     {
         Attribute attr = new DefaultAttribute( "test" );
 
-        Iterator<Value<?>> iterator = attr.iterator();
+        Iterator<Value> iterator = attr.iterator();
         assertFalse( iterator.hasNext() );
 
         attr.add( NULL_STRING_VALUE );
         iterator = attr.iterator();
         assertTrue( iterator.hasNext() );
 
-        Value<?> value = iterator.next();
+        Value value = iterator.next();
         assertEquals( NULL_STRING_VALUE, value );
 
         attr.clear();

Modified: directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/AttributeUtilsTest.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/AttributeUtilsTest.java?rev=1736388&r1=1736387&r2=1736388&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/AttributeUtilsTest.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/test/java/org/apache/directory/api/ldap/model/entry/AttributeUtilsTest.java Wed Mar 23 23:28:28 2016
@@ -138,7 +138,7 @@ public class AttributeUtilsTest
         expectedValues.add( "apache" );
         expectedValues.add( "test" );
 
-        for ( Value<?> value : attribute )
+        for ( Value value : attribute )
         {
             String valueStr = value.getString();
 
@@ -176,7 +176,7 @@ public class AttributeUtilsTest
         expectedValues.add( "apache" );
         expectedValues.add( "test" );
 
-        for ( Value<?> value : cnAttr )
+        for ( Value value : cnAttr )
         {
             String valueStr = value.getString();
 
@@ -303,7 +303,7 @@ public class AttributeUtilsTest
 
         boolean isFirst = true;
 
-        for ( Value<?> value : modifiedAttr )
+        for ( Value value : modifiedAttr )
         {
             assertTrue( isFirst );
 
@@ -388,7 +388,7 @@ public class AttributeUtilsTest
         expectedValues.add( "Big Company" );
         expectedValues.add( "directory" );
 
-        for ( Value<?> value : modifiedAttr )
+        for ( Value value : modifiedAttr )
         {
             String valueStr = value.getString();
 

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=1736388&r1=1736387&r2=1736388&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 Mar 23 23:28:28 2016
@@ -54,7 +54,7 @@ import com.mycila.junit.concurrent.Concu
 
 
 /**
- * Tests that the BinaryValue class works properly as expected.
+ * Tests that the Value class works properly as expected.
  *
  * Some notes while conducting tests:
  *
@@ -97,7 +97,7 @@ public class BinaryValueAttributeTypeTes
             public static final long serialVersionUID = 1L;
 
 
-            public Value<?> normalize( Value<?> value ) throws LdapException
+            public Value normalize( Value value ) throws LdapException
             {
                 if ( !value.isHumanReadable() )
                 {
@@ -111,7 +111,7 @@ public class BinaryValueAttributeTypeTes
                         newVal[i++] = ( byte ) ( b & 0x007F );
                     }
 
-                    return new BinaryValue( Strings.trim( newVal ) );
+                    return new Value( Strings.trim( newVal ) );
                 }
 
                 throw new IllegalStateException( "expected byte[] to normalize" );
@@ -133,9 +133,9 @@ public class BinaryValueAttributeTypeTes
 
 
     /**
-     * Serialize a BinaryValue
+     * Serialize a Value
      */
-    private ByteArrayOutputStream serializeValue( BinaryValue value ) throws IOException
+    private ByteArrayOutputStream serializeValue( Value value ) throws IOException
     {
         ObjectOutputStream oOut = null;
         ByteArrayOutputStream out = new ByteArrayOutputStream();
@@ -170,9 +170,9 @@ public class BinaryValueAttributeTypeTes
 
 
     /**
-     * Deserialize a BinaryValue
+     * Deserialize a Value
      */
-    private BinaryValue deserializeValue( ByteArrayOutputStream out, AttributeType at ) throws IOException,
+    private Value deserializeValue( ByteArrayOutputStream out, AttributeType at ) throws IOException,
         ClassNotFoundException
     {
         ObjectInputStream oIn = null;
@@ -182,15 +182,11 @@ public class BinaryValueAttributeTypeTes
         {
             oIn = new ObjectInputStream( in );
 
-            BinaryValue value = new BinaryValue( ( AttributeType ) null );
+            Value value = Value.createValue( ( AttributeType ) null );
             value.readExternal( oIn );
 
             return value;
         }
-        catch ( IOException ioe )
-        {
-            throw ioe;
-        }
         finally
         {
             try
@@ -210,22 +206,15 @@ public class BinaryValueAttributeTypeTes
 
     /**
      * Test the constructor with bad AttributeType
+     * @throws LdapInvalidAttributeValueException 
      */
-    @Test
+    @Test( expected=IllegalArgumentException.class)
     public void testBadConstructor()
     {
         // create a AT without no syntax
         MutableAttributeType attribute = new MutableAttributeType( "1.1.3.1" );
 
-        try
-        {
-            new BinaryValue( attribute );
-            fail();
-        }
-        catch ( IllegalArgumentException ae )
-        {
-            // Expected...
-        }
+        Value.createValue( attribute );
     }
 
 
@@ -237,9 +226,9 @@ public class BinaryValueAttributeTypeTes
     {
         AttributeType attribute = EntryUtils.getBytesAttributeType();
 
-        BinaryValue value = new BinaryValue( attribute, null );
+        Value value = new Value( attribute, ( byte[] ) null );
 
-        assertNull( value.getReference() );
+        assertNull( value.getBytes() );
         assertTrue( value.isNull() );
     }
 
@@ -252,9 +241,9 @@ public class BinaryValueAttributeTypeTes
     {
         AttributeType attribute = EntryUtils.getBytesAttributeType();
 
-        BinaryValue value = new BinaryValue( attribute, StringConstants.EMPTY_BYTES );
+        Value value = new Value( attribute, StringConstants.EMPTY_BYTES );
 
-        assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, value.getReference() ) );
+        assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, value.getBytes() ) );
         assertFalse( value.isNull() );
     }
 
@@ -268,12 +257,9 @@ public class BinaryValueAttributeTypeTes
         AttributeType attribute = EntryUtils.getBytesAttributeType();
         byte[] val = new byte[]
             { 0x01 };
-        BinaryValue bv = new BinaryValue( attribute );
-
-        bv = new BinaryValue( val );
-        assertTrue( Arrays.equals( val, bv.getReference() ) );
+        Value bv = new Value( val );
+        assertTrue( Arrays.equals( val, bv.getBytes() ) );
         assertFalse( bv.isNull() );
-        assertTrue( Arrays.equals( val, bv.getValue() ) );
     }
 
 
@@ -286,11 +272,11 @@ public class BinaryValueAttributeTypeTes
         AttributeType attribute = EntryUtils.getBytesAttributeType();
         byte[] val = new byte[]
             { 0x01 };
-        BinaryValue value = new BinaryValue( attribute, val );
+        Value value = new Value( attribute, val );
 
-        assertTrue( Arrays.equals( val, value.getReference() ) );
+        assertTrue( Arrays.equals( val, value.getBytes() ) );
         assertFalse( value.isNull() );
-        assertTrue( Arrays.equals( val, value.getValue() ) );
+        assertTrue( Arrays.equals( val, value.getBytes() ) );
     }
 
 
@@ -301,26 +287,20 @@ public class BinaryValueAttributeTypeTes
     public void testClone() throws LdapException
     {
         AttributeType at1 = EntryUtils.getBytesAttributeType();
-        BinaryValue bv = new BinaryValue( at1, null );
-        BinaryValue bv1 = bv.clone();
+        Value bv = new Value( at1, ( byte[] ) null );
+        Value bv1 = bv.clone();
 
         assertEquals( bv, bv1 );
 
-        bv = new BinaryValue( StringConstants.EMPTY_BYTES );
+        bv = new Value( StringConstants.EMPTY_BYTES );
 
         assertNotSame( bv, bv1 );
         assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, bv.getBytes() ) );
 
-        bv = new BinaryValue( BYTES2 );
+        bv = new Value( at, BYTES2 );
         bv1 = bv.clone();
 
         assertEquals( bv, bv1 );
-
-        bv.apply( at );
-
-        // Even if we didn't normalized sbv2, it should be equal to sbv,
-        // as if they have the same AT, and the same value, they are equal.
-        assertEquals( bv, bv1 );
     }
 
 
@@ -332,23 +312,23 @@ public class BinaryValueAttributeTypeTes
     {
         AttributeType at1 = EntryUtils.getBytesAttributeType();
 
-        BinaryValue value1 = new BinaryValue( at1, new byte[]
+        Value value1 = new Value( at1, new byte[]
             { 0x01, ( byte ) 0x02 } );
-        BinaryValue value2 = new BinaryValue( at1, new byte[]
+        Value value2 = new Value( at1, new byte[]
             { 0x01, ( byte ) 0x02 } );
-        BinaryValue value3 = new BinaryValue( at1, new byte[]
+        Value value3 = new Value( at1, new byte[]
             { 0x01, ( byte ) 0x82 } );
-        BinaryValue value4 = new BinaryValue( at1, new byte[]
+        Value value4 = new Value( at1, new byte[]
             { 0x01 } );
-        BinaryValue value5 = new BinaryValue( at1, null );
-        BinaryValue value6 = new BinaryValue( at, new byte[]
+        Value value5 = new Value( at1, ( byte[] ) null );
+        Value value6 = new Value( at, new byte[]
             { 0x01, 0x02 } );
-        StringValue value7 = new StringValue( EntryUtils.getIA5StringAttributeType(),
+        Value value7 = new Value( EntryUtils.getIA5StringAttributeType(),
             "test" );
 
         assertTrue( value1.equals( value1 ) );
         assertTrue( value1.equals( value2 ) );
-        assertTrue( value1.equals( value3 ) );
+        assertFalse( value1.equals( value3 ) );
         assertFalse( value1.equals( value4 ) );
         assertFalse( value1.equals( value5 ) );
         assertFalse( value1.equals( "test" ) );
@@ -367,14 +347,14 @@ public class BinaryValueAttributeTypeTes
     {
         AttributeType attribute = EntryUtils.getBytesAttributeType();
 
-        BinaryValue value = new BinaryValue( attribute, null );
+        Value value = new Value( attribute, ( byte[] ) null );
         assertNull( value.getNormValue() );
 
-        value = new BinaryValue( attribute, StringConstants.EMPTY_BYTES );
-        assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, value.getNormValue() ) );
+        value = new Value( attribute, StringConstants.EMPTY_BYTES );
+        assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, value.getBytes() ) );
 
-        value = new BinaryValue( attribute, BYTES2 );
-        assertTrue( Arrays.equals( BYTES1, value.getNormValue() ) );
+        value = new Value( attribute, BYTES2 );
+        assertTrue( Arrays.equals( BYTES2, value.getBytes() ) );
     }
 
 
@@ -386,14 +366,14 @@ public class BinaryValueAttributeTypeTes
     {
         AttributeType attribute = EntryUtils.getBytesAttributeType();
 
-        BinaryValue value = new BinaryValue( attribute, null );
+        Value value = new Value( attribute, ( byte[] ) null );
         assertNull( value.getNormValue() );
 
-        value = new BinaryValue( attribute, StringConstants.EMPTY_BYTES );
-        assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, value.getNormValue() ) );
+        value = new Value( attribute, StringConstants.EMPTY_BYTES );
+        assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, value.getBytes() ) );
 
-        value = new BinaryValue( attribute, BYTES2 );
-        assertTrue( Arrays.equals( BYTES1, value.getNormValue() ) );
+        value = new Value( attribute, BYTES2 );
+        assertTrue( Arrays.equals( BYTES2, value.getBytes() ) );
     }
 
 
@@ -405,25 +385,26 @@ public class BinaryValueAttributeTypeTes
     {
         AttributeType attribute = EntryUtils.getBytesAttributeType();
 
-        BinaryValue value = new BinaryValue( attribute, null );
-        assertNull( value.getNormReference() );
+        Value value = new Value( attribute, ( byte[] ) null );
+        assertNull( value.getBytes() );
 
-        value = new BinaryValue( attribute, StringConstants.EMPTY_BYTES );
-        assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, value.getNormReference() ) );
+        value = new Value( attribute, StringConstants.EMPTY_BYTES );
+        assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, value.getBytes() ) );
 
-        value = new BinaryValue( attribute, BYTES2 );
-        assertTrue( Arrays.equals( BYTES1, value.getNormReference() ) );
+        value = new Value( attribute, BYTES2 );
+        assertTrue( Arrays.equals( BYTES2, value.getBytes() ) );
     }
 
 
     /**
      * Test the getAttributeType method
+     * @throws LdapInvalidAttributeValueException 
      */
     @Test
-    public void testgetAttributeType()
+    public void testgetAttributeType() throws LdapInvalidAttributeValueException
     {
         AttributeType attribute = EntryUtils.getBytesAttributeType();
-        BinaryValue sbv = new BinaryValue( attribute );
+        Value sbv = Value.createValue( attribute );
 
         assertEquals( attribute, sbv.getAttributeType() );
     }
@@ -439,14 +420,14 @@ public class BinaryValueAttributeTypeTes
     {
         AttributeType attribute = EntryUtils.getBytesAttributeType();
 
-        new BinaryValue( attribute, null );
-        new BinaryValue( attribute, StringConstants.EMPTY_BYTES );
-        new BinaryValue( attribute, new byte[]
+        new Value( attribute, ( byte[] ) null );
+        new Value( attribute, StringConstants.EMPTY_BYTES );
+        new Value( attribute, new byte[]
             { 0x01, 0x02 } );
 
         try
         {
-            new BinaryValue( attribute, new byte[]
+            new Value( attribute, new byte[]
                 { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 } );
             fail();
         }
@@ -465,20 +446,20 @@ public class BinaryValueAttributeTypeTes
     public void testHashCode() throws LdapInvalidAttributeValueException
     {
         AttributeType attribute = EntryUtils.getBytesAttributeType();
-        BinaryValue v0 = new BinaryValue( attribute, new byte[]
+        Value v0 = new Value( attribute, new byte[]
             { 0x01, 0x02 } );
-        BinaryValue v1 = new BinaryValue( attribute, new byte[]
+        Value v1 = new Value( attribute, new byte[]
             { ( byte ) 0x81, ( byte ) 0x82 } );
-        BinaryValue v2 = new BinaryValue( attribute, new byte[]
+        Value v2 = new Value( attribute, new byte[]
             { 0x01, 0x02 } );
-        assertEquals( v0.hashCode(), v1.hashCode() );
-        assertEquals( v1.hashCode(), v2.hashCode() );
+        assertNotSame( v0.hashCode(), v1.hashCode() );
+        assertNotSame( v1.hashCode(), v2.hashCode() );
         assertEquals( v0.hashCode(), v2.hashCode() );
-        assertEquals( v0, v1 );
+        assertNotSame( v0, v1 );
         assertEquals( v0, v2 );
-        assertEquals( v1, v2 );
+        assertNotSame( v1, v2 );
 
-        BinaryValue v3 = new BinaryValue( attribute, new byte[]
+        Value v3 = new Value( attribute, new byte[]
             { 0x01, 0x03 } );
         assertFalse( v3.equals( v0 ) );
         assertFalse( v3.equals( v1 ) );
@@ -493,7 +474,7 @@ public class BinaryValueAttributeTypeTes
     public void testInstanceOf() throws LdapException
     {
         AttributeType attribute = EntryUtils.getBytesAttributeType();
-        BinaryValue sbv = new BinaryValue( attribute );
+        Value sbv = Value.createValue( attribute );
 
         assertTrue( sbv.isInstanceOf( attribute ) );
 
@@ -510,18 +491,15 @@ public class BinaryValueAttributeTypeTes
     public void testNormalize() throws LdapException
     {
         AttributeType attribute = EntryUtils.getBytesAttributeType();
-        BinaryValue bv = new BinaryValue( attribute );
+        Value bv = Value.createValue( attribute );
 
-        bv.apply( at );
         assertEquals( null, bv.getNormValue() );
 
-        bv = new BinaryValue( attribute, StringConstants.EMPTY_BYTES );
-        bv.apply( at );
-        assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, bv.getNormValue() ) );
-
-        bv = new BinaryValue( attribute, BYTES2 );
-        bv.apply( at );
-        assertTrue( Arrays.equals( BYTES1, bv.getNormValue() ) );
+        bv = new Value( attribute, StringConstants.EMPTY_BYTES );
+        assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, bv.getBytes() ) );
+
+        bv = new Value( attribute, BYTES2 );
+        assertTrue( Arrays.equals( BYTES2, bv.getBytes() ) );
     }
 
 
@@ -532,13 +510,13 @@ public class BinaryValueAttributeTypeTes
     public void testCompareTo() throws LdapInvalidAttributeValueException
     {
         AttributeType at1 = EntryUtils.getBytesAttributeType();
-        BinaryValue v0 = new BinaryValue( at1, BYTES1 );
-        BinaryValue v1 = new BinaryValue( at1, BYTES2 );
+        Value v0 = new Value( at1, BYTES1 );
+        Value v1 = new Value( at1, BYTES1 );
 
         assertEquals( 0, v0.compareTo( v1 ) );
         assertEquals( 0, v1.compareTo( v0 ) );
 
-        BinaryValue v2 = new BinaryValue( at1, null );
+        Value v2 = new Value( at1, ( byte[] ) null );
 
         assertEquals( 1, v0.compareTo( v2 ) );
         assertEquals( -1, v2.compareTo( v0 ) );
@@ -546,31 +524,7 @@ public class BinaryValueAttributeTypeTes
 
 
     /**
-     * Test serialization of a BinaryValue which has a normalized value
-     */
-    @Test
-    public void testNormalizedBinaryValueSerialization() throws LdapException, IOException, ClassNotFoundException
-    {
-        byte[] v1 = Strings.getBytesUtf8( "  Test   Test  " );
-        byte[] v1Norm = Strings.getBytesUtf8( "Test   Test" );
-
-        // First check with a value which will be normalized
-        BinaryValue sbv = new BinaryValue( at, v1 );
-
-        sbv.apply( at );
-        byte[] normalized = sbv.getNormReference();
-
-        assertTrue( Arrays.equals( v1Norm, normalized ) );
-        assertTrue( Arrays.equals( v1, sbv.getReference() ) );
-
-        BinaryValue sbvSer = deserializeValue( serializeValue( sbv ), at );
-
-        assertEquals( sbv, sbvSer );
-    }
-
-
-    /**
-     * Test serialization of a BinaryValue which normalized value is the same
+     * Test serialization of a Value which normalized value is the same
      * than the value
      */
     @Test
@@ -579,16 +533,16 @@ public class BinaryValueAttributeTypeTes
         byte[] v1 = Strings.getBytesUtf8( "Test   Test" );
 
         // First check with a value which will be normalized
-        BinaryValue sbv = new BinaryValue( at, v1 );
+        Value sbv = new Value( at, v1 );
 
-        BinaryValue sbvSer = deserializeValue( serializeValue( sbv ), at );
+        Value sbvSer = deserializeValue( serializeValue( sbv ), at );
 
         assertEquals( sbv, sbvSer );
     }
 
 
     /**
-     * Test serialization of a BinaryValue which does not have a normalized value
+     * Test serialization of a Value which does not have a normalized value
      */
     @Test
     public void testNoNormalizedBinaryValueSerialization() throws LdapException, IOException, ClassNotFoundException
@@ -597,64 +551,61 @@ public class BinaryValueAttributeTypeTes
         byte[] v1Norm = Strings.getBytesUtf8( "test" );
 
         // First check with a value which will be normalized
-        BinaryValue sbv = new BinaryValue( at, v1 );
+        Value sbv = new Value( at, v1 );
 
-        sbv.apply( at );
-        byte[] normalized = sbv.getNormReference();
+        byte[] normalized = sbv.getBytes();
 
         assertTrue( Arrays.equals( v1Norm, normalized ) );
         assertTrue( Arrays.equals( v1, sbv.getBytes() ) );
 
-        BinaryValue sbvSer = deserializeValue( serializeValue( sbv ), at );
+        Value sbvSer = deserializeValue( serializeValue( sbv ), at );
 
         assertEquals( sbv, sbvSer );
     }
 
 
     /**
-     * Test serialization of a null BinaryValue
+     * Test serialization of a null Value
      */
     @Test
     public void testNullBinaryValueSerialization() throws LdapException, IOException, ClassNotFoundException
     {
         // First check with a value which will be normalized
-        BinaryValue sbv = new BinaryValue( at );
+        Value sbv = Value.createValue( at );
 
-        sbv.apply( at );
-        byte[] normalized = sbv.getNormReference();
+        byte[] normalized = sbv.getBytes();
 
         assertEquals( null, normalized );
         assertEquals( null, sbv.getValue() );
 
-        BinaryValue sbvSer = deserializeValue( serializeValue( sbv ), at );
+        Value sbvSer = deserializeValue( serializeValue( sbv ), at );
 
         assertEquals( sbv, sbvSer );
     }
 
 
     /**
-     * Test serialization of an empty BinaryValue
+     * Test serialization of an empty Value
      */
     @Test
     public void testEmptyBinaryValueSerialization() throws LdapException, IOException, ClassNotFoundException
     {
         // First check with a value which will be normalized
-        BinaryValue sbv = new BinaryValue( at, StringConstants.EMPTY_BYTES );
+        Value sbv = new Value( at, StringConstants.EMPTY_BYTES );
 
-        sbv.apply( at );
-        byte[] normalized = sbv.getNormReference();
+        byte[] normalized = sbv.getBytes();
 
         assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, normalized ) );
         assertTrue( Arrays.equals( StringConstants.EMPTY_BYTES, sbv.getBytes() ) );
 
-        BinaryValue sbvSer = deserializeValue( serializeValue( sbv ), at );
+        Value sbvSer = deserializeValue( serializeValue( sbv ), at );
 
         assertEquals( sbv, sbvSer );
     }
 
 
     /**
-     * Test serialization of a BinaryValue which is the same than the value
+     * Test serialization of a Value which is the same than the value
      */
     @Test
     public void testSameNormalizedBinaryValueSerialization() throws LdapException, IOException, ClassNotFoundException
@@ -663,15 +614,14 @@ public class BinaryValueAttributeTypeTes
         byte[] v1Norm = Strings.getBytesUtf8( "test" );
 
         // First check with a value which will be normalized
-        BinaryValue sbv = new BinaryValue( at, v1 );
+        Value sbv = new Value( at, v1 );
 
-        sbv.apply( at );
-        byte[] normalized = sbv.getNormReference();
+        byte[] normalized = sbv.getBytes();
 
         assertTrue( Arrays.equals( v1Norm, normalized ) );
         assertTrue( Arrays.equals( v1, sbv.getBytes() ) );
 
-        BinaryValue sbvSer = deserializeValue( serializeValue( sbv ), at );
+        Value sbvSer = deserializeValue( serializeValue( sbv ), at );
 
         assertEquals( sbv, sbvSer );
     }