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 2013/09/30 08:28:02 UTC

svn commit: r1527456 - /directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultAttribute.java

Author: elecharny
Date: Mon Sep 30 06:28:01 2013
New Revision: 1527456

URL: http://svn.apache.org/r1527456
Log:
Make it possible to have Attribute with empty values

Modified:
    directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultAttribute.java

Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultAttribute.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultAttribute.java?rev=1527456&r1=1527455&r2=1527456&view=diff
==============================================================================
--- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultAttribute.java (original)
+++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/DefaultAttribute.java Mon Sep 30 06:28:01 2013
@@ -776,10 +776,16 @@ public class DefaultAttribute implements
         BinaryValue nullBinaryValue = null;
         StringValue nullStringValue = null;
         boolean nullValueAdded = false;
+        Value<?>[] valArray = vals;
+
+        if ( vals == null )
+        {
+            valArray = new Value[0];
+        }
 
         if ( attributeType != null )
         {
-            for ( Value<?> val : vals )
+            for ( Value<?> val : valArray )
             {
                 if ( attributeType.getSyntax().isHumanReadable() )
                 {
@@ -892,7 +898,7 @@ public class DefaultAttribute implements
         }
         else
         {
-            for ( Value<?> val : vals )
+            for ( Value<?> val : valArray )
             {
                 if ( val == null )
                 {
@@ -1036,6 +1042,12 @@ public class DefaultAttribute implements
     public int add( String... vals ) throws LdapInvalidAttributeValueException
     {
         int nbAdded = 0;
+        String[] valArray = vals;
+
+        if ( vals == null )
+        {
+            valArray = new String[0];
+        }
 
         // First, if the isHR flag is not set, we assume that the
         // attribute is HR, because we are asked to add some strings.
@@ -1049,7 +1061,7 @@ public class DefaultAttribute implements
         {
             if ( isHR )
             {
-                for ( String val : vals )
+                for ( String val : valArray )
                 {
                     Value<String> value = createStringValue( attributeType, val );
 
@@ -1074,7 +1086,7 @@ public class DefaultAttribute implements
             else
             {
                 // The attribute is binary. Transform the String to byte[]
-                for ( String val : vals )
+                for ( String val : valArray )
                 {
                     byte[] valBytes = null;
 
@@ -1095,7 +1107,7 @@ public class DefaultAttribute implements
         }
         else
         {
-            if ( attributeType.isSingleValued() && ( values.size() + vals.length > 1 ) )
+            if ( attributeType.isSingleValued() && ( values.size() + valArray.length > 1 ) )
             {
                 LOG.error( I18n.err( I18n.ERR_04487_ATTRIBUTE_IS_SINGLE_VALUED, attributeType.getName() ) );
                 return 0;
@@ -1103,7 +1115,7 @@ public class DefaultAttribute implements
 
             if ( isHR )
             {
-                for ( String val : vals )
+                for ( String val : valArray )
                 {
                     Value<String> value = createStringValue( attributeType, val );
 
@@ -1128,7 +1140,7 @@ public class DefaultAttribute implements
             else
             {
                 // The attribute is binary. Transform the String to byte[]
-                for ( String val : vals )
+                for ( String val : valArray )
                 {
                     byte[] valBytes = null;
 
@@ -1165,6 +1177,12 @@ public class DefaultAttribute implements
     public int add( byte[]... vals ) throws LdapInvalidAttributeValueException
     {
         int nbAdded = 0;
+        byte[][] valArray = vals;
+
+        if ( vals == null )
+        {
+            valArray = new byte[0][];
+        }
 
         // First, if the isHR flag is not set, we assume that the
         // attribute is not HR, because we are asked to add some byte[].
@@ -1175,7 +1193,7 @@ public class DefaultAttribute implements
 
         if ( !isHR )
         {
-            for ( byte[] val : vals )
+            for ( byte[] val : valArray )
             {
                 Value<byte[]> value = null;