Resolved an issue related to array value validation.
authorG S Senthil Kumar <senthil.gs@samsung.com>
Thu, 3 Mar 2016 20:12:40 +0000 (01:42 +0530)
committerMadan Lanka <lanka.madan@samsung.com>
Fri, 4 Mar 2016 02:04:56 +0000 (02:04 +0000)
Handled unique property when validating an array type attribute value.

Change-Id: Ifbe6e8f4d8077b410780adc7b517e203043a2ecd
Signed-off-by: G S Senthil Kumar <senthil.gs@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/5367
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Madan Lanka <lanka.madan@samsung.com>
service/simulator/java/sdk/src/org/oic/simulator/ArrayValueValidator.java
service/simulator/java/sdk/src/org/oic/simulator/server/SimulatorResource.java

index 99f7d4f..26206c4 100644 (file)
@@ -16,6 +16,9 @@
 
 package org.oic.simulator;
 
+import java.util.HashSet;
+import java.util.Set;
+
 class ArrayValueValidator implements
         AttributeValueVisitor.VisitingMethods<Boolean> {
 
@@ -75,7 +78,12 @@ class ArrayValueValidator implements
             return false;
         }
 
+        Set<Integer> uniqueSet = new HashSet<Integer>();
         for (Integer value : values) {
+            if (mProperty.isUnique() && uniqueSet.add(value) == false) {
+                return false;
+            }
+
             if (false == elementProperty.asInteger().validate(value))
                 return false;
         }
@@ -103,7 +111,12 @@ class ArrayValueValidator implements
             return false;
         }
 
+        Set<Double> uniqueSet = new HashSet<Double>();
         for (Double value : values) {
+            if (mProperty.isUnique() && uniqueSet.add(value) == false) {
+                return false;
+            }
+
             if (false == elementProperty.asDouble().validate(value))
                 return false;
         }
@@ -131,7 +144,12 @@ class ArrayValueValidator implements
             return false;
         }
 
+        Set<Boolean> uniqueSet = new HashSet<Boolean>();
         for (Boolean value : values) {
+            if (mProperty.isUnique() && uniqueSet.add(value) == false) {
+                return false;
+            }
+
             if (false == elementProperty.asBoolean().validate(value))
                 return false;
         }
@@ -159,7 +177,12 @@ class ArrayValueValidator implements
             return false;
         }
 
+        Set<String> uniqueSet = new HashSet<String>();
         for (String value : values) {
+            if (mProperty.isUnique() && uniqueSet.add(value) == false) {
+                return false;
+            }
+
             if (false == elementProperty.asString().validate(value))
                 return false;
         }
index 0f63299..be548d6 100644 (file)
@@ -280,8 +280,8 @@ public class SimulatorResource {
      *             This exception will be thrown if the interface type is
      *             invalid.
      * @throws NoSupportException
-     *             This exception will be thrown if the interface type is
-     *             not supported by the resource.
+     *             This exception will be thrown if the interface type is not
+     *             supported by the resource.
      * @throws SimulatorException
      *             This exception will be thrown if the native resource object
      *             does not exist or for some general errors.