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 2019/01/08 13:33:30 UTC

[directory-server] 01/03: Applied the modification in the LDAP API for the Value.getValue() to Value.getString() method renaming (DIRPAI-328)

This is an automated email from the ASF dual-hosted git repository.

elecharny pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-server.git

commit 298ae23b4dce097c46cc55de1b66ee884af4d3c5
Author: Emmanuel Lecharny <el...@apache.org>
AuthorDate: Mon Jan 7 03:51:01 2019 +0100

    Applied the modification in the LDAP API for the Value.getValue() to
    Value.getString() method renaming (DIRPAI-328)
---
 .../server/core/api/LdapCoreSessionConnection.java |  2 +-
 .../server/core/api/entry/ServerEntryUtils.java    |  2 +-
 .../server/core/api/event/LeafEvaluator.java       |  2 +-
 .../server/core/api/event/SubstringEvaluator.java  |  2 +-
 .../context/CompareOperationContext.java           |  2 +-
 .../normalization/FilterNormalizingVisitor.java    |  2 +-
 .../server/core/api/schema/DescriptionParsers.java | 54 +++++++++---------
 .../synchronizers/RegistrySynchronizerAdaptor.java | 12 ++--
 .../synchronizers/SchemaSynchronizer.java          |  6 +-
 .../server/core/api/sp/LdapClassLoader.java        |  2 +-
 .../core/api/subtree/RefinementLeafEvaluator.java  |  2 +-
 .../core/api/entry/SchemaAwareEntryTest.java       | 66 +++++++++++-----------
 .../server/core/operations/add/AddIT.java          |  4 +-
 .../server/core/schema/SubschemaSubentryIT.java    | 20 +++----
 .../server/core/shared/SortedEntryComparator.java  |  4 +-
 .../shared/partition/DefaultPartitionNexus.java    |  4 +-
 .../server/core/DefaultOperationManager.java       |  6 +-
 .../core/kerberos/KeyDerivationInterceptor.java    |  4 +-
 .../core/admin/AdministrativePointInterceptor.java | 20 +++----
 .../core/authn/AuthenticationInterceptor.java      |  2 +-
 .../core/authz/AciAuthorizationInterceptor.java    |  8 +--
 .../authz/DefaultAuthorizationInterceptor.java     |  2 +-
 .../directory/server/core/authz/GroupCache.java    |  4 +-
 .../directory/server/core/authz/TupleCache.java    |  2 +-
 .../collective/CollectiveAttributeInterceptor.java |  6 +-
 .../core/exception/ExceptionInterceptor.java       |  2 +-
 .../core/hash/PasswordHashingInterceptor.java      |  2 +-
 .../normalization/NormalizationInterceptor.java    |  2 +-
 .../OperationalAttributeInterceptor.java           |  4 +-
 .../server/core/referral/ReferralInterceptor.java  |  4 +-
 .../server/core/schema/SchemaInterceptor.java      | 18 +++---
 .../server/core/subtree/SubentryInterceptor.java   |  4 +-
 .../server/core/trigger/TriggerInterceptor.java    |  4 +-
 .../server/core/trigger/TriggerSpecCache.java      |  2 +-
 .../partition/impl/btree/jdbm/JdbmPartition.java   |  8 +--
 .../partition/impl/btree/jdbm/JdbmStoreTest.java   |  8 +--
 .../api/operations/ClientAddRequestTest.java       |  6 +-
 .../api/operations/ClientModifyDnRequestTest.java  |  2 +-
 .../server/core/partition/ldif/LdifPartition.java  |  4 +-
 .../impl/btree/mavibot/MavibotPartition.java       |  2 +-
 .../impl/btree/mavibot/MavibotStoreTest.java       |  8 +--
 .../handlers/request/SearchRequestHandler.java     | 10 ++--
 .../consumer/ReplicationConsumerImpl.java          |  4 +-
 .../provider/SyncReplRequestHandler.java           |  4 +-
 .../server/config/ConfigPartitionReader.java       |  8 +--
 .../server/core/integ/TestCreateDsRule.java        |  8 +--
 .../integ/TestCreateLdapConnectionPoolRule.java    |  2 +-
 .../core/integ/TestCreateLdapServerRule.java       |  8 +--
 .../impl/btree/AbstractBTreePartition.java         | 34 +++++------
 .../xdbm/search/cursor/ApproximateCursor.java      |  2 +-
 .../server/xdbm/search/cursor/EqualityCursor.java  |  2 +-
 .../server/xdbm/search/cursor/GreaterEqCursor.java |  8 +--
 .../server/xdbm/search/cursor/LessEqCursor.java    |  8 +--
 .../xdbm/search/evaluator/GreaterEqEvaluator.java  |  2 +-
 .../xdbm/search/evaluator/LessEqEvaluator.java     |  4 +-
 .../xdbm/search/evaluator/SubstringEvaluator.java  |  8 +--
 .../server/xdbm/search/impl/CursorBuilder.java     |  4 +-
 .../server/xdbm/search/impl/DefaultOptimizer.java  |  6 +-
 .../server/xdbm/impl/avl/AvlPartitionTest.java     |  8 +--
 .../xdbm/search/impl/FilterNormalizingVisitor.java |  8 +--
 60 files changed, 229 insertions(+), 229 deletions(-)

diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java b/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java
index 9c2c86d..7ee502a 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/LdapCoreSessionConnection.java
@@ -343,7 +343,7 @@ public class LdapCoreSessionConnection extends AbstractLdapConnection
 
         if ( value.isHumanReadable() )
         {
-            compareRequest.setAssertionValue( value.getValue() );
+            compareRequest.setAssertionValue( value.getString() );
         }
         else
         {
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/entry/ServerEntryUtils.java b/core-api/src/main/java/org/apache/directory/server/core/api/entry/ServerEntryUtils.java
index 9ef03bb..6803020 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/entry/ServerEntryUtils.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/entry/ServerEntryUtils.java
@@ -86,7 +86,7 @@ public final class ServerEntryUtils
         {
             if ( attributeType.isHR() )
             {
-                attribute.add( value.getValue() );
+                attribute.add( value.getString() );
             }
             else
             {
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/event/LeafEvaluator.java b/core-api/src/main/java/org/apache/directory/server/core/api/event/LeafEvaluator.java
index 6173f05..d724d94 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/event/LeafEvaluator.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/event/LeafEvaluator.java
@@ -257,7 +257,7 @@ public class LeafEvaluator implements Evaluator
             }
             else
             {
-                value = new Value( attributeType, node.getValue().getValue() );
+                value = new Value( attributeType, node.getValue().getString() );
             }
         }
         else
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/event/SubstringEvaluator.java b/core-api/src/main/java/org/apache/directory/server/core/api/event/SubstringEvaluator.java
index f3e864f..1d9b153 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/event/SubstringEvaluator.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/event/SubstringEvaluator.java
@@ -99,7 +99,7 @@ public class SubstringEvaluator implements Evaluator
 
         for ( Value value : attr )
         {
-            String normValue = normalizer.normalize( value.getValue() );
+            String normValue = normalizer.normalize( value.getString() );
 
             // Once match is found cleanup and return true
 
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/CompareOperationContext.java b/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/CompareOperationContext.java
index ca2d54e..68df6b9 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/CompareOperationContext.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/interceptor/context/CompareOperationContext.java
@@ -246,7 +246,7 @@ public class CompareOperationContext extends AbstractOperationContext
             + ( ( value != null ) 
                 ? ", value :'"
                     + ( ( value.isHumanReadable() )
-                        ? value.getValue()
+                        ? value.getString()
                         : ( ( !value.isHumanReadable() )
                             ? Strings.dumpBytes( value.getBytes() )
                             : "unknown value type" ) )
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/normalization/FilterNormalizingVisitor.java b/core-api/src/main/java/org/apache/directory/server/core/api/normalization/FilterNormalizingVisitor.java
index af41653..318ff8c 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/normalization/FilterNormalizingVisitor.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/normalization/FilterNormalizingVisitor.java
@@ -142,7 +142,7 @@ public class FilterNormalizingVisitor implements FilterVisitor
 
             if ( attributeType.getSyntax().isHumanReadable() )
             {
-                normalized = new Value( attributeType, value.getValue() );
+                normalized = new Value( attributeType, value.getString() );
             }
             else
             {
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/schema/DescriptionParsers.java b/core-api/src/main/java/org/apache/directory/server/core/api/schema/DescriptionParsers.java
index 6ba4ee4..c128b27 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/schema/DescriptionParsers.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/schema/DescriptionParsers.java
@@ -130,7 +130,7 @@ public class DescriptionParsers
             try
             {
                 syntaxCheckerDescriptions[pos++] = syntaxCheckerParser
-                    .parse( value.getValue() );
+                    .parse( value.getString() );
             }
             catch ( ParseException e )
             {
@@ -161,13 +161,13 @@ public class DescriptionParsers
         {
             try
             {
-                normalizerDescriptions[pos++] = normalizerParser.parse( value.getValue() );
+                normalizerDescriptions[pos++] = normalizerParser.parse( value.getString() );
             }
             catch ( ParseException e )
             {
                 LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
                     ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_406,
-                        value.getValue() ) );
+                        value.getString() ) );
                 iave.initCause( e );
                 throw iave;
             }
@@ -192,13 +192,13 @@ public class DescriptionParsers
         {
             try
             {
-                comparatorDescriptions[pos++] = comparatorParser.parse( value.getValue() );
+                comparatorDescriptions[pos++] = comparatorParser.parse( value.getString() );
             }
             catch ( ParseException e )
             {
                 LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
                     ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_407,
-                        value.getValue() ) );
+                        value.getString() ) );
                 iave.initCause( e );
                 throw iave;
             }
@@ -233,13 +233,13 @@ public class DescriptionParsers
 
             try
             {
-                attributeType = attributeTypeParser.parse( value.getValue() );
+                attributeType = attributeTypeParser.parse( value.getString() );
             }
             catch ( ParseException e )
             {
                 LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
                     ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_408,
-                        value.getValue() ) );
+                        value.getString() ) );
                 iave.initCause( e );
                 throw iave;
             }
@@ -316,13 +316,13 @@ public class DescriptionParsers
 
             try
             {
-                objectClass = objectClassParser.parse( value.getValue() );
+                objectClass = objectClassParser.parse( value.getString() );
             }
             catch ( ParseException e )
             {
                 LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
                     ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_417,
-                        value.getValue() ) );
+                        value.getString() ) );
                 iave.initCause( e );
                 throw iave;
             }
@@ -404,14 +404,14 @@ public class DescriptionParsers
 
             try
             {
-                matchingRuleUse = matchingRuleUseParser.parse( value.getValue() );
-                matchingRuleUse.setSpecification( value.getValue() );
+                matchingRuleUse = matchingRuleUseParser.parse( value.getString() );
+                matchingRuleUse.setSpecification( value.getString() );
             }
             catch ( ParseException e )
             {
                 LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
                     ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_421,
-                        value.getValue() ) );
+                        value.getString() ) );
                 iave.initCause( e );
                 throw iave;
             }
@@ -448,14 +448,14 @@ public class DescriptionParsers
 
             try
             {
-                ldapSyntax = syntaxParser.parse( value.getValue() );
-                ldapSyntax.setSpecification( value.getValue() );
+                ldapSyntax = syntaxParser.parse( value.getString() );
+                ldapSyntax.setSpecification( value.getString() );
             }
             catch ( ParseException e )
             {
                 LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
                     ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_422,
-                        value.getValue() ) );
+                        value.getString() ) );
                 iave.initCause( e );
                 throw iave;
             }
@@ -500,14 +500,14 @@ public class DescriptionParsers
 
             try
             {
-                matchingRule = matchingRuleParser.parse( value.getValue() );
-                matchingRule.setSpecification( value.getValue() );
+                matchingRule = matchingRuleParser.parse( value.getString() );
+                matchingRule.setSpecification( value.getString() );
             }
             catch ( ParseException e )
             {
                 LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
                     ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_424,
-                        value.getValue() ) );
+                        value.getString() ) );
                 iave.initCause( e );
                 throw iave;
             }
