From commits-return-25516-apmail-directory-commits-archive=directory.apache.org@directory.apache.org Mon Apr 19 14:18:36 2010 Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 15949 invoked from network); 19 Apr 2010 14:18:35 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 19 Apr 2010 14:18:35 -0000 Received: (qmail 88842 invoked by uid 500); 19 Apr 2010 14:18:35 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 88786 invoked by uid 500); 19 Apr 2010 14:18:35 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 88779 invoked by uid 99); 19 Apr 2010 14:18:35 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Apr 2010 14:18:35 +0000 X-ASF-Spam-Status: No, hits=-1244.3 required=10.0 tests=ALL_TRUSTED,AWL X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Apr 2010 14:18:32 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 9FF94238898B; Mon, 19 Apr 2010 14:17:50 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r935590 - in /directory: apacheds/trunk/core-entry/src/test/java/org/apache/directory/server/core/entry/ shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/ shared/trunk/ldap/src/test/java/org/apache/directory/shared/lda... Date: Mon, 19 Apr 2010 14:17:50 -0000 To: commits@directory.apache.org From: elecharny@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100419141750.9FF94238898B@eris.apache.org> Author: elecharny Date: Mon Apr 19 14:17:49 2010 New Revision: 935590 URL: http://svn.apache.org/viewvc?rev=935590&view=rev Log: Some more simplification in the Value classes : o Tests are now using an AT supporting null values o Added some @SuppressWarnings o Updated the javadoc and added some missing pieces o Added some logs o The syntax is checked when doing an apply(AT) o Removed the useless getNormalizedValueCopy() method Modified: directory/apacheds/trunk/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/AbstractValue.java directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/BinaryValue.java directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/StringValue.java directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/Value.java directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/BinaryValueAttributeTypeTest.java directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/BinaryValueTest.java directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/StringValueTest.java Modified: directory/apacheds/trunk/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java?rev=935590&r1=935589&r2=935590&view=diff ============================================================================== --- directory/apacheds/trunk/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java (original) +++ directory/apacheds/trunk/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java Mon Apr 19 14:17:49 2010 @@ -74,6 +74,7 @@ public class DefaultServerAttributeTest private static LdifSchemaLoader loader; private static AttributeType atCN; + private static AttributeType atDC; private static AttributeType atSN; // A SINGLE-VALUE attribute @@ -136,6 +137,7 @@ public class DefaultServerAttributeTest } atCN = schemaManager.lookupAttributeTypeRegistry( "cn" ); + atDC = schemaManager.lookupAttributeTypeRegistry( "dc" ); atC = schemaManager.lookupAttributeTypeRegistry( "c" ); atSN = schemaManager.lookupAttributeTypeRegistry( "sn" ); atPwd = schemaManager.lookupAttributeTypeRegistry( "userpassword" ); @@ -663,16 +665,16 @@ public class DefaultServerAttributeTest assertTrue( attr7.contains( NULL_BINARY_VALUE ) ); assertFalse( attr7.contains( BYTES3 ) ); - EntryAttribute attr8 = new DefaultServerAttribute( atCN ); + EntryAttribute attr8 = new DefaultServerAttribute( atDC ); - nbAdded = attr8.add( new StringValue( atCN, null ), new BinaryValue( atPwd, BYTES1 ) ); + nbAdded = attr8.add( new StringValue( atDC, null ), new BinaryValue( atPwd, BYTES1 ) ); assertEquals( 1, nbAdded ); assertTrue( attr8.isHR() ); assertTrue( attr8.contains( NULL_STRING_VALUE ) ); assertFalse( attr8.contains( "ab" ) ); - EntryAttribute attr9 = new DefaultServerAttribute( atCN ); + EntryAttribute attr9 = new DefaultServerAttribute( atDC ); nbAdded = attr9.add( new StringValue( (String)null ), new StringValue( "ab" ) ); assertEquals( 2, nbAdded ); @@ -749,7 +751,7 @@ public class DefaultServerAttributeTest assertTrue( attr4.contains( "e" ) ); assertFalse( attr4.contains( "ab" ) ); - EntryAttribute attr5 = new DefaultServerAttribute( atCN ); + EntryAttribute attr5 = new DefaultServerAttribute( atDC ); nbAdded = attr5.add( "a", "b", (String)null, "d" ); assertEquals( 4, nbAdded ); @@ -848,7 +850,7 @@ public class DefaultServerAttributeTest @Test public void testContainsValueArray() { - EntryAttribute attr1 = new DefaultServerAttribute( atCN ); + EntryAttribute attr1 = new DefaultServerAttribute( atDC ); assertEquals( 0, attr1.size() ); assertFalse( attr1.contains( STR_VALUE1 ) ); @@ -1189,28 +1191,28 @@ public class DefaultServerAttributeTest @Test public void testPutStringArray() throws LdapInvalidAttributeValueException { - EntryAttribute attr1 = new DefaultServerAttribute( atCN ); + EntryAttribute attr1 = new DefaultServerAttribute( atDC ); int nbAdded = attr1.put( (String)null ); assertEquals( 1, nbAdded ); assertTrue( attr1.isHR() ); assertEquals( NULL_STRING_VALUE, attr1.get() ); - EntryAttribute attr2 = new DefaultServerAttribute( atCN ); + EntryAttribute attr2 = new DefaultServerAttribute( atDC ); nbAdded = attr2.put( "" ); assertEquals( 1, nbAdded ); assertTrue( attr2.isHR() ); assertEquals( "", attr2.getString() ); - EntryAttribute attr3 = new DefaultServerAttribute( atCN ); + EntryAttribute attr3 = new DefaultServerAttribute( atDC ); nbAdded = attr3.put( "t" ); assertEquals( 1, nbAdded ); assertTrue( attr3.isHR() ); assertEquals( "t", attr3.getString() ); - EntryAttribute attr4 = new DefaultServerAttribute( atCN ); + EntryAttribute attr4 = new DefaultServerAttribute( atDC ); nbAdded = attr4.put( "a", "b", "c", "d" ); assertEquals( 4, nbAdded ); @@ -1235,7 +1237,7 @@ public class DefaultServerAttributeTest assertEquals( 0, nbAdded ); assertTrue( attr4.isHR() ); - EntryAttribute attr5 = new DefaultServerAttribute( atCN ); + EntryAttribute attr5 = new DefaultServerAttribute( atDC ); nbAdded = attr5.put( "a", "b", (String)null, "d" ); assertEquals( 4, nbAdded ); @@ -1259,7 +1261,7 @@ public class DefaultServerAttributeTest @Test public void testPutValueArray() throws Exception { - EntryAttribute attr1 = new DefaultServerAttribute( atCN ); + EntryAttribute attr1 = new DefaultServerAttribute( atDC ); assertEquals( 0, attr1.size() ); @@ -1313,7 +1315,7 @@ public class DefaultServerAttributeTest @Test public void testPutListOfValues() { - EntryAttribute attr1 = new DefaultServerAttribute( atCN ); + EntryAttribute attr1 = new DefaultServerAttribute( atDC ); assertEquals( 0, attr1.size() ); @@ -1392,7 +1394,7 @@ public class DefaultServerAttributeTest @Test public void testRemoveValueArray() throws Exception { - EntryAttribute attr1 = new DefaultServerAttribute( atCN ); + EntryAttribute attr1 = new DefaultServerAttribute( atDC ); assertFalse( attr1.remove( STR_VALUE1 ) ); @@ -1788,23 +1790,23 @@ public class DefaultServerAttributeTest @Test public void testDefaultServerAttributeAttributeTypeValueArray() throws Exception { - EntryAttribute attr1 = new DefaultServerAttribute( atCN, STR_VALUE1, STR_VALUE2, NULL_STRING_VALUE ); + EntryAttribute attr1 = new DefaultServerAttribute( atDC, STR_VALUE1, STR_VALUE2, NULL_STRING_VALUE ); assertTrue( attr1.isHR() ); assertEquals( 3, attr1.size() ); - assertEquals( "cn", attr1.getId() ); - assertEquals( "cn", attr1.getUpId() ); - assertEquals( atCN, attr1.getAttributeType() ); + assertEquals( "dc", attr1.getId() ); + assertEquals( "dc", attr1.getUpId() ); + assertEquals( atDC, attr1.getAttributeType() ); assertTrue( attr1.contains( "a", "b" ) ); assertTrue( attr1.contains( NULL_STRING_VALUE ) ); - EntryAttribute attr2 = new DefaultServerAttribute( atCN, STR_VALUE1, BIN_VALUE2, NULL_STRING_VALUE ); + EntryAttribute attr2 = new DefaultServerAttribute( atDC, STR_VALUE1, BIN_VALUE2, NULL_STRING_VALUE ); assertTrue( attr2.isHR() ); assertEquals( 2, attr2.size() ); - assertEquals( "cn", attr2.getId() ); - assertEquals( "cn", attr2.getUpId() ); - assertEquals( atCN, attr2.getAttributeType() ); + assertEquals( "dc", attr2.getId() ); + assertEquals( "dc", attr2.getUpId() ); + assertEquals( atDC, attr2.getAttributeType() ); assertTrue( attr2.contains( "a" ) ); assertTrue( attr2.contains( NULL_STRING_VALUE ) ); } @@ -1816,43 +1818,43 @@ public class DefaultServerAttributeTest @Test public void testDefaultServerAttributeStringAttributeTypeValueArray() { - EntryAttribute attr1 = new DefaultServerAttribute( "cn", atCN, STR_VALUE1, STR_VALUE2, NULL_STRING_VALUE ); + EntryAttribute attr1 = new DefaultServerAttribute( "dc", atDC, STR_VALUE1, STR_VALUE2, NULL_STRING_VALUE ); assertTrue( attr1.isHR() ); assertEquals( 3, attr1.size() ); - assertEquals( "cn", attr1.getId() ); - assertEquals( "cn", attr1.getUpId() ); - assertEquals( atCN, attr1.getAttributeType() ); + assertEquals( "dc", attr1.getId() ); + assertEquals( "dc", attr1.getUpId() ); + assertEquals( atDC, attr1.getAttributeType() ); assertTrue( attr1.contains( "a", "b" ) ); assertTrue( attr1.contains( NULL_STRING_VALUE ) ); - EntryAttribute attr2 = new DefaultServerAttribute( atCN, STR_VALUE1, BIN_VALUE2, NULL_STRING_VALUE ); + EntryAttribute attr2 = new DefaultServerAttribute( atDC, STR_VALUE1, BIN_VALUE2, NULL_STRING_VALUE ); assertTrue( attr2.isHR() ); assertEquals( 2, attr2.size() ); - assertEquals( "cn", attr2.getId() ); - assertEquals( "cn", attr2.getUpId() ); - assertEquals( atCN, attr2.getAttributeType() ); + assertEquals( "dc", attr2.getId() ); + assertEquals( "dc", attr2.getUpId() ); + assertEquals( atDC, attr2.getAttributeType() ); assertTrue( attr2.contains( "a" ) ); assertTrue( attr2.contains( NULL_STRING_VALUE ) ); - EntryAttribute attr3 = new DefaultServerAttribute( "CommonName", atCN, STR_VALUE1, STR_VALUE2, NULL_STRING_VALUE ); + EntryAttribute attr3 = new DefaultServerAttribute( "DomainComponent", atDC, STR_VALUE1, STR_VALUE2, NULL_STRING_VALUE ); assertTrue( attr3.isHR() ); assertEquals( 3, attr3.size() ); - assertEquals( "commonname", attr3.getId() ); - assertEquals( "CommonName", attr3.getUpId() ); - assertEquals( atCN, attr3.getAttributeType() ); + assertEquals( "domaincomponent", attr3.getId() ); + assertEquals( "DomainComponent", attr3.getUpId() ); + assertEquals( atDC, attr3.getAttributeType() ); assertTrue( attr3.contains( "a", "b" ) ); assertTrue( attr3.contains( NULL_STRING_VALUE ) ); - EntryAttribute attr4 = new DefaultServerAttribute( " 2.5.4.3 ", atCN, STR_VALUE1, STR_VALUE2, NULL_STRING_VALUE ); + EntryAttribute attr4 = new DefaultServerAttribute( " 0.9.2342.19200300.100.1.25 ", atDC, STR_VALUE1, STR_VALUE2, NULL_STRING_VALUE ); assertTrue( attr4.isHR() ); assertEquals( 3, attr4.size() ); - assertEquals( "2.5.4.3", attr4.getId() ); - assertEquals( " 2.5.4.3 ", attr4.getUpId() ); - assertEquals( atCN, attr4.getAttributeType() ); + assertEquals( "0.9.2342.19200300.100.1.25", attr4.getId() ); + assertEquals( " 0.9.2342.19200300.100.1.25 ", attr4.getUpId() ); + assertEquals( atDC, attr4.getAttributeType() ); assertTrue( attr4.contains( "a", "b" ) ); assertTrue( attr4.contains( NULL_STRING_VALUE ) ); } @@ -1864,23 +1866,23 @@ public class DefaultServerAttributeTest @Test public void testDefaultServerAttributeAttributeTypeStringArray() { - EntryAttribute attr1 = new DefaultServerAttribute( atCN, "a", "b", (String)null ); + EntryAttribute attr1 = new DefaultServerAttribute( atDC, "a", "b", (String)null ); assertTrue( attr1.isHR() ); assertEquals( 3, attr1.size() ); - assertEquals( "cn", attr1.getId() ); - assertEquals( "cn", attr1.getUpId() ); - assertEquals( atCN, attr1.getAttributeType() ); + assertEquals( "dc", attr1.getId() ); + assertEquals( "dc", attr1.getUpId() ); + assertEquals( atDC, attr1.getAttributeType() ); assertTrue( attr1.contains( "a", "b" ) ); assertTrue( attr1.contains( NULL_STRING_VALUE ) ); - EntryAttribute attr2 = new DefaultServerAttribute( atCN, STR_VALUE1, BIN_VALUE2, NULL_STRING_VALUE ); + EntryAttribute attr2 = new DefaultServerAttribute( atDC, STR_VALUE1, BIN_VALUE2, NULL_STRING_VALUE ); assertTrue( attr2.isHR() ); assertEquals( 2, attr2.size() ); - assertEquals( "cn", attr2.getId() ); - assertEquals( "cn", attr2.getUpId() ); - assertEquals( atCN, attr2.getAttributeType() ); + assertEquals( "dc", attr2.getId() ); + assertEquals( "dc", attr2.getUpId() ); + assertEquals( atDC, attr2.getAttributeType() ); assertTrue( attr2.contains( "a" ) ); assertTrue( attr2.contains( NULL_STRING_VALUE ) ); } @@ -1892,33 +1894,33 @@ public class DefaultServerAttributeTest @Test public void testDefaultServerAttributeStringAttributeTypeStringArray() { - EntryAttribute attr1 = new DefaultServerAttribute( "cn", atCN, "a", "b", (String)null ); + EntryAttribute attr1 = new DefaultServerAttribute( "dc", atDC, "a", "b", (String)null ); assertTrue( attr1.isHR() ); assertEquals( 3, attr1.size() ); - assertEquals( "cn", attr1.getId() ); - assertEquals( "cn", attr1.getUpId() ); - assertEquals( atCN, attr1.getAttributeType() ); + assertEquals( "dc", attr1.getId() ); + assertEquals( "dc", attr1.getUpId() ); + assertEquals( atDC, attr1.getAttributeType() ); assertTrue( attr1.contains( "a", "b" ) ); assertTrue( attr1.contains( NULL_STRING_VALUE ) ); - EntryAttribute attr2 = new DefaultServerAttribute( "CommonName", atCN, "a", "b", (String)null ); + EntryAttribute attr2 = new DefaultServerAttribute( "DomainComponent", atDC, "a", "b", (String)null ); assertTrue( attr2.isHR() ); assertEquals( 3, attr2.size() ); - assertEquals( "commonname", attr2.getId() ); - assertEquals( "CommonName", attr2.getUpId() ); - assertEquals( atCN, attr2.getAttributeType() ); + assertEquals( "domaincomponent", attr2.getId() ); + assertEquals( "DomainComponent", attr2.getUpId() ); + assertEquals( atDC, attr2.getAttributeType() ); assertTrue( attr2.contains( "a", "b" ) ); assertTrue( attr2.contains( NULL_STRING_VALUE ) ); - EntryAttribute attr3 = new DefaultServerAttribute( " 2.5.4.3 ", atCN, "a", "b", (String)null ); + EntryAttribute attr3 = new DefaultServerAttribute( " 0.9.2342.19200300.100.1.25 ", atDC, "a", "b", (String)null ); assertTrue( attr3.isHR() ); assertEquals( 3, attr3.size() ); - assertEquals( "2.5.4.3", attr3.getId() ); - assertEquals( " 2.5.4.3 ", attr3.getUpId() ); - assertEquals( atCN, attr3.getAttributeType() ); + assertEquals( "0.9.2342.19200300.100.1.25", attr3.getId() ); + assertEquals( " 0.9.2342.19200300.100.1.25 ", attr3.getUpId() ); + assertEquals( atDC, attr3.getAttributeType() ); assertTrue( attr3.contains( "a", "b" ) ); assertTrue( attr3.contains( NULL_STRING_VALUE ) ); } Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/AbstractValue.java URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/AbstractValue.java?rev=935590&r1=935589&r2=935590&view=diff ============================================================================== --- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/AbstractValue.java (original) +++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/AbstractValue.java Mon Apr 19 14:17:49 2010 @@ -63,6 +63,7 @@ public abstract class AbstractValue i /** * {@inheritDoc} */ + @SuppressWarnings("unchecked") public Value clone() { try @@ -78,11 +79,7 @@ public abstract class AbstractValue i /** - * Gets a reference to the wrapped binary value. - * - * Warning ! The value is not copied !!! - * - * @return a direct handle on the binary value that is wrapped + * {@inheritDoc} */ public T getReference() { @@ -91,8 +88,7 @@ public abstract class AbstractValue i /** - * Get the associated AttributeType - * @return The AttributeType + * {@inheritDoc} */ public AttributeType getAttributeType() { @@ -100,13 +96,18 @@ public abstract class AbstractValue i } + /** + * {@inheritDoc} + */ public void apply( AttributeType attributeType ) { if ( this.attributeType != null ) { if ( !attributeType.equals( this.attributeType ) ) { - throw new IllegalArgumentException( I18n.err( I18n.ERR_04476, attributeType.getName(), this.attributeType.getName() ) ); + String message = I18n.err( I18n.ERR_04476, attributeType.getName(), this.attributeType.getName() ); + LOG.info( message ); + throw new IllegalArgumentException( message ); } else { @@ -114,6 +115,23 @@ public abstract class AbstractValue i } } + // First, check that the value is syntaxically correct + try + { + if ( ! isValid( attributeType.getSyntax().getSyntaxChecker() ) ) + { + String message = I18n.err( I18n.ERR_04476, attributeType.getName(), this.attributeType.getName() ); + LOG.info( message ); + throw new IllegalArgumentException( message ); + } + } + catch ( LdapException le ) + { + String message = I18n.err( I18n.ERR_04447, le.getLocalizedMessage() ); + LOG.info( message ); + normalized = false; + } + this.attributeType = attributeType; try @@ -136,7 +154,8 @@ public abstract class AbstractValue i * @return a comparator associated with the attributeType or null if one cannot be found * @throws LdapException if resolution of schema entities fail */ - protected LdapComparator getLdapComparator() throws LdapException + @SuppressWarnings("unchecked") + protected final LdapComparator getLdapComparator() throws LdapException { if ( attributeType != null ) { @@ -165,7 +184,7 @@ public abstract class AbstractValue i * @return a matchingRule or null if one cannot be found for the attributeType * @throws LdapException if resolution of schema entities fail */ - protected MatchingRule getMatchingRule() throws LdapException + protected final MatchingRule getMatchingRule() throws LdapException { if ( attributeType != null ) { @@ -197,7 +216,7 @@ public abstract class AbstractValue i * @return a normalizer associated with the attributeType or null if one cannot be found * @throws LdapException if resolution of schema entities fail */ - protected Normalizer getNormalizer() throws LdapException + protected final Normalizer getNormalizer() throws LdapException { if ( attributeType != null ) { @@ -218,15 +237,7 @@ public abstract class AbstractValue i /** - * Check if the value is stored into an instance of the given - * AttributeType, or one of its ascendant. - * - * For instance, if the Value is associated with a CommonName, - * checking for Name will match. - * - * @param attributeType The AttributeType we are looking at - * @return true if the value is associated with the given - * attributeType or one of its ascendant + * {@inheritDoc} */ public boolean instanceOf( AttributeType attributeType ) throws LdapException { @@ -245,34 +256,7 @@ public abstract class AbstractValue i /** - * Gets the normalized (canonical) representation for the wrapped value. - * If the wrapped value is null, null is returned, otherwise the normalized - * form is returned. If the normalized Value is null, then the wrapped - * value is returned - * - * @return gets the normalized value - */ - public T getNormalizedValue() - { - if ( isNull() ) - { - return null; - } - - if ( normalizedValue == null ) - { - return get(); - } - - return getNormalizedValueCopy(); - } - - - /** - * Gets a reference to the the normalized (canonical) representation - * for the wrapped value. - * - * @return gets a reference to the normalized value + * {@inheritDoc} */ public T getNormalizedValueReference() { @@ -292,9 +276,7 @@ public abstract class AbstractValue i /** - * Check if the contained value is null or not - * - * @return true if the inner value is null. + * {@inheritDoc} */ public final boolean isNull() { @@ -313,14 +295,8 @@ public abstract class AbstractValue i } - /** - * Uses the syntaxChecker associated with the attributeType to check if the - * value is valid. Repeated calls to this method do not attempt to re-check - * the syntax of the wrapped value every time if the wrapped value does not - * change. Syntax checks only result on the first check, and when the wrapped - * value changes. - * - * @see Value#isValid() + /** + * {@inheritDoc} */ public final boolean isValid() { @@ -343,13 +319,7 @@ public abstract class AbstractValue i /** - * Uses the syntaxChecker associated with the attributeType to check if the - * value is valid. Repeated calls to this method do not attempt to re-check - * the syntax of the wrapped value every time if the wrapped value does not - * change. Syntax checks only result on the first check, and when the wrapped - * value changes. - * - * @see ServerValue#isValid() + * {@inheritDoc} */ public final boolean isValid( SyntaxChecker syntaxChecker ) throws LdapException { @@ -367,10 +337,7 @@ public abstract class AbstractValue i /** - * Normalize the value. In order to use this method, the Value - * must be schema aware. - * - * @exception LdapException If the value cannot be normalized + * {@inheritDoc} */ public void normalize() throws LdapException { @@ -380,9 +347,7 @@ public abstract class AbstractValue i /** - * Tells if the value has already be normalized or not. - * - * @return true if the value has already been normalized. + * {@inheritDoc} */ public final boolean isNormalized() { @@ -391,9 +356,7 @@ public abstract class AbstractValue i /** - * Set the normalized flag. - * - * @param the value : true or false + * {@inheritDoc} */ public final void setNormalized( boolean normalized ) { Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/BinaryValue.java URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/BinaryValue.java?rev=935590&r1=935589&r2=935590&view=diff ============================================================================== --- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/BinaryValue.java (original) +++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/BinaryValue.java Mon Apr 19 14:17:49 2010 @@ -141,7 +141,7 @@ public class BinaryValue extends Abstrac * @return the normalized version of the wrapped value * @throws LdapException if schema entity resolution fails or normalization fails */ - public byte[] getNormalizedValueCopy() + public byte[] getNormalizedValue() { if ( isNull() ) { @@ -218,22 +218,6 @@ public class BinaryValue extends Abstrac /** - * Gets the normalized (canonical) representation for the wrapped byte[]. - * If the wrapped byte[] is null, null is returned, otherwise the normalized - * form is returned. If the normalizedValue is null, then this method - * will attempt to generate it from the wrapped value: repeated calls to - * this method do not unnecessarily normalize the wrapped value. Only changes - * to the wrapped value result in attempts to normalize the wrapped value. - * - * @return gets the normalized value - */ - public byte[] getNormalizedValue() - { - return getNormalizedValueCopy(); - } - - - /** * Normalize the value. For a client String value, applies the given normalizer. * * It supposes that the client has access to the schema in order to select the Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/StringValue.java URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/StringValue.java?rev=935590&r1=935589&r2=935590&view=diff ============================================================================== --- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/StringValue.java (original) +++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/StringValue.java Mon Apr 19 14:17:49 2010 @@ -178,18 +178,6 @@ public class StringValue extends Abstrac /** - * Gets a copy of the the normalized (canonical) representation - * for the wrapped value. - * - * @return gets a copy of the normalized value - */ - public String getNormalizedValueCopy() - { - return getNormalizedValue(); - } - - - /** * Compute the normalized (canonical) representation for the wrapped string. * If the wrapped String is null, the normalized form will be null too. * Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/Value.java URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/Value.java?rev=935590&r1=935589&r2=935590&view=diff ============================================================================== --- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/Value.java (original) +++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/entry/Value.java Mon Apr 19 14:17:49 2010 @@ -24,6 +24,7 @@ import java.io.Externalizable; import org.apache.directory.shared.ldap.exception.LdapException; +import org.apache.directory.shared.ldap.schema.AttributeType; import org.apache.directory.shared.ldap.schema.Normalizer; import org.apache.directory.shared.ldap.schema.SyntaxChecker; @@ -37,7 +38,17 @@ import org.apache.directory.shared.ldap. */ public interface Value extends Cloneable, Externalizable, Comparable> { + /** + * Apply an AttributeType to the current Value, normalizing it. + * + * @param attributeType The AttributeType to apply + */ + void apply( AttributeType attributeType ); + + /** + * @return A cloned value + */ Value clone(); @@ -50,6 +61,28 @@ public interface Value extends Clonea /** + * Get the associated AttributeType + * + * @return The AttributeType + */ + AttributeType getAttributeType(); + + + /** + * Check if the value is stored into an instance of the given + * AttributeType, or one of its ascendant. + * + * For instance, if the Value is associated with a CommonName, + * checking for Name will match. + * + * @param attributeType The AttributeType we are looking at + * @return true if the value is associated with the given + * attributeType or one of its ascendant + */ + boolean instanceOf( AttributeType attributeType ) throws LdapException; + + + /** * Get the wrapped value. It will return a copy, not a reference. * * @return a copy of the wrapped value @@ -77,9 +110,11 @@ public interface Value extends Clonea /** - * Get a reference on the stored value. + * Gets a reference to the wrapped binary value. + * + * Warning ! The value is not copied !!! * - * @return a reference on the wrapped value. + * @return a direct handle on the binary value that is wrapped */ T getReference(); @@ -92,17 +127,24 @@ public interface Value extends Clonea boolean isNormalized(); - /** - * Tells if the value is valid. The value must have already been - * validated at least once through a call to isValid( SyntaxChecker ). - * + /** + * Uses the syntaxChecker associated with the attributeType to check if the + * value is valid. Repeated calls to this method do not attempt to re-check + * the syntax of the wrapped value every time if the wrapped value does not + * change. Syntax checks only result on the first check, and when the wrapped + * value changes. + * * @return true if the value is valid */ boolean isValid(); /** - * Tells if the value is valid wrt a Syntax checker + * Uses the syntaxChecker associated with the attributeType to check if the + * value is valid. Repeated calls to this method do not attempt to re-check + * the syntax of the wrapped value every time if the wrapped value does not + * change. Syntax checks only result on the first check, and when the wrapped + * value changes. * * @param checker the SyntaxChecker to use to validate the value * @return true if the value is valid @@ -142,15 +184,6 @@ public interface Value extends Clonea /** - * Gets a copy of the the normalized (canonical) representation - * for the wrapped value. - * - * @return gets a copy of the normalized value - */ - T getNormalizedValueCopy(); - - - /** * Normalize the value. In order to use this method, the Value * must be schema aware. * Modified: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/BinaryValueAttributeTypeTest.java URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/BinaryValueAttributeTypeTest.java?rev=935590&r1=935589&r2=935590&view=diff ============================================================================== --- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/BinaryValueAttributeTypeTest.java (original) +++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/BinaryValueAttributeTypeTest.java Mon Apr 19 14:17:49 2010 @@ -370,13 +370,13 @@ public class BinaryValueAttributeTypeTes AttributeType attribute = EntryUtils.getBytesAttributeType(); BinaryValue value = new BinaryValue( attribute, null ); - assertNull( value.getNormalizedValueCopy() ); + assertNull( value.getNormalizedValue() ); value = new BinaryValue( attribute, StringTools.EMPTY_BYTES ); - assertTrue( Arrays.equals( StringTools.EMPTY_BYTES, value.getNormalizedValueCopy() ) ); + assertTrue( Arrays.equals( StringTools.EMPTY_BYTES, value.getNormalizedValue() ) ); value = new BinaryValue( attribute, BYTES2 ); - assertTrue( Arrays.equals( BYTES1, value.getNormalizedValueCopy() ) ); + assertTrue( Arrays.equals( BYTES1, value.getNormalizedValue() ) ); } Modified: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/BinaryValueTest.java URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/BinaryValueTest.java?rev=935590&r1=935589&r2=935590&view=diff ============================================================================== --- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/BinaryValueTest.java (original) +++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/BinaryValueTest.java Mon Apr 19 14:17:49 2010 @@ -292,7 +292,7 @@ public class BinaryValueTest assertTrue( Arrays.equals( BYTES2, cbv.getNormalizedValue() ) ); cbv.normalize( BINARY_NORMALIZER ); - byte[] copy = cbv.getNormalizedValueCopy(); + byte[] copy = cbv.getNormalizedValue(); assertTrue( Arrays.equals( BYTES1, copy ) ); cbv.getNormalizedValueReference()[0]=0x11; assertTrue( Arrays.equals( BYTES1, copy ) ); Modified: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/StringValueTest.java URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/StringValueTest.java?rev=935590&r1=935589&r2=935590&view=diff ============================================================================== --- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/StringValueTest.java (original) +++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/entry/StringValueTest.java Mon Apr 19 14:17:49 2010 @@ -379,21 +379,21 @@ public class StringValueTest /** - * Test method for {@link org.apache.directory.shared.ldap.entry.StringValue#getNormalizedValueCopy()}. + * Test method for {@link org.apache.directory.shared.ldap.entry.StringValue#getNormalizedValue()}. */ @Test public void getNormalizedValueCopy() throws LdapException { StringValue sv = new StringValue(); - assertEquals( null, sv.getNormalizedValueCopy() ); + assertEquals( null, sv.getNormalizedValue() ); sv = new StringValue( " This is a TEST " ); - assertEquals( " This is a TEST ", sv.getNormalizedValueCopy() ); + assertEquals( " This is a TEST ", sv.getNormalizedValue() ); sv.normalize( new DeepTrimToLowerNormalizer( "1.1.1" ) ); - assertEquals( "this is a test", sv.getNormalizedValueCopy() ); + assertEquals( "this is a test", sv.getNormalizedValue() ); }