@@ -550,14 +550,14 @@ public class DescriptionParsers
 
             try
             {
-                ditStructureRule = ditStructureRuleParser.parse( value.getValue() );
-                ditStructureRule.setSpecification( value.getValue() );
+                ditStructureRule = ditStructureRuleParser.parse( value.getString() );
+                ditStructureRule.setSpecification( value.getString() );
             }
             catch ( ParseException e )
             {
                 LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
                     ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_426,
-                        value.getValue() ) );
+                        value.getString() ) );
                 iave.initCause( e );
                 throw iave;
             }
@@ -594,14 +594,14 @@ public class DescriptionParsers
 
             try
             {
-                ditContentRule = ditContentRuleParser.parse( value.getValue() );
-                ditContentRule.setSpecification( value.getValue() );
+                ditContentRule = ditContentRuleParser.parse( value.getString() );
+                ditContentRule.setSpecification( value.getString() );
             }
             catch ( ParseException e )
             {
                 LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
                     ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_427,
-                        value.getValue() ) );
+                        value.getString() ) );
                 iave.initCause( e );
                 throw iave;
             }
@@ -638,14 +638,14 @@ public class DescriptionParsers
 
             try
             {
-                nameForm = nameFormParser.parse( value.getValue() );
-                nameForm.setSpecification( value.getValue() );
+                nameForm = nameFormParser.parse( value.getString() );
+                nameForm.setSpecification( value.getString() );
             }
             catch ( ParseException e )
             {
                 LdapInvalidAttributeValueException iave = new LdapInvalidAttributeValueException(
                     ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err( I18n.ERR_428,
-                        value.getValue() ) );
+                        value.getString() ) );
                 iave.initCause( e );
                 throw iave;
             }
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/schema/registries/synchronizers/RegistrySynchronizerAdaptor.java b/core-api/src/main/java/org/apache/directory/server/core/api/schema/registries/synchronizers/RegistrySynchronizerAdaptor.java
index 8000bc4..2a871aa 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/schema/registries/synchronizers/RegistrySynchronizerAdaptor.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/schema/registries/synchronizers/RegistrySynchronizerAdaptor.java
@@ -166,7 +166,7 @@ public class RegistrySynchronizerAdaptor
         for ( Value value : oc )
         {
 
-            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getValue() );
+            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getString() );
 
             if ( objectClass2synchronizerMap.containsKey( oid ) )
             {
@@ -233,7 +233,7 @@ public class RegistrySynchronizerAdaptor
 
         for ( Value value : oc )
         {
-            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getValue() );
+            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getString() );
 
             if ( objectClass2synchronizerMap.containsKey( oid ) )
             {
@@ -289,7 +289,7 @@ public class RegistrySynchronizerAdaptor
 
         for ( Value value : oc )
         {
-            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getValue() );
+            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getString() );
 
             if ( objectClass2synchronizerMap.containsKey( oid ) )
             {
@@ -330,7 +330,7 @@ public class RegistrySynchronizerAdaptor
 
         for ( Value value : oc )
         {
-            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getValue() );
+            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getString() );
 
             if ( objectClass2synchronizerMap.containsKey( oid ) )
             {
@@ -359,7 +359,7 @@ public class RegistrySynchronizerAdaptor
 
         for ( Value value : oc )
         {
-            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getValue() );
+            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getString() );
 
             if ( objectClass2synchronizerMap.containsKey( oid ) )
             {
@@ -389,7 +389,7 @@ public class RegistrySynchronizerAdaptor
 
         for ( Value value : oc )
         {
-            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getValue() );
+            String oid = schemaManager.getObjectClassRegistry().getOidByName( value.getString() );
 
             if ( objectClass2synchronizerMap.containsKey( oid ) )
             {
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/schema/registries/synchronizers/SchemaSynchronizer.java b/core-api/src/main/java/org/apache/directory/server/core/api/schema/registries/synchronizers/SchemaSynchronizer.java
index a38b110..c1b5563 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/schema/registries/synchronizers/SchemaSynchronizer.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/schema/registries/synchronizers/SchemaSynchronizer.java
@@ -456,7 +456,7 @@ public class SchemaSynchronizer implements RegistrySynchronizer
                     }
                     else
                     {
-                        isNewStateDisabled = "TRUE".equalsIgnoreCase( val.getValue() );
+                        isNewStateDisabled = "TRUE".equalsIgnoreCase( val.getString() );
                     }
                 }
 
@@ -546,7 +546,7 @@ public class SchemaSynchronizer implements RegistrySynchronizer
 
             for ( Value value : dependencies )
             {
-                String dependency = value.getValue();
+                String dependency = value.getString();
 
                 if ( !loaded.containsKey( dependency ) )
                 {
@@ -561,7 +561,7 @@ public class SchemaSynchronizer implements RegistrySynchronizer
         {
             for ( Value value : dependencies )
             {
-                String dependency = value.getValue();
+                String dependency = value.getString();
 
                 if ( schemaManager.getLoadedSchema( Strings.toLowerCaseAscii( dependency ) ) == null )
                 {
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/sp/LdapClassLoader.java b/core-api/src/main/java/org/apache/directory/server/core/api/sp/LdapClassLoader.java
index 440de4d..0594060 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/sp/LdapClassLoader.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/sp/LdapClassLoader.java
@@ -166,7 +166,7 @@ public class LdapClassLoader extends ClassLoader
 
                 for ( Value val : attr )
                 {
-                    Dn dn = directoryService.getDnFactory().create( val.getValue() );
+                    Dn dn = directoryService.getDnFactory().create( val.getString() );
                     searchContexts.add( dn );
                 }
 
diff --git a/core-api/src/main/java/org/apache/directory/server/core/api/subtree/RefinementLeafEvaluator.java b/core-api/src/main/java/org/apache/directory/server/core/api/subtree/RefinementLeafEvaluator.java
index 6c3ec68..a9ef544 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/api/subtree/RefinementLeafEvaluator.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/api/subtree/RefinementLeafEvaluator.java
@@ -107,7 +107,7 @@ public class RefinementLeafEvaluator
 
         // check if Ava value exists in attribute
         // If the filter value for the objectClass is an OID we need to resolve a name
-        String value = node.getValue().getValue();
+        String value = node.getValue().getString();
 
         if ( objectClasses.contains( value ) )
         {
diff --git a/core-api/src/test/java/org/apache/directory/server/core/api/entry/SchemaAwareEntryTest.java b/core-api/src/test/java/org/apache/directory/server/core/api/entry/SchemaAwareEntryTest.java
index ffd1fa0..ab3b698 100644
--- a/core-api/src/test/java/org/apache/directory/server/core/api/entry/SchemaAwareEntryTest.java
+++ b/core-api/src/test/java/org/apache/directory/server/core/api/entry/SchemaAwareEntryTest.java
@@ -332,7 +332,7 @@ public class SchemaAwareEntryTest
         Attribute attributeCN = entry.get( "dc" );
         assertEquals( 1, attributeCN.size() );
         assertNotNull( attributeCN.get() );
-        assertNull( attributeCN.get().getValue() );
+        assertNull( attributeCN.get().getString() );
 
         Value value1 = new Value( atCN, "test1" );
         Value value2 = new Value( atCN, "test2" );
@@ -619,7 +619,7 @@ public class SchemaAwareEntryTest
         entry.add( atEMail, "test1" );
         assertNotNull( entry.get( atEMail ) );
         assertEquals( 1, entry.get( atEMail ).size() );
-        assertEquals( "test1", entry.get( atEMail ).get().getValue() );
+        assertEquals( "test1", entry.get( atEMail ).get().getString() );
 
         // Test some more addition
         entry.add( atEMail, "test2", "test3" );
@@ -777,7 +777,7 @@ public class SchemaAwareEntryTest
         entry.add( atEMail, testEMail1 );
         assertNotNull( entry.get( atEMail ) );
         assertEquals( 1, entry.get( atEMail ).size() );
-        assertEquals( "test1", entry.get( atEMail ).get().getValue() );
+        assertEquals( "test1", entry.get( atEMail ).get().getString() );
 
         // Test some more addition
         entry.add( atEMail, testEMail2, testEMail3 );
@@ -872,7 +872,7 @@ public class SchemaAwareEntryTest
         assertEquals( "1.2.840.113549.1.9.1", entry.get( atEMail ).getId() );
         assertEquals( "EMail", entry.get( atEMail ).getUpId() );
         assertEquals( 1, entry.get( atEMail ).size() );
-        assertEquals( "test1", entry.get( atEMail ).get().getValue() );
+        assertEquals( "test1", entry.get( atEMail ).get().getString() );
 
         // Test some more addition
         entry.add( "EMail", "test2", "test3" );
@@ -994,7 +994,7 @@ public class SchemaAwareEntryTest
         entry.add( "eMail", test1 );
         assertNotNull( entry.get( atEMail ) );
         assertEquals( 1, entry.get( atEMail ).size() );
-        assertEquals( "test1", entry.get( atEMail ).get().getValue() );
+        assertEquals( "test1", entry.get( atEMail ).get().getString() );
         assertTrue( entry.containsAttribute( atEMail ) );
         assertEquals( "eMail", entry.get( atEMail ).getUpId() );
 
@@ -1092,7 +1092,7 @@ public class SchemaAwareEntryTest
         entry.add( "email", atEMail, "test1" );
         assertNotNull( entry.get( atEMail ) );
         assertEquals( 1, entry.get( atEMail ).size() );
-        assertEquals( "test1", entry.get( atEMail ).get().getValue() );
+        assertEquals( "test1", entry.get( atEMail ).get().getString() );
 
         // Test some more addition
         entry.add( "EMAIL", atEMail, "test2", "test3" );
@@ -1214,7 +1214,7 @@ public class SchemaAwareEntryTest
         entry.add( "eMail", atEMail, test1 );
         assertNotNull( entry.get( atEMail ) );
         assertEquals( 1, entry.get( atEMail ).size() );
-        assertEquals( "test1", entry.get( atEMail ).get().getValue() );
+        assertEquals( "test1", entry.get( atEMail ).get().getString() );
         assertTrue( entry.containsAttribute( atEMail ) );
         assertEquals( "eMail", entry.get( atEMail ).getUpId() );
 
@@ -2392,7 +2392,7 @@ public class SchemaAwareEntryTest
         assertEquals( 1, entry.size() );
         assertNotNull( entry.get( "userPassword" ) );
         assertEquals( 1, entry.get( "userPassword" ).size() );
-        assertNotNull( entry.get( "userPassword" ).get().getValue() );
+        assertNotNull( entry.get( "userPassword" ).get().getString() );
         assertTrue( entry.get( "userPassword" ).contains( BYTES1 ) );
 
         replaced = entry.put( "userPassword", BYTES1, BYTES2, BYTES1 );
@@ -2458,12 +2458,12 @@ public class SchemaAwareEntryTest
         assertEquals( 2, entry.size() );
         assertNotNull( entry.get( "cn" ) );
         assertEquals( 1, entry.get( "cn" ).size() );
-        assertNotNull( entry.get( "cn" ).get().getValue() );
+        assertNotNull( entry.get( "cn" ).get().getString() );
         assertTrue( entry.get( "cn" ).contains( "test" ) );
 
         replaced = entry.put( "cN", "test1", "test2", "test1" );
         assertNotNull( replaced );
-        assertEquals( "test", replaced.get().getValue() );
+        assertEquals( "test", replaced.get().getString() );
 
         assertEquals( 2, entry.size() );
         assertNotNull( entry.get( "cn" ) );
@@ -2528,7 +2528,7 @@ public class SchemaAwareEntryTest
         assertNotNull( entry.get( "domainComponent" ) );
         assertEquals( 1, entry.get( "domainComponent" ).size() );
         assertNotNull( entry.get( "domainComponent" ).get() );
-        assertNull( entry.get( "domainComponent" ).get().getValue() );
+        assertNull( entry.get( "domainComponent" ).get().getString() );
         entry.removeAttributes( "dc" );
 
         replaced = entry.put( "DC", strValue3 );
@@ -2536,7 +2536,7 @@ public class SchemaAwareEntryTest
         assertEquals( 1, entry.size() );
         assertNotNull( entry.get( "dc" ) );
         assertEquals( 1, entry.get( "dc" ).size() );
-        assertNotNull( entry.get( "dc" ).get().getValue() );
+        assertNotNull( entry.get( "dc" ).get().getString() );
         assertTrue( entry.get( "dc" ).contains( strValue3 ) );
 
         replaced = entry.put( "dC", strValue1, strValue2, strValue1 );
@@ -2589,7 +2589,7 @@ public class SchemaAwareEntryTest
 
         assertEquals( 1, entry.size() );
         assertNotNull( entry.get( "l" ) );
-        assertEquals( "france", entry.get( "l" ).get().getValue() );
+        assertEquals( "france", entry.get( "l" ).get().getString() );
 
         Attribute sb = new DefaultAttribute( atC, "countryTest" );
         Attribute sc = new DefaultAttribute( atGN, "test" );
@@ -2598,11 +2598,11 @@ public class SchemaAwareEntryTest
 
         assertEquals( 4, entry.size() );
         assertNotNull( entry.get( atC ) );
-        assertEquals( "countryTest", entry.get( atC ).get().getValue() );
+        assertEquals( "countryTest", entry.get( atC ).get().getString() );
         assertNotNull( entry.get( atGN ) );
-        assertEquals( "test", entry.get( atGN ).get().getValue() );
+        assertEquals( "test", entry.get( atGN ).get().getString() );
         assertNotNull( entry.get( atStreet ) );
-        assertEquals( "testStreet", entry.get( atStreet ).get().getValue() );
+        assertEquals( "testStreet", entry.get( atStreet ).get().getString() );
 
         // Test a replacement
         Attribute sbb = new DefaultAttribute( atC, "countryTestTest" );
@@ -2610,15 +2610,15 @@ public class SchemaAwareEntryTest
         List<Attribute> result = entry.put( sbb, scc );
 
         assertEquals( 2, result.size() );
-        assertEquals( "countryTest", result.get( 0 ).get().getValue() );
-        assertEquals( "test", result.get( 1 ).get().getValue() );
+        assertEquals( "countryTest", result.get( 0 ).get().getString() );
+        assertEquals( "test", result.get( 1 ).get().getString() );
         assertEquals( 4, entry.size() );
         assertNotNull( entry.get( atC ) );
-        assertEquals( "countryTestTest", entry.get( atC ).get().getValue() );
+        assertEquals( "countryTestTest", entry.get( atC ).get().getString() );
         assertNotNull( entry.get( atGN ) );
-        assertEquals( "testtest", entry.get( atGN ).get().getValue() );
+        assertEquals( "testtest", entry.get( atGN ).get().getString() );
         assertNotNull( entry.get( atStreet ) );
-        assertEquals( "testStreet", entry.get( atStreet ).get().getValue() );
+        assertEquals( "testStreet", entry.get( atStreet ).get().getString() );
 
         // test an ObjectClass replacement
         AttributeType OBJECT_CLASS_AT = schemaManager.lookupAttributeTypeRegistry( SchemaConstants.OBJECT_CLASS_AT );
@@ -2653,7 +2653,7 @@ public class SchemaAwareEntryTest
         entry.put( atEMail, ( String ) null );
         assertEquals( 1, entry.size() );
         assertEquals( "email", entry.get( atEMail ).getUpId() );
-        assertNull( entry.get( atEMail ).get().getValue() );
+        assertNull( entry.get( atEMail ).get().getString() );
 
         // Check that we can't use invalid arguments
         try
@@ -2672,7 +2672,7 @@ public class SchemaAwareEntryTest
         assertEquals( 1, entry.size() );
         assertEquals( "email", entry.get( atEMail ).getUpId() );
         assertEquals( 1, entry.get( atEMail ).size() );
-        assertEquals( "test", entry.get( atEMail ).get().getValue() );
+        assertEquals( "test", entry.get( atEMail ).get().getString() );
 
         // Add more than one value
         entry.put( atEMail, "test1", "test2", "test3" );
@@ -2794,7 +2794,7 @@ public class SchemaAwareEntryTest
         assertEquals( 2, entry.size() );
         assertEquals( "cn", entry.get( atCN ).getUpId() );
         assertEquals( 1, entry.get( atCN ).size() );
-        assertEquals( "test", entry.get( atCN ).get().getValue() );
+        assertEquals( "test", entry.get( atCN ).get().getString() );
 
         // Add more than one value
         entry.put( atCN, new Value( atCN, "test1" ), new Value( atCN, "test2" ), new Value( atCN,
@@ -2835,7 +2835,7 @@ public class SchemaAwareEntryTest
 
         assertEquals( 1, entry.size() );
         assertEquals( "email", entry.get( atEMail ).getUpId() );
-        assertNull( entry.get( atEMail ).get().getValue() );
+        assertNull( entry.get( atEMail ).get().getString() );
 
         // Check that we can't use invalid arguments
         try
@@ -2854,7 +2854,7 @@ public class SchemaAwareEntryTest
         assertEquals( 1, entry.size() );
         assertEquals( "email", entry.get( atEMail ).getUpId() );
         assertEquals( 1, entry.get( atEMail ).size() );
-        assertEquals( "test", entry.get( atEMail ).get().getValue() );
+        assertEquals( "test", entry.get( atEMail ).get().getString() );
 
         // Add more than one value
         entry.put( "email", "test1", "test2", "test3" );
@@ -2972,21 +2972,21 @@ public class SchemaAwareEntryTest
         assertEquals( 1, entry.size() );
         assertEquals( "email", entry.get( atEMail ).getUpId() );
         assertTrue( entry.containsAttribute( "email" ) );
-        assertNull( entry.get( atEMail ).get().getValue() );
+        assertNull( entry.get( atEMail ).get().getString() );
 
         // Check that we can use a null AttributeType
         entry.put( "email", ( AttributeType ) null, ( String ) null );
         assertEquals( 1, entry.size() );
         assertEquals( "email", entry.get( atEMail ).getUpId() );
         assertTrue( entry.containsAttribute( "email" ) );
-        assertNull( entry.get( atEMail ).get().getValue() );
+        assertNull( entry.get( atEMail ).get().getString() );
 
         // Test that we can use a null upId
         entry.put( null, atEMail, ( String ) null );
         assertEquals( 1, entry.size() );
         assertEquals( "email", entry.get( atEMail ).getUpId() );
         assertTrue( entry.containsAttribute( "email" ) );
-        assertNull( entry.get( atEMail ).get().getValue() );
+        assertNull( entry.get( atEMail ).get().getString() );
 
         try
         {
@@ -3111,7 +3111,7 @@ public class SchemaAwareEntryTest
         assertEquals( 1, entry.size() );
         assertEquals( "domainComponent", entry.get( atDC ).getUpId() );
         assertTrue( entry.containsAttribute( "dc" ) );
-        assertNull( entry.get( atDC ).get().getValue() );
+        assertNull( entry.get( atDC ).get().getString() );
 
         // Check that we can use a null AttributeType
         entry.put( "domainComponent", ( AttributeType ) null, ( Value ) null );
@@ -3119,14 +3119,14 @@ public class SchemaAwareEntryTest
         assertEquals( 1, entry.size() );
         assertEquals( "domainComponent", entry.get( atDC ).getUpId() );
         assertTrue( entry.containsAttribute( "dc" ) );
-        assertNull( entry.get( atDC ).get().getValue() );
+        assertNull( entry.get( atDC ).get().getString() );
 
         // Test that we can use a null upId
         entry.put( null, atDC, ( Value ) null );
         assertEquals( 1, entry.size() );
         assertEquals( "dc", entry.get( atDC ).getUpId() );
         assertTrue( entry.containsAttribute( "dc" ) );
-        assertNull( entry.get( atDC ).get().getValue() );
+        assertNull( entry.get( atDC ).get().getString() );
 
         // Test that we can't use an upId which is not compatible
         // with the AT
@@ -3182,7 +3182,7 @@ public class SchemaAwareEntryTest
         assertEquals( 1, entry.size() );
         assertEquals( "domainComponent", entry.get( atDC ).getUpId() );
         assertTrue( entry.containsAttribute( "dc" ) );
-        assertNull( entry.get( atDC ).get().getValue() );
+        assertNull( entry.get( atDC ).get().getString() );
 
         // Test that we can add some new attributes with values
         Value test1 = new Value( atDC, "test1" );
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/operations/add/AddIT.java b/core-integ/src/test/java/org/apache/directory/server/core/operations/add/AddIT.java
index e126e68..ee52f3d 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/operations/add/AddIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/operations/add/AddIT.java
@@ -156,7 +156,7 @@ public class AddIT extends AbstractLdapTestUnit
 
         entry = connection.lookup( entry.getDn(), SchemaConstants.ALL_USER_ATTRIBUTES );
         assertEquals( 1, entry.get( "cn" ).size() );
-        assertEquals( "#\\+, \"\u00F6\u00E9\"", entry.get( "cn" ).get().getValue() );
+        assertEquals( "#\\+, \"\u00F6\u00E9\"", entry.get( "cn" ).get().getString() );
     }
 
 
@@ -176,7 +176,7 @@ public class AddIT extends AbstractLdapTestUnit
 
         entry = connection.lookup( entry.getDn(), SchemaConstants.ALL_USER_ATTRIBUTES );
         assertEquals( 1, entry.get( "cn" ).size() );
-        assertEquals( "a\\b", entry.get( "cn" ).get().getValue() );
+        assertEquals( "a\\b", entry.get( "cn" ).get().getString() );
     }
 
 }
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java b/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java
index f45f3b3..7f93ebd 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java
@@ -240,7 +240,7 @@ public class SubschemaSubentryIT extends AbstractLdapTestUnit
 
         for ( Value value : attrTypes )
         {
-            String desc = value.getValue();
+            String desc = value.getString();
 
             if ( desc.indexOf( oid ) != -1 )
             {
@@ -402,7 +402,7 @@ public class SubschemaSubentryIT extends AbstractLdapTestUnit
 
         for ( Value value : attrTypes )
         {
-            String desc = value.getValue();
+            String desc = value.getString();
 
             if ( desc.indexOf( oid ) != -1 )
             {
@@ -548,7 +548,7 @@ public class SubschemaSubentryIT extends AbstractLdapTestUnit
 
         for ( Value value : attrTypes )
         {
-            String desc = value.getValue();
+            String desc = value.getString();
 
             if ( desc.indexOf( oid ) != -1 )
             {
@@ -696,7 +696,7 @@ public class SubschemaSubentryIT extends AbstractLdapTestUnit
 
         for ( Value value : attrTypes )
         {
-            String desc = value.getValue();
+            String desc = value.getString();
 
             if ( desc.indexOf( oid ) != -1 )
             {
@@ -858,7 +858,7 @@ public class SubschemaSubentryIT extends AbstractLdapTestUnit
 
         for ( Value value : attrTypes )
         {
-            String desc = value.getValue();
+            String desc = value.getString();
 
             if ( desc.indexOf( oid ) != -1 )
             {
@@ -1060,7 +1060,7 @@ public class SubschemaSubentryIT extends AbstractLdapTestUnit
 
         for ( Value value : attrTypes )
         {
-            String desc = value.getValue();
+            String desc = value.getString();
 
             if ( desc.indexOf( oid ) != -1 )
             {
@@ -1339,7 +1339,7 @@ public class SubschemaSubentryIT extends AbstractLdapTestUnit
 
         for ( Value value : attributeTypes )
         {
-            String desc = value.getValue();
+            String desc = value.getString();
 
             if ( desc.indexOf( "1.3.6.1.4.1.18060.0.4.0.2.10000" ) != -1 )
             {
@@ -1391,7 +1391,7 @@ public class SubschemaSubentryIT extends AbstractLdapTestUnit
 
         for ( Value value : attributeTypes )
         {
-            String desc = value.getValue();
+            String desc = value.getString();
 
             if ( desc.indexOf( "1.3.6.1.4.1.18060.0.4.0.2.10000" ) != -1 )
             {
@@ -1472,7 +1472,7 @@ public class SubschemaSubentryIT extends AbstractLdapTestUnit
 
         for ( Value value : attributeTypes )
         {
-            String desc = value.getValue();
+            String desc = value.getString();
 
             if ( desc.indexOf( "1.3.6.1.4.1.18060.0.4.0.2.10000" ) != -1 )
             {
@@ -1528,7 +1528,7 @@ public class SubschemaSubentryIT extends AbstractLdapTestUnit
 
         for ( Value value : attrTypes )
         {
-            String desc = value.getValue();
+            String desc = value.getString();
 
             if ( desc.indexOf( oid ) != -1 )
             {
diff --git a/core-shared/src/main/java/org/apache/directory/server/core/shared/SortedEntryComparator.java b/core-shared/src/main/java/org/apache/directory/server/core/shared/SortedEntryComparator.java
index 8856bf9..ab0bacc 100644
--- a/core-shared/src/main/java/org/apache/directory/server/core/shared/SortedEntryComparator.java
+++ b/core-shared/src/main/java/org/apache/directory/server/core/shared/SortedEntryComparator.java
@@ -146,8 +146,8 @@ class SortedEntryComparator implements Comparator<Entry>, Serializable
 
             if ( hr )
             {
-                o1 = v1.getValue();
-                o2 = v2.getValue();
+                o1 = v1.getString();
+                o2 = v2.getString();
             }
             else
             {
diff --git a/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java b/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java
index 2fc769a..5466b0a 100644
--- a/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java
+++ b/core-shared/src/main/java/org/apache/directory/server/core/shared/partition/DefaultPartitionNexus.java
@@ -225,7 +225,7 @@ public class DefaultPartitionNexus extends AbstractPartition implements Partitio
             schemaManager = directoryService.getSchemaManager();
 
             Value attr = rootDse.get( SchemaConstants.SUBSCHEMA_SUBENTRY_AT ).get();
-            subschemaSubentryDn = directoryService.getDnFactory().create( attr.getValue() );
+            subschemaSubentryDn = directoryService.getDnFactory().create( attr.getString() );
 
             List<Partition> initializedPartitions = new ArrayList<>();
 
@@ -889,7 +889,7 @@ public class DefaultPartitionNexus extends AbstractPartition implements Partitio
 
             for ( Value namingContext : namingContexts )
             {
-                String normalizedNC = new Dn( schemaManager, namingContext.getValue() ).getNormName();
+                String normalizedNC = new Dn( schemaManager, namingContext.getString() ).getNormName();
 
                 if ( partitionSuffix.equals( normalizedNC ) )
                 {
diff --git a/core/src/main/java/org/apache/directory/server/core/DefaultOperationManager.java b/core/src/main/java/org/apache/directory/server/core/DefaultOperationManager.java
index 18a94bd..4c347d0 100644
--- a/core/src/main/java/org/apache/directory/server/core/DefaultOperationManager.java
+++ b/core/src/main/java/org/apache/directory/server/core/DefaultOperationManager.java
@@ -223,7 +223,7 @@ public class DefaultOperationManager implements OperationManager
             for ( Value url : refs )
             {
                 // we have to replace the parent by the referral
-                LdapUrl ldapUrl = new LdapUrl( url.getValue() );
+                LdapUrl ldapUrl = new LdapUrl( url.getString() );
 
                 // We have a problem with the Dn : we can't use the UpName,
                 // as we may have some spaces around the ',' and '+'.
@@ -265,7 +265,7 @@ public class DefaultOperationManager implements OperationManager
             // we have to replace the parent by the referral
             try
             {
-                LdapUrl ldapUrl = new LdapUrl( url.getValue() );
+                LdapUrl ldapUrl = new LdapUrl( url.getString() );
 
                 StringBuilder urlString = new StringBuilder();
 
@@ -310,7 +310,7 @@ public class DefaultOperationManager implements OperationManager
             catch ( LdapURLEncodingException luee )
             {
                 // The URL is not correct, returns it as is
-                urls.add( url.getValue() );
+                urls.add( url.getString() );
             }
         }
 
diff --git a/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java b/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java
index 3e93f5c..38b651c 100644
--- a/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java
+++ b/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java
@@ -143,7 +143,7 @@ public class KeyDerivationInterceptor extends BaseInterceptor
 
             // Get the entry's password. We will use the first one.
             Value userPassword = entry.get( userPasswordAT ).get();
-            String strUserPassword = userPassword.getValue();
+            String strUserPassword = userPassword.getString();
 
             String principalName = entry.get( krb5PrincipalNameAT ).getString();
 
@@ -269,7 +269,7 @@ public class KeyDerivationInterceptor extends BaseInterceptor
 
                 if ( firstValue.isHumanReadable() )
                 {
-                    password = firstValue.getValue();
+                    password = firstValue.getString();
                     LOG.debug( "{} Attribute id : 'userPassword',  Values : [ '{}' ]", operation, password );
                     LOG_KRB.debug( "{} Attribute id : 'userPassword',  Values : [ '{}' ]", operation, password );
                 }
diff --git a/interceptors/admin/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java b/interceptors/admin/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java
index 2e907c8..4c6a6e2 100644
--- a/interceptors/admin/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java
+++ b/interceptors/admin/src/main/java/org/apache/directory/server/core/admin/AdministrativePointInterceptor.java
@@ -259,7 +259,7 @@ public class AdministrativePointInterceptor extends BaseInterceptor
 
         for ( Value value : adminPoint )
         {
-            String role = value.getValue();
+            String role = value.getString();
 
             // Deal with AccessControl AP
             if ( isAccessControlSpecificRole( role ) )
@@ -597,7 +597,7 @@ public class AdministrativePointInterceptor extends BaseInterceptor
      */
     private void checkAddRole( Value role, Attribute adminPoint, Dn dn ) throws LdapException
     {
-        String roleStr = Strings.toLowerCaseAscii( Strings.trim( role.getValue() ) );
+        String roleStr = Strings.toLowerCaseAscii( Strings.trim( role.getString() ) );
 
         // Check that the added AdministrativeRole is valid
         if ( !ROLES.contains( roleStr ) )
@@ -652,7 +652,7 @@ public class AdministrativePointInterceptor extends BaseInterceptor
      */
     private void checkDelRole( Value role, Attribute adminPoint, Dn dn ) throws LdapException
     {
-        String roleStr = Strings.toLowerCaseAscii( Strings.trim( role.getValue() ) );
+        String roleStr = Strings.toLowerCaseAscii( Strings.trim( role.getString() ) );
 
         // Check that the removed AdministrativeRole is valid
         if ( !ROLES.contains( roleStr ) )
@@ -830,7 +830,7 @@ public class AdministrativePointInterceptor extends BaseInterceptor
         // Remove the APs in the AP cache
         for ( Value value : adminPoint )
         {
-            String role = value.getValue();
+            String role = value.getString();
 
             // Deal with Autonomous AP : delete the 4 associated SAP/AAP
             if ( isAutonomousAreaRole( role ) )
@@ -1258,7 +1258,7 @@ public class AdministrativePointInterceptor extends BaseInterceptor
             // any other check, as the deleted entry has no children.
             for ( Value role : adminPoint )
             {
-                if ( !isValidRole( role.getValue() ) )
+                if ( !isValidRole( role.getString() ) )
                 {
                     String message = "Cannot remove the given role, it's not a valid one :" + role;
                     LOG.error( message );
@@ -1365,7 +1365,7 @@ public class AdministrativePointInterceptor extends BaseInterceptor
                             case ADD_ATTRIBUTE:
                                 for ( Value role : attribute )
                                 {
-                                    addRole( role.getValue(), dn, uuid, acapCache, caapCache, teapCache,
+                                    addRole( role.getString(), dn, uuid, acapCache, caapCache, teapCache,
                                         ssapCache );
 
                                     // Add the role to the modified attribute
@@ -1381,7 +1381,7 @@ public class AdministrativePointInterceptor extends BaseInterceptor
                                     // Complete removal. Loop on all the existing roles and remove them
                                     for ( Value role : modifiedAdminRole )
                                     {
-                                        delRole( role.getValue(), dn, uuid, acapCache, caapCache, teapCache, ssapCache );
+                                        delRole( role.getString(), dn, uuid, acapCache, caapCache, teapCache, ssapCache );
                                     }
 
                                     modifiedAdminRole.clear();
@@ -1391,10 +1391,10 @@ public class AdministrativePointInterceptor extends BaseInterceptor
                                 // Now deal with the values to remove
                                 for ( Value value : attribute )
                                 {
-                                    if ( !isValidRole( value.getValue() ) )
+                                    if ( !isValidRole( value.getString() ) )
                                     {
                                         // Not a valid role : we will throw an exception
-                                        String msg = "Invalid role : " + value.getValue();
+                                        String msg = "Invalid role : " + value.getString();
                                         LOG.error( msg );
                                         throw new LdapInvalidAttributeValueException(
                                             ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX,
@@ -1411,7 +1411,7 @@ public class AdministrativePointInterceptor extends BaseInterceptor
                                     }
 
                                     modifiedAdminRole.remove( value );
-                                    delRole( value.getValue(), dn, uuid, acapCache, caapCache, teapCache, ssapCache );
+                                    delRole( value.getString(), dn, uuid, acapCache, caapCache, teapCache, ssapCache );
 
                                 }
 
diff --git a/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/AuthenticationInterceptor.java b/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/AuthenticationInterceptor.java
index 01f8328..e596e7b 100644
--- a/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/AuthenticationInterceptor.java
+++ b/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/AuthenticationInterceptor.java
@@ -1904,7 +1904,7 @@ public class AuthenticationInterceptor extends BaseInterceptor
         while ( itr.hasNext() )
         {
             Value value = itr.next();
-            String failureTime = value.getValue();
+            String failureTime = value.getString();
             long time = DateUtils.getDate( failureTime ).getTime();
             time += interval;
 
diff --git a/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java b/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java
index a20d588..34e4300 100644
--- a/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java
+++ b/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java
@@ -304,7 +304,7 @@ public class AciAuthorizationInterceptor extends BaseInterceptor
         // stuff for dealing with subentries (garbage for now)
         Value subschemaSubentry = directoryService.getPartitionNexus().getRootDseValue(
             directoryService.getAtProvider().getSubschemaSubentry() );
-        subschemaSubentryDn = dnFactory.create( subschemaSubentry.getValue() );
+        subschemaSubentryDn = dnFactory.create( subschemaSubentry.getString() );
 
         // Init the caches now
         initTupleCache();
@@ -395,7 +395,7 @@ public class AciAuthorizationInterceptor extends BaseInterceptor
 
         for ( Value value : subentries )
         {
-            String subentryDnStr = value.getValue();
+            String subentryDnStr = value.getString();
             Dn subentryDn = dnFactory.create( subentryDnStr );
             tuples.addAll( tupleCache.getACITuples( subentryDn.getNormName() ) );
         }
@@ -421,7 +421,7 @@ public class AciAuthorizationInterceptor extends BaseInterceptor
 
         for ( Value value : entryAci )
         {
-            String aciString = value.getValue();
+            String aciString = value.getString();
             ACIItem item;
 
             try
@@ -481,7 +481,7 @@ public class AciAuthorizationInterceptor extends BaseInterceptor
 
         for ( Value value : subentryAci )
         {
-            String aciString = value.getValue();
+            String aciString = value.getString();
             ACIItem item;
 
             try
diff --git a/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java b/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java
index 9adde87..615f695 100644
--- a/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java
+++ b/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java
@@ -172,7 +172,7 @@ public class DefaultAuthorizationInterceptor extends BaseInterceptor
 
         for ( Value value : uniqueMember )
         {
-            Dn memberDn = dnFactory.create( value.getValue() );
+            Dn memberDn = dnFactory.create( value.getString() );
             newAdministrators.add( memberDn.getNormName() );
         }
 
diff --git a/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/GroupCache.java b/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/GroupCache.java
index 31cc443..5dc6eef 100644
--- a/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/GroupCache.java
+++ b/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/GroupCache.java
@@ -246,7 +246,7 @@ public class GroupCache
         {
 
             // get and normalize the Dn of the member
-            String member = value.getValue();
+            String member = value.getString();
             Dn memberDn = null;
 
             try
@@ -276,7 +276,7 @@ public class GroupCache
         for ( Value value : members )
         {
             // get and normalize the Dn of the member
-            String member = value.getValue();
+            String member = value.getString();
             Dn memberDn = null;
 
             try
diff --git a/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/TupleCache.java b/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/TupleCache.java
index d38cc49..18e4bdb 100644
--- a/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/TupleCache.java
+++ b/interceptors/authz/src/main/java/org/apache/directory/server/core/authz/TupleCache.java
@@ -216,7 +216,7 @@ public class TupleCache
         // store the associated tuples into the cache
         for ( Value value : prescriptiveAci )
         {
-            String aci = value.getValue();
+            String aci = value.getString();
             ACIItem item = null;
 
             try
diff --git a/interceptors/collective/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeInterceptor.java b/interceptors/collective/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeInterceptor.java
index e1f5b1a..2f5a709 100644
--- a/interceptors/collective/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeInterceptor.java
+++ b/interceptors/collective/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeInterceptor.java
@@ -383,7 +383,7 @@ public class CollectiveAttributeInterceptor extends BaseInterceptor
 
             for ( Value value : collectiveExclusions )
             {
-                AttributeType attrType = schemaManager.lookupAttributeTypeRegistry( value.getValue() );
+                AttributeType attrType = schemaManager.lookupAttributeTypeRegistry( value.getString() );
                 exclusions.add( attrType );
                 LOG.debug( "Adding {} in the list of excluded collectiveAttributes", attrType.getName() );
             }
@@ -396,7 +396,7 @@ public class CollectiveAttributeInterceptor extends BaseInterceptor
          */
         for ( Value value : collectiveAttributeSubentries )
         {
-            String subentryDnStr = value.getValue();
+            String subentryDnStr = value.getString();
             Dn subentryDn = dnFactory.create( subentryDnStr );
 
             LOG.debug( "Applying subentries {}", subentryDn.getName() );
@@ -469,7 +469,7 @@ public class CollectiveAttributeInterceptor extends BaseInterceptor
                 for ( Value subentryColVal : subentryColAttr )
                 {
                     LOG.debug( "Adding the {} collective attribute into the entry", subentryColAttr );
-                    entryColAttr.add( subentryColVal.getValue() );
+                    entryColAttr.add( subentryColVal.getString() );
                 }
             }
         }
diff --git a/interceptors/exception/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java b/interceptors/exception/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java
index 81bbefa..c9b848d 100644
--- a/interceptors/exception/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java
+++ b/interceptors/exception/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java
@@ -107,7 +107,7 @@ public class ExceptionInterceptor extends BaseInterceptor
         super.init( directoryService );
         nexus = directoryService.getPartitionNexus();
         Value attr = nexus.getRootDseValue( directoryService.getAtProvider().getSubschemaSubentry() );
-        subschemSubentryDn = dnFactory.create( attr.getValue() );
+        subschemSubentryDn = dnFactory.create( attr.getString() );
     }
 
 
diff --git a/interceptors/hash/src/main/java/org/apache/directory/server/core/hash/PasswordHashingInterceptor.java b/interceptors/hash/src/main/java/org/apache/directory/server/core/hash/PasswordHashingInterceptor.java
index 17994d5..2e09c16 100644
--- a/interceptors/hash/src/main/java/org/apache/directory/server/core/hash/PasswordHashingInterceptor.java
+++ b/interceptors/hash/src/main/java/org/apache/directory/server/core/hash/PasswordHashingInterceptor.java
@@ -152,7 +152,7 @@ public abstract class PasswordHashingInterceptor extends BaseInterceptor
         // Special case : deal with a potential empty value. We may have more than one
         for ( Value userPassword : pwdAt )
         {
-            if ( Strings.isEmpty( userPassword.getValue() ) )
+            if ( Strings.isEmpty( userPassword.getString() ) )
             {
                 continue;
             }
diff --git a/interceptors/normalization/src/main/java/org/apache/directory/server/core/normalization/NormalizationInterceptor.java b/interceptors/normalization/src/main/java/org/apache/directory/server/core/normalization/NormalizationInterceptor.java
index 2180a15..d9fe43c 100644
--- a/interceptors/normalization/src/main/java/org/apache/directory/server/core/normalization/NormalizationInterceptor.java
+++ b/interceptors/normalization/src/main/java/org/apache/directory/server/core/normalization/NormalizationInterceptor.java
@@ -577,7 +577,7 @@ public class NormalizationInterceptor extends BaseInterceptor
         for ( Ava ava : rdn )
         {
             Value value = ava.getValue();
-            String upValue = ava.getValue().getValue();
+            String upValue = ava.getValue().getString();
             String upId = ava.getType();
 
             // Check that the entry contains this Ava
diff --git a/interceptors/operational/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java b/interceptors/operational/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java
index 5f4562d..44d0304 100644
--- a/interceptors/operational/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java
+++ b/interceptors/operational/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java
@@ -220,7 +220,7 @@ public class OperationalAttributeInterceptor extends BaseInterceptor
         // stuff for dealing with subentries (garbage for now)
         Value subschemaSubentry = directoryService.getPartitionNexus().getRootDseValue(
             directoryService.getAtProvider().getSubschemaSubentry() );
-        subschemaSubentryDn = dnFactory.create( subschemaSubentry.getValue() );
+        subschemaSubentryDn = dnFactory.create( subschemaSubentry.getString() );
 
         // Create the Admin Dn
         adminDn = dnFactory.create( ServerDNConstants.ADMIN_SYSTEM_DN );
@@ -645,7 +645,7 @@ public class OperationalAttributeInterceptor extends BaseInterceptor
             {
                 Ava atav = atavs.next();
                 String type = schemaManager.lookupAttributeTypeRegistry( rdn.getNormType() ).getName();
-                buf.append( type ).append( '=' ).append( atav.getValue().getValue() );
+                buf.append( type ).append( '=' ).append( atav.getValue().getString() );
 
                 if ( atavs.hasNext() )
                 {
diff --git a/interceptors/referral/src/main/java/org/apache/directory/server/core/referral/ReferralInterceptor.java b/interceptors/referral/src/main/java/org/apache/directory/server/core/referral/ReferralInterceptor.java
index 21b839f..8b23ee7 100644
--- a/interceptors/referral/src/main/java/org/apache/directory/server/core/referral/ReferralInterceptor.java
+++ b/interceptors/referral/src/main/java/org/apache/directory/server/core/referral/ReferralInterceptor.java
@@ -82,7 +82,7 @@ public class ReferralInterceptor extends BaseInterceptor
 
     private static void checkRefAttributeValue( Value value ) throws LdapException
     {
-        String refVal = value.getValue();
+        String refVal = value.getString();
 
         LdapUrl ldapUrl = new LdapUrl( refVal );
 
@@ -204,7 +204,7 @@ public class ReferralInterceptor extends BaseInterceptor
         directoryService.setReferralManager( referralManager );
 
         Value subschemaSubentry = nexus.getRootDseValue( directoryService.getAtProvider().getSubschemaSubentry() );
-        subschemaSubentryDn = dnFactory.create( subschemaSubentry.getValue() );
+        subschemaSubentryDn = dnFactory.create( subschemaSubentry.getString() );
     }
 
 
diff --git a/interceptors/schema/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java b/interceptors/schema/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java
index c61823c..cc688dc 100644
--- a/interceptors/schema/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java
+++ b/interceptors/schema/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java
@@ -172,7 +172,7 @@ public class SchemaInterceptor extends BaseInterceptor
 
         // stuff for dealing with subentries (garbage for now)
         Value subschemaSubentry = nexus.getRootDseValue( directoryService.getAtProvider().getSubschemaSubentry() );
-        subschemaSubentryDn = dnFactory.create( subschemaSubentry.getValue() );
+        subschemaSubentryDn = dnFactory.create( subschemaSubentry.getString() );
 
         computeSuperiors();
 
@@ -491,7 +491,7 @@ public class SchemaInterceptor extends BaseInterceptor
 
         for ( Value objectClass : objectClasses )
         {
-            String objectClassName = objectClass.getValue();
+            String objectClassName = objectClass.getString();
 
             if ( SchemaConstants.TOP_OC.equals( objectClassName ) )
             {
@@ -527,7 +527,7 @@ public class SchemaInterceptor extends BaseInterceptor
         // Loop on all objectclasses
         for ( Value value : objectClasses )
         {
-            String ocName = value.getValue();
+            String ocName = value.getString();
             ObjectClass oc = schemaManager.lookupObjectClassRegistry( ocName );
 
             List<AttributeType> types = oc.getMustAttributeTypes();
@@ -556,7 +556,7 @@ public class SchemaInterceptor extends BaseInterceptor
         // Loop on all objectclasses
         for ( Value objectClass : objectClasses )
         {
-            String ocName = objectClass.getValue();
+            String ocName = objectClass.getString();
             ObjectClass oc = schemaManager.lookupObjectClassRegistry( ocName );
 
             List<AttributeType> types = oc.getMayAttributeTypes();
@@ -598,7 +598,7 @@ public class SchemaInterceptor extends BaseInterceptor
         // Construct the new list of ObjectClasses
         for ( Value ocValue : objectClassAttr )
         {
-            String ocName = ocValue.getValue();
+            String ocName = ocValue.getString();
 
             if ( !ocName.equalsIgnoreCase( SchemaConstants.TOP_OC ) )
             {
@@ -977,7 +977,7 @@ public class SchemaInterceptor extends BaseInterceptor
             {
                 try
                 {
-                    String supName = sup.getValue();
+                    String supName = sup.getString();
 
                     ObjectClass superior = schemaManager.lookupObjectClassRegistry( supName );
 
@@ -1480,7 +1480,7 @@ public class SchemaInterceptor extends BaseInterceptor
                 SimpleNode node = ( SimpleNode ) filter;
                 String objectClass;
 
-                objectClass = node.getValue().getValue();
+                objectClass = node.getValue().getString();
 
                 String objectClassOid;
 
@@ -1729,9 +1729,9 @@ public class SchemaInterceptor extends BaseInterceptor
                     continue;
                 }
 
-                if ( !syntaxChecker.isValidSyntax( value.getValue() ) )
+                if ( !syntaxChecker.isValidSyntax( value.getString() ) )
                 {
-                    String message = I18n.err( I18n.ERR_280, value.getValue(), attribute.getUpId() );
+                    String message = I18n.err( I18n.ERR_280, value.getString(), attribute.getUpId() );
                     LOG.info( message );
                     throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX );
                 }
diff --git a/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java b/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
index 7acc649..5db5782 100644
--- a/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
+++ b/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
@@ -631,7 +631,7 @@ public class SubentryInterceptor extends BaseInterceptor
                     case ADD_ATTRIBUTE:
                         for ( Value value : mod.getAttribute() )
                         {
-                            ocFinalState.add( value.getValue() );
+                            ocFinalState.add( value.getString() );
                         }
 
                         break;
@@ -639,7 +639,7 @@ public class SubentryInterceptor extends BaseInterceptor
                     case REMOVE_ATTRIBUTE:
                         for ( Value value : mod.getAttribute() )
                         {
-                            ocFinalState.remove( value.getValue() );
+                            ocFinalState.remove( value.getString() );
                         }
 
                         break;
diff --git a/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java b/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java
index 9ce12b7..aa45899 100644
--- a/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java
+++ b/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java
@@ -157,7 +157,7 @@ public class TriggerInterceptor extends BaseInterceptor
 
         for ( Value value : subentries )
         {
-            Dn subentryDn = new Dn( directoryService.getSchemaManager(), value.getValue() );
+            Dn subentryDn = new Dn( directoryService.getSchemaManager(), value.getString() );
             triggerSpecs.addAll( triggerSpecCache.getSubentryTriggerSpecs( subentryDn ) );
         }
     }
@@ -183,7 +183,7 @@ public class TriggerInterceptor extends BaseInterceptor
 
         for ( Value value : entryTrigger )
         {
-            String triggerString = value.getValue();
+            String triggerString = value.getString();
             TriggerSpecification item;
 
             try
diff --git a/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java b/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java
index c60a2ac..e8c453b 100644
--- a/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java
+++ b/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java
@@ -199,7 +199,7 @@ public class TriggerSpecCache
 
             try
             {
-                item = triggerSpecParser.parse( value.getValue() );
+                item = triggerSpecParser.parse( value.getString() );
                 subentryTriggerSpecs.add( item );
             }
             catch ( ParseException e )
diff --git a/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java b/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java
index 26533c7..263ec91 100644
--- a/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java
+++ b/jdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java
@@ -194,7 +194,7 @@ public class JdbmPartition extends AbstractBTreePartition
 
                 for ( Value value : objectClass )
                 {
-                    String valueStr = value.getValue();
+                    String valueStr = value.getString();
 
                     if ( valueStr.equals( SchemaConstants.TOP_OC ) )
                     {
@@ -232,7 +232,7 @@ public class JdbmPartition extends AbstractBTreePartition
 
                     for ( Value value : adminRoles )
                     {
-                        adminRoleIdx.add( partitionTxn, value.getValue(), id );
+                        adminRoleIdx.add( partitionTxn, value.getString(), id );
                     }
 
                     // Adds only those attributes that are indexed
@@ -255,7 +255,7 @@ public class JdbmPartition extends AbstractBTreePartition
 
                         for ( Value value : attribute )
                         {
-                            idx.add( partitionTxn, value.getValue(), id );
+                            idx.add( partitionTxn, value.getString(), id );
                         }
 
                         // Adds only those attributes that are indexed
@@ -751,7 +751,7 @@ public class JdbmPartition extends AbstractBTreePartition
                     {
                         for ( Value value : entryAttr )
                         {
-                            index.add( partitionTxn, value.getValue(), id );
+                            index.add( partitionTxn, value.getString(), id );
                         }
     
                         // Adds only those attributes that are indexed
diff --git a/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java b/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java
index fcdd992..99fa0d4 100644
--- a/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java
+++ b/jdbm-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java
@@ -837,16 +837,16 @@ public class JdbmStoreTest
 
         Entry lookedup = partition.fetch( partitionTxn, partition.getEntryId( partitionTxn, dn ), dn );
 
-        assertEquals( "WAlkeR", lookedup.get( "sn" ).get().getValue() ); // before replacing
+        assertEquals( "WAlkeR", lookedup.get( "sn" ).get().getString() ); // before replacing
 
         lookedup = partition.modify( partitionTxn, dn, add );
-        assertEquals( attribVal, lookedup.get( "sn" ).get().getValue() );
+        assertEquals( attribVal, lookedup.get( "sn" ).get().getString() );
 
         // testing the store.modify( dn, mod, entry ) API
         Modification replace = new DefaultModification( ModificationOperation.REPLACE_ATTRIBUTE, SN_AT, "JWalker" );
 
         lookedup = partition.modify( partitionTxn, dn, replace );
-        assertEquals( "JWalker", lookedup.get( "sn" ).get().getValue() );
+        assertEquals( "JWalker", lookedup.get( "sn" ).get().getString() );
         assertEquals( 1, lookedup.get( "sn" ).size() );
     }
 
@@ -919,6 +919,6 @@ public class JdbmStoreTest
         assertNull( lookedup.get( "ou" ) ); // before replacing
 
         lookedup = partition.modify( partitionTxn, dn, add );
-        assertEquals( attribVal, lookedup.get( "ou" ).get().getValue() );
+        assertEquals( attribVal, lookedup.get( "ou" ).get().getString() );
     }
 }
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
index 80c1c2b..62971df 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientAddRequestTest.java
@@ -296,7 +296,7 @@ public class ClientAddRequestTest extends AbstractLdapTestUnit
         assertNotNull( loadedEntry );
         assertTrue( loadedEntry.containsAttribute( "cn" ) );
 
-        String cn = loadedEntry.get( "cn" ).get().getValue();
+        String cn = loadedEntry.get( "cn" ).get().getString();
 
         assertEquals( "a+B", cn );
     }
@@ -322,7 +322,7 @@ public class ClientAddRequestTest extends AbstractLdapTestUnit
         assertNotNull( loadedEntry );
         assertTrue( loadedEntry.containsAttribute( "cn" ) );
 
-        String cn = loadedEntry.get( "cn" ).get().getValue();
+        String cn = loadedEntry.get( "cn" ).get().getString();
 
         assertEquals( "a+b", cn );
     }
@@ -356,7 +356,7 @@ public class ClientAddRequestTest extends AbstractLdapTestUnit
 
         for ( Value value : attribute )
         {
-            String val = value.getValue();
+            String val = value.getString();
 
             assertTrue( expected.contains( val ) );
             count++;
diff --git a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java
index b600052..d49758f 100644
--- a/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java
+++ b/ldap-client-test/src/test/java/org/apache/directory/shared/client/api/operations/ClientModifyDnRequestTest.java
@@ -137,7 +137,7 @@ public class ClientModifyDnRequestTest extends AbstractLdapTestUnit
         assertNotNull( entry );
 
         Rdn oldRdn = oldDn.getRdn();
-        assertTrue( entry.contains( oldRdn.getType(), oldRdn.getAva().getValue().getValue() ) );
+        assertTrue( entry.contains( oldRdn.getType(), oldRdn.getAva().getValue().getString() ) );
     }
 
 
diff --git a/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java b/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java
index a893729..b5e555f 100644
--- a/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java
+++ b/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java
@@ -740,7 +740,7 @@ public class LdifPartition extends AbstractLdifPartition
             
             if ( at.getSyntax().isHumanReadable() )
             {
-                normValue = ava.getValue().getValue();
+                normValue = ava.getValue().getString();
             }
             else
             {
@@ -779,7 +779,7 @@ public class LdifPartition extends AbstractLdifPartition
             String atName = at.getName();
 
             // Now, get the normalized value
-            String normValue = rdn.getAva().getValue().getValue();
+            String normValue = rdn.getAva().getValue().getString();
 
             if ( isFirst )
             {
diff --git a/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotPartition.java b/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotPartition.java
index da7a18f..42ea6a9 100644
--- a/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotPartition.java
+++ b/mavibot-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotPartition.java
@@ -402,7 +402,7 @@ public class MavibotPartition extends AbstractBTreePartition
                 {
                     for ( Value value : entryAttr )
                     {
-                        index.add( partitionTxn, value.getValue(), id );
+                        index.add( partitionTxn, value.getString(), id );
                     }
 
                     // Adds only those attributes that are indexed
diff --git a/mavibot-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotStoreTest.java b/mavibot-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotStoreTest.java
index 69406bf..0fdd337 100644
--- a/mavibot-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotStoreTest.java
+++ b/mavibot-partition/src/test/java/org/apache/directory/server/core/partition/impl/btree/mavibot/MavibotStoreTest.java
@@ -768,16 +768,16 @@ public class MavibotStoreTest
 
         Entry lookedup = store.fetch( partitionTxn, store.getEntryId( partitionTxn, dn ), dn );
 
-        assertEquals( "WAlkeR", lookedup.get( "sn" ).get().getValue() ); // before replacing
+        assertEquals( "WAlkeR", lookedup.get( "sn" ).get().getString() ); // before replacing
 
         lookedup = store.modify( partitionTxn, dn, add );
-        assertEquals( attribVal, lookedup.get( "sn" ).get().getValue() );
+        assertEquals( attribVal, lookedup.get( "sn" ).get().getString() );
 
         // testing the store.modify( dn, mod, entry ) API
         Modification replace = new DefaultModification( ModificationOperation.REPLACE_ATTRIBUTE, SN_AT, "JWalker" );
 
         lookedup = store.modify( partitionTxn, dn, replace );
-        assertEquals( "JWalker", lookedup.get( "sn" ).get().getValue() );
+        assertEquals( "JWalker", lookedup.get( "sn" ).get().getString() );
         assertEquals( 1, lookedup.get( "sn" ).size() );
     }
 
@@ -839,7 +839,7 @@ public class MavibotStoreTest
         assertNull( lookedup.get( "ou" ) ); // before replacing
 
         lookedup = store.modify( partitionTxn, dn, add );
-        assertEquals( attribVal, lookedup.get( "ou" ).get().getValue() );
+        assertEquals( attribVal, lookedup.get( "ou" ).get().getString() );
     }
 
 
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java
index 82bb76e..fe454fc 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java
@@ -871,7 +871,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
 
             for ( Value val : ref )
             {
-                String url = val.getValue();
+                String url = val.getString();
 
                 if ( !url.startsWith( "ldap" ) )
                 {
@@ -1371,7 +1371,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
 
         for ( Value refval : refAttr )
         {
-            String refstr = refval.getValue();
+            String refstr = refval.getString();
 
             // need to add non-ldap URLs as-is
             if ( !refstr.startsWith( "ldap" ) )
@@ -1434,7 +1434,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
         PartitionNexus nexus = ds.getPartitionNexus();
 
         Value subschemaSubentry = nexus.getRootDseValue( ds.getAtProvider().getSubschemaSubentry() );
-        Dn subschemaSubentryDn = ds.getDnFactory().create( subschemaSubentry.getValue() );
+        Dn subschemaSubentryDn = ds.getDnFactory().create( subschemaSubentry.getString() );
 
         return subschemaSubentryDn.equals( base );
     }
@@ -1465,7 +1465,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
 
         for ( Value value : refAttr )
         {
-            String ref = value.getValue();
+            String ref = value.getString();
 
             if ( IS_DEBUG )
             {
@@ -1550,7 +1550,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
 
         for ( Value value : refAttr )
         {
-            String ref = value.getValue();
+            String ref = value.getString();
 
             if ( IS_DEBUG )
             {
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java
index 0ba592b..8c39963 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java
@@ -1308,7 +1308,7 @@ public class ReplicationConsumerImpl implements ConnectionClosedEventListener, R
         {
             String uuid = Strings.uuidToString( limitedUuidList.get( 0 ) );
 
-            filter = new EqualityNode<String>( SchemaConstants.ENTRY_UUID_AT, new Value( uuid ).getValue() );
+            filter = new EqualityNode<String>( SchemaConstants.ENTRY_UUID_AT, new Value( uuid ).getString() );
             if ( isRefreshPresent )
             {
                 filter = new NotNode( filter );
@@ -1328,7 +1328,7 @@ public class ReplicationConsumerImpl implements ConnectionClosedEventListener, R
             for ( int i = 0; i < size; i++ )
             {
                 String uuid = Strings.uuidToString( limitedUuidList.get( i ) );
-                ExprNode uuidEqNode = new EqualityNode<String>( SchemaConstants.ENTRY_UUID_AT, new Value( uuid ) .getValue() );
+                ExprNode uuidEqNode = new EqualityNode<String>( SchemaConstants.ENTRY_UUID_AT, new Value( uuid ) .getString() );
 
                 if ( isRefreshPresent )
                 {
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java
index 9c63f1a..b51720d 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java
@@ -797,7 +797,7 @@ public class SyncReplRequestHandler implements ReplicationRequestHandler
 
             for ( Value val : ref )
             {
-                String url = val.getValue();
+                String url = val.getString();
 
                 if ( !url.startsWith( "ldap" ) )
                 {
@@ -979,7 +979,7 @@ public class SyncReplRequestHandler implements ReplicationRequestHandler
     private EqualityNode<String> newIsReferralEqualityNode( LdapSession session ) throws Exception
     {
         return new EqualityNode<>( SchemaConstants.OBJECT_CLASS_AT, 
-            new Value( objectClassAT, SchemaConstants.REFERRAL_OC ).getValue() );
+            new Value( objectClassAT, SchemaConstants.REFERRAL_OC ).getString() );
     }
 
 
diff --git a/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java b/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
index 80a015d..0d4cc2d 100644
--- a/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
+++ b/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
@@ -126,7 +126,7 @@ public class ConfigPartitionReader
         // Create the set of candidates
         for ( Value ocValue : objectClass )
         {
-            String ocName = ocValue.getValue();
+            String ocName = ocValue.getString();
             String ocOid = schemaManager.getObjectClassRegistry().getOidByName( ocName );
             ObjectClass oc = schemaManager.getObjectClassRegistry().get( ocOid );
 
@@ -139,7 +139,7 @@ public class ConfigPartitionReader
         // Now find the parent OC
         for ( Value ocValue : objectClass )
         {
-            String ocName = ocValue.getValue();
+            String ocName = ocValue.getString();
             String ocOid = schemaManager.getObjectClassRegistry().getOidByName( ocName );
             ObjectClass oc = schemaManager.getObjectClassRegistry().get( ocOid );
 
@@ -245,7 +245,7 @@ public class ConfigPartitionReader
         
         if ( value != null )
         {
-            valueStr = value.getValue();
+            valueStr = value.getString();
         }
 
         Class<?> type = beanField.getType();
@@ -324,7 +324,7 @@ public class ConfigPartitionReader
         // loop on the values and inject them in the bean
         for ( Value value : attribute )
         {
-            String valueStr = value.getValue();
+            String valueStr = value.getString();
 
             try
             {
diff --git a/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateDsRule.java b/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateDsRule.java
index c37e17b..ca4545e 100755
--- a/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateDsRule.java
+++ b/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateDsRule.java
@@ -101,12 +101,12 @@ public class TestCreateDsRule
             Dn dn = new Dn( "cn=class,ou=system" );
             Entry entry = createDsRule.getDirectoryService().getAdminSession().lookup( dn );
             assertNotNull( entry );
-            assertEquals( "class", entry.get( "cn" ).get().getValue() );
+            assertEquals( "class", entry.get( "cn" ).get().getString() );
 
             dn = new Dn( "cn=classDsOnly,ou=system" );
             entry = createDsRule.getDirectoryService().getAdminSession().lookup( dn );
             assertNotNull( entry );
-            assertEquals( "classDsOnly", entry.get( "cn" ).get().getValue() );
+            assertEquals( "classDsOnly", entry.get( "cn" ).get().getString() );
         }
         catch ( LdapException e )
         {
@@ -133,7 +133,7 @@ public class TestCreateDsRule
             Dn dn = new Dn( "cn=classAndMethodDs,ou=system" );
             Entry entry = createDsRule.getDirectoryService().getAdminSession().lookup( dn );
             assertNotNull( entry );
-            assertEquals( "classAndMethodDs", entry.get( "cn" ).get().getValue() );
+            assertEquals( "classAndMethodDs", entry.get( "cn" ).get().getString() );
         }
         catch ( LdapException e )
         {
@@ -159,7 +159,7 @@ public class TestCreateDsRule
             Dn dn = new Dn( "cn=class,ou=system" );
             Entry entry = classCreateDsRule.getDirectoryService().getAdminSession().lookup( dn );
             assertNotNull( entry );
-            assertEquals( "class", entry.get( "cn" ).get().getValue() );
+            assertEquals( "class", entry.get( "cn" ).get().getString() );
         }
         catch ( LdapException e ) 
         {
diff --git a/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateLdapConnectionPoolRule.java b/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateLdapConnectionPoolRule.java
index 2bb6571..ea3775a 100755
--- a/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateLdapConnectionPoolRule.java
+++ b/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateLdapConnectionPoolRule.java
@@ -127,7 +127,7 @@ public class TestCreateLdapConnectionPoolRule
             Dn dn = new Dn( "cn=class,ou=system" );
             Entry entry = ldapConnection.lookup( dn );
             assertNotNull( entry );
-            assertEquals( "class", entry.get( "cn" ).get().getValue() );
+            assertEquals( "class", entry.get( "cn" ).get().getString() );
         }
         catch ( LdapException e )
         {
diff --git a/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateLdapServerRule.java b/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateLdapServerRule.java
index 9ee5284..18b9f23 100755
--- a/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateLdapServerRule.java
+++ b/test-framework/src/test/java/org/apache/directory/server/core/integ/TestCreateLdapServerRule.java
@@ -126,7 +126,7 @@ public class TestCreateLdapServerRule
             Dn dn = new Dn( "cn=methodDs,ou=system" );
             Entry entry = ldapConnection.lookup( dn );
             assertNotNull( entry );
-            assertEquals( "methodDs", entry.get( "cn" ).get().getValue() );
+            assertEquals( "methodDs", entry.get( "cn" ).get().getString() );
     
             try
             {
@@ -184,7 +184,7 @@ public class TestCreateLdapServerRule
             Dn dn = new Dn( "cn=class,ou=system" );
             Entry entry = ldapConnection.lookup( dn );
             assertNotNull( entry );
-            assertEquals( "class", entry.get( "cn" ).get().getValue() );
+            assertEquals( "class", entry.get( "cn" ).get().getString() );
         }
         catch ( LdapException e )
         {
@@ -222,7 +222,7 @@ public class TestCreateLdapServerRule
             Dn dn = new Dn( "cn=class,ou=system" );
             Entry entry = directoryService.getAdminSession().lookup( dn );
             assertNotNull( entry );
-            assertEquals( "class", entry.get( "cn" ).get().getValue() );
+            assertEquals( "class", entry.get( "cn" ).get().getString() );
     
             LOG.debug( "getting network connection" );
             ldapServer.getPort();
@@ -232,7 +232,7 @@ public class TestCreateLdapServerRule
     
             entry = ldapConnection.lookup( dn );
             assertNotNull( entry );
-            assertEquals( "class", entry.get( "cn" ).get().getValue() );
+            assertEquals( "class", entry.get( "cn" ).get().getString() );
         }
         catch ( LdapException e )
         {
diff --git a/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/AbstractBTreePartition.java b/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/AbstractBTreePartition.java
index 60b7b6e..51fd374 100644
--- a/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/AbstractBTreePartition.java
+++ b/xdbm-partition/src/main/java/org/apache/directory/server/core/partition/impl/btree/AbstractBTreePartition.java
@@ -828,7 +828,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
                     continue;
                 }
                 
-                String normalizedOc = objectClassNormalizer.normalize( value.getValue() );
+                String normalizedOc = objectClassNormalizer.normalize( value.getString() );
 
                 objectClassIdx.add( partitionTxn, normalizedOc, id );
             }
@@ -859,7 +859,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
 
                 for ( Value value : adminRoles )
                 {
-                    adminRoleIdx.add( partitionTxn, value.getValue(), id );
+                    adminRoleIdx.add( partitionTxn, value.getString(), id );
                 }
 
                 // Adds only those attributes that are indexed
@@ -1081,7 +1081,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
                     continue;
                 }
                 
-                String normalizedOc = objectClassNormalizer.normalize( value.getValue() );
+                String normalizedOc = objectClassNormalizer.normalize( value.getString() );
 
                 objectClassIdx.drop( partitionTxn, normalizedOc, id );
             }
@@ -1101,7 +1101,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
 
                 for ( Value value : adminRoles )
                 {
-                    adminRoleIdx.drop( partitionTxn, value.getValue(), id );
+                    adminRoleIdx.drop( partitionTxn, value.getString(), id );
                 }
 
                 // Deletes only those attributes that are indexed
@@ -1500,7 +1500,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
                     continue;
                 }
                 
-                String normalizedOc = objectClassNormalizer.normalize( value.getValue() );
+                String normalizedOc = objectClassNormalizer.normalize( value.getString() );
 
                 objectClassIdx.add( partitionTxn, normalizedOc, id );
             }
@@ -1535,7 +1535,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
             // We may have more than one role 
             for ( Value value : mods )
             {
-                adminRoleIdx.add( partitionTxn, value.getValue(), id );
+                adminRoleIdx.add( partitionTxn, value.getString(), id );
             }
 
             // If the attr didn't exist for this id add it to presence index
@@ -1611,7 +1611,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
                     continue;
                 }
                 
-                String normalizedOc = objectClassNormalizer.normalize( value.getValue() );
+                String normalizedOc = objectClassNormalizer.normalize( value.getString() );
 
                 objectClassIdx.drop( partitionTxn, normalizedOc, id );
             }
@@ -1623,7 +1623,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
                     continue;
                 }
                 
-                String normalizedOc = objectClassNormalizer.normalize( value.getValue() );
+                String normalizedOc = objectClassNormalizer.normalize( value.getString() );
 
                 objectClassIdx.add( partitionTxn, normalizedOc, id );
             }
@@ -1670,7 +1670,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
                     continue;
                 }
                 
-                String normalizedOc = objectClassNormalizer.normalize( value.getValue() );
+                String normalizedOc = objectClassNormalizer.normalize( value.getString() );
 
                 objectClassIdx.drop( partitionTxn, normalizedOc, id );
             }
@@ -1678,7 +1678,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
             // And add the new ones 
             for ( Value value : mods )
             {
-                String valueStr = value.getValue();
+                String valueStr = value.getString();
 
                 if ( valueStr.equals( topOCValue ) )
                 {
@@ -1759,7 +1759,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
                         continue;
                     }
                     
-                    String normalizedOc = objectClassNormalizer.normalize( value.getValue() );
+                    String normalizedOc = objectClassNormalizer.normalize( value.getString() );
 
                     objectClassIdx.drop( partitionTxn, normalizedOc, id );
                 }
@@ -1773,7 +1773,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
                         continue;
                     }
                     
-                    String normalizedOc = objectClassNormalizer.normalize( value.getValue() );
+                    String normalizedOc = objectClassNormalizer.normalize( value.getString() );
 
                     objectClassIdx.drop( partitionTxn, normalizedOc, id );
                 }
@@ -1831,7 +1831,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
             // We may have more than one role 
             for ( Value value : mods )
             {
-                adminRoleIdx.drop( partitionTxn, value.getValue(), id );
+                adminRoleIdx.drop( partitionTxn, value.getString(), id );
             }
 
             /*
@@ -2336,7 +2336,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
         for ( Ava newAtav : newRdn )
         {
             String newNormType = newAtav.getNormType();
-            Object newNormValue = newAtav.getValue().getValue();
+            Object newNormValue = newAtav.getValue().getString();
 
             AttributeType newRdnAttrType = schemaManager.lookupAttributeTypeRegistry( newNormType );
 
@@ -2353,7 +2353,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
                 {
                     Index<?, String> userIndex = getUserIndex( newRdnAttrType );
 
-                    String normalized = oldAttributeType.getEquality().getNormalizer().normalize( oldAttribute.get().getValue() );
+                    String normalized = oldAttributeType.getEquality().getNormalizer().normalize( oldAttribute.get().getString() );
                     ( ( Index ) userIndex ).drop( partitionTxn, normalized, id );
 
                     /*
@@ -2370,7 +2370,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
 
             if ( newRdnAttrType.getSyntax().isHumanReadable() )
             {
-                entry.add( newRdnAttrType, newAtav.getValue().getValue() );
+                entry.add( newRdnAttrType, newAtav.getValue().getString() );
             }
             else
             {
@@ -2445,7 +2445,7 @@ public abstract class AbstractBTreePartition extends AbstractPartition implement
                 if ( mustRemove )
                 {
                     String oldNormType = oldAtav.getNormType();
-                    String oldNormValue = oldAtav.getValue().getValue();
+                    String oldNormValue = oldAtav.getValue().getString();
                     AttributeType oldRdnAttrType = schemaManager.lookupAttributeTypeRegistry( oldNormType );
                     entry.remove( oldRdnAttrType, oldNormValue );
 
diff --git a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/ApproximateCursor.java b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/ApproximateCursor.java
index c971178..c12a954 100644
--- a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/ApproximateCursor.java
+++ b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/ApproximateCursor.java
@@ -100,7 +100,7 @@ public class ApproximateCursor<V> extends AbstractIndexCursor<V>
         if ( store.hasIndexOn( attributeType ) )
         {
             Index<V, String> index = ( Index<V, String> ) store.getIndex( attributeType );
-            userIdxCursor = index.forwardCursor( partitionTxn, ( V ) value.getValue() );
+            userIdxCursor = index.forwardCursor( partitionTxn, ( V ) value.getString() );
             uuidIdxCursor = null;
         }
         else
diff --git a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/EqualityCursor.java b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/EqualityCursor.java
index 759a518..c21bd50 100644
--- a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/EqualityCursor.java
+++ b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/EqualityCursor.java
@@ -98,7 +98,7 @@ public class EqualityCursor<V> extends AbstractIndexCursor<V>
         if ( store.hasIndexOn( attributeType ) )
         {
             Index<V, String> userIndex = ( Index<V, String> ) store.getIndex( attributeType );
-            String normalizedValue = attributeType.getEquality().getNormalizer().normalize( value.getValue() );
+            String normalizedValue = attributeType.getEquality().getNormalizer().normalize( value.getString() );
             userIdxCursor = userIndex.forwardCursor( partitionTxn, ( V ) normalizedValue );
             uuidIdxCursor = null;
         }
diff --git a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/GreaterEqCursor.java b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/GreaterEqCursor.java
index e3d284b..af40777 100644
--- a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/GreaterEqCursor.java
+++ b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/GreaterEqCursor.java
@@ -140,7 +140,7 @@ public class GreaterEqCursor<V> extends AbstractIndexCursor<V>
              * underlying userIdx Cursor position the element.
              */
             if ( greaterEqEvaluator.getComparator().compare( element.getKey(),
-                greaterEqEvaluator.getExpression().getValue().getValue() ) <= 0 )
+                greaterEqEvaluator.getExpression().getValue().getString() ) <= 0 )
             {
                 beforeFirst();
                 return;
@@ -167,7 +167,7 @@ public class GreaterEqCursor<V> extends AbstractIndexCursor<V>
         if ( userIdxCursor != null )
         {
             int comparedValue = greaterEqEvaluator.getComparator().compare( element.getKey(),
-                greaterEqEvaluator.getExpression().getValue().getValue() );
+                greaterEqEvaluator.getExpression().getValue().getString() );
 
             /*
              * First we need to check and make sure this element is within
@@ -214,7 +214,7 @@ public class GreaterEqCursor<V> extends AbstractIndexCursor<V>
         if ( userIdxCursor != null )
         {
             IndexEntry<V, String> advanceTo = new IndexEntry<>();
-            String normalizedNode = greaterEqEvaluator.getNormalizer().normalize( greaterEqEvaluator.getExpression().getValue().getValue() );
+            String normalizedNode = greaterEqEvaluator.getNormalizer().normalize( greaterEqEvaluator.getExpression().getValue().getString() );
             advanceTo.setKey( ( V ) normalizedNode );
             userIdxCursor.before( advanceTo );
         }
@@ -291,7 +291,7 @@ public class GreaterEqCursor<V> extends AbstractIndexCursor<V>
                 IndexEntry<?, String> candidate = userIdxCursor.get();
 
                 if ( greaterEqEvaluator.getComparator().compare( candidate.getKey(),
-                    greaterEqEvaluator.getExpression().getValue().getValue() ) >= 0 )
+                    greaterEqEvaluator.getExpression().getValue().getString() ) >= 0 )
                 {
                     return setAvailable( true );
                 }
diff --git a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/LessEqCursor.java b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/LessEqCursor.java
index 1d70d96..ee4df3a 100644
--- a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/LessEqCursor.java
+++ b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/cursor/LessEqCursor.java
@@ -145,7 +145,7 @@ public class LessEqCursor<V> extends AbstractIndexCursor<V>
              * before() method of the userIdxCursor.
              */
             int compareValue = lessEqEvaluator.getComparator().compare( element.getKey(),
-                lessEqEvaluator.getExpression().getValue().getValue() );
+                lessEqEvaluator.getExpression().getValue().getString() );
 
             if ( compareValue > 0 )
             {
@@ -181,7 +181,7 @@ public class LessEqCursor<V> extends AbstractIndexCursor<V>
         if ( userIdxCursor != null )
         {
             int comparedValue = lessEqEvaluator.getComparator().compare( element.getKey(),
-                lessEqEvaluator.getExpression().getValue().getValue() );
+                lessEqEvaluator.getExpression().getValue().getString() );
 
             /*
              * First we need to check and make sure this element is within
@@ -244,7 +244,7 @@ public class LessEqCursor<V> extends AbstractIndexCursor<V>
             IndexEntry<V, String> advanceTo = new IndexEntry<>();
             //noinspection unchecked
             String normalizedKey = lessEqEvaluator.getAttributeType().getEquality().getNormalizer().normalize( 
-                lessEqEvaluator.getExpression().getValue().getValue() );
+                lessEqEvaluator.getExpression().getValue().getString() );
             
             advanceTo.setKey( ( V ) normalizedKey );
             userIdxCursor.after( advanceTo );
@@ -339,7 +339,7 @@ public class LessEqCursor<V> extends AbstractIndexCursor<V>
                 IndexEntry<?, String> candidate = userIdxCursor.get();
 
                 if ( lessEqEvaluator.getComparator().compare( candidate.getKey(),
-                    lessEqEvaluator.getExpression().getValue().getValue() ) <= 0 )
+                    lessEqEvaluator.getExpression().getValue().getString() ) <= 0 )
                 {
                     return setAvailable( true );
                 }
diff --git a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/GreaterEqEvaluator.java b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/GreaterEqEvaluator.java
index 543ffca..b56c03c 100644
--- a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/GreaterEqEvaluator.java
+++ b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/GreaterEqEvaluator.java
@@ -239,7 +239,7 @@ public class GreaterEqEvaluator<T> extends LeafEvaluator<T>
             {
                 if ( indexEntry != null )
                 {
-                    indexEntry.setKey( value.getValue() );
+                    indexEntry.setKey( value.getString() );
                 }
                 
                 return true;
diff --git a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/LessEqEvaluator.java b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/LessEqEvaluator.java
index f28a101..7b43655 100644
--- a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/LessEqEvaluator.java
+++ b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/LessEqEvaluator.java
@@ -228,11 +228,11 @@ public class LessEqEvaluator<T> extends LeafEvaluator<T>
          */
         for ( Value value : attribute )
         {
-            if ( ldapComparator.compare( value.getValue(), node.getValue().getValue() ) <= 0 )
+            if ( ldapComparator.compare( value.getString(), node.getValue().getString() ) <= 0 )
             {
                 if ( indexEntry != null )
                 {
-                    indexEntry.setKey( value.getValue() );
+                    indexEntry.setKey( value.getString() );
                 }
                 
                 return true;
diff --git a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/SubstringEvaluator.java b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/SubstringEvaluator.java
index 82f7b7b..39f76c0 100644
--- a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/SubstringEvaluator.java
+++ b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/evaluator/SubstringEvaluator.java
@@ -156,7 +156,7 @@ public class SubstringEvaluator implements Evaluator<SubstringNode>
             {
                 for ( Value value : attr )
                 {
-                    String strValue = value.getValue();
+                    String strValue = value.getString();
                     String normalizedValue = attr.getAttributeType().getEquality().getNormalizer().normalize( strValue );
 
                     // Once match is found cleanup and return true
@@ -219,7 +219,7 @@ public class SubstringEvaluator implements Evaluator<SubstringNode>
                      */
                     for ( Value value : attr )
                     {
-                        String strValue = value.getValue();
+                        String strValue = value.getString();
                         String normalizedValue = attr.getAttributeType().getEquality().getNormalizer().normalize( strValue );
 
                         // Once match is found cleanup and return true
@@ -259,7 +259,7 @@ public class SubstringEvaluator implements Evaluator<SubstringNode>
              */
             for ( Value value : attr )
             {
-                String strValue = value.getValue();
+                String strValue = value.getString();
 
                 // Once match is found cleanup and return true
                 if ( regex.matcher( strValue ).matches() )
@@ -298,7 +298,7 @@ public class SubstringEvaluator implements Evaluator<SubstringNode>
                      */
                     for ( Value value : attr )
                     {
-                        String strValue = value.getValue();
+                        String strValue = value.getString();
 
                         // Once match is found cleanup and return true
                         if ( regex.matcher( strValue ).matches() )
diff --git a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/CursorBuilder.java b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/CursorBuilder.java
index f308b61..31649c9 100644
--- a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/CursorBuilder.java
+++ b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/CursorBuilder.java
@@ -280,7 +280,7 @@ public class CursorBuilder
 
             // Position the index on the element we should start from
             IndexEntry<T, String> indexEntry = new IndexEntry<>();
-            indexEntry.setKey( ( T ) value.getValue() );
+            indexEntry.setKey( ( T ) value.getString() );
 
             userIdxCursor.before( indexEntry );
             Set<String> uuidSet = searchResult.getCandidateSet();
@@ -332,7 +332,7 @@ public class CursorBuilder
 
             // Position the index on the element we should start from
             IndexEntry<T, String> indexEntry = new IndexEntry<>();
-            indexEntry.setKey( ( T ) value.getValue() );
+            indexEntry.setKey( ( T ) value.getString() );
 
             userIdxCursor.after( indexEntry );
             Set<String> uuidSet = searchResult.getCandidateSet();
diff --git a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultOptimizer.java b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultOptimizer.java
index 4a8790d..94a4f3d 100644
--- a/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultOptimizer.java
+++ b/xdbm-partition/src/main/java/org/apache/directory/server/xdbm/search/impl/DefaultOptimizer.java
@@ -328,7 +328,7 @@ public class DefaultOptimizer implements Optimizer
             }
             else
             {
-                normalizedKey = node.getAttributeType().getEquality().getNormalizer().normalize( node.getValue().getValue() );
+                normalizedKey = node.getAttributeType().getEquality().getNormalizer().normalize( node.getValue().getString() );
             }
             
             Cursor<String> result = idx.forwardValueCursor( partitionTxn, ( V ) normalizedKey );
@@ -388,11 +388,11 @@ public class DefaultOptimizer implements Optimizer
 
             if ( isGreaterThan )
             {
-                return idx.greaterThanCount( partitionTxn, ( V ) node.getValue().getValue() );
+                return idx.greaterThanCount( partitionTxn, ( V ) node.getValue().getString() );
             }
             else
             {
-                return idx.lessThanCount( partitionTxn, ( V ) node.getValue().getValue() );
+                return idx.lessThanCount( partitionTxn, ( V ) node.getValue().getString() );
             }
         }
 
diff --git a/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/impl/avl/AvlPartitionTest.java b/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/impl/avl/AvlPartitionTest.java
index 6d15b54..2f03537 100644
--- a/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/impl/avl/AvlPartitionTest.java
+++ b/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/impl/avl/AvlPartitionTest.java
@@ -583,14 +583,14 @@ public class AvlPartitionTest
 
         Entry lookedup = partition.fetch( txn, partition.getEntryId( txn, dn ) );
 
-        assertEquals( "WAlkeR", lookedup.get( "sn" ).get().getValue() ); // before replacing
+        assertEquals( "WAlkeR", lookedup.get( "sn" ).get().getString() ); // before replacing
 
         lookedup = partition.modify( txn, dn, add );
-        assertEquals( attribVal, lookedup.get( "sn" ).get().getValue() );
+        assertEquals( attribVal, lookedup.get( "sn" ).get().getString() );
 
         lookedup = partition.modify( txn, dn, new DefaultModification( ModificationOperation.REPLACE_ATTRIBUTE, SN_AT,
             "JWalker" ) );
-        assertEquals( "JWalker", lookedup.get( "sn" ).get().getValue() );
+        assertEquals( "JWalker", lookedup.get( "sn" ).get().getString() );
     }
 
 
@@ -649,6 +649,6 @@ public class AvlPartitionTest
         assertNull( lookedup.get( "ou" ) ); // before replacing
 
         lookedup = partition.modify( txn, dn, add );
-        assertEquals( attribVal, lookedup.get( "ou" ).get().getValue() );
+        assertEquals( attribVal, lookedup.get( "ou" ).get().getString() );
     }
 }
diff --git a/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/FilterNormalizingVisitor.java b/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/FilterNormalizingVisitor.java
index e2edc43..2b284eb 100644
--- a/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/FilterNormalizingVisitor.java
+++ b/xdbm-partition/src/test/java/org/apache/directory/server/xdbm/search/impl/FilterNormalizingVisitor.java
@@ -284,7 +284,7 @@ public class FilterNormalizingVisitor implements FilterVisitor
         }
         else
         {
-            normalized = normalizeValue( node.getAttribute(), node.getValue().getValue() );
+            normalized = normalizeValue( node.getAttribute(), node.getValue().getString() );
         }
 
         if ( normalized == null )
@@ -342,7 +342,7 @@ public class FilterNormalizingVisitor implements FilterVisitor
 
                 if ( normAny != null )
                 {
-                    normAnys.add( normAny.getValue() );
+                    normAnys.add( normAny.getString() );
                 }
             }
 
@@ -368,7 +368,7 @@ public class FilterNormalizingVisitor implements FilterVisitor
 
         if ( normInitial != null )
         {
-            node.setInitial( normInitial.getValue() );
+            node.setInitial( normInitial.getString() );
         }
         else
         {
@@ -379,7 +379,7 @@ public class FilterNormalizingVisitor implements FilterVisitor
 
         if ( normFinal != null )
         {
-            node.setFinal( normFinal.getValue() );
+            node.setFinal( normFinal.getString() );
         }
         else
         {