Moved the code to normalize the java objects (Set and Map) to OVSDB json friendly... 13/8013/1
authorMadhu Venugopal <mavenugo@gmail.com>
Sat, 14 Jun 2014 14:24:22 +0000 (07:24 -0700)
committerMadhu Venugopal <mavenugo@gmail.com>
Sat, 14 Jun 2014 14:24:22 +0000 (07:24 -0700)
Change-Id: Ia04cdc74dd5733df187ea1e7a9b99952f9566a3d
Signed-off-by: Madhu Venugopal <mavenugo@gmail.com>
library/src/main/java/org/opendaylight/ovsdb/lib/operations/Insert.java
library/src/main/java/org/opendaylight/ovsdb/lib/operations/Mutate.java
library/src/main/java/org/opendaylight/ovsdb/lib/operations/Update.java
library/src/main/java/org/opendaylight/ovsdb/lib/schema/ColumnSchema.java

index b4dc424bc76f248a7eb4291ffb2b71a72b692d21..dce4eb017ee3cd9df7e43561dfa91e0490d20d64 100644 (file)
 package org.opendaylight.ovsdb.lib.operations;
 
 import java.util.Map;
-import java.util.Set;
 
-import org.opendaylight.ovsdb.lib.notation.OvsDBMap;
-import org.opendaylight.ovsdb.lib.notation.OvsDBSet;
 import org.opendaylight.ovsdb.lib.schema.ColumnSchema;
 import org.opendaylight.ovsdb.lib.schema.TableSchema;
 
@@ -49,16 +46,7 @@ public class Insert<E extends TableSchema<E>> extends Operation<E> {
     }
 
     public <D, C extends TableSchema<C>> Insert<E> value(ColumnSchema<C, D> columnSchema, D value) {
-        Object untypedValue = null;
-        if (columnSchema.getType().isMultiValued()) {
-            if (value instanceof Set) {
-                untypedValue = OvsDBSet.fromSet((Set) value);
-            } else if (value instanceof Map) {
-                untypedValue = OvsDBMap.fromMap((Map)value);
-            }
-        } else {
-            untypedValue = value;
-        }
+        Object untypedValue = columnSchema.getNormalizeData(value);
         row.put(columnSchema.getName(), untypedValue);
         return this;
     }
index 3138d2c3bfe04ab52afc665caa1d3dce63266c4a..4bb494cc15ba528468cdd3f519cc901eaab682cd 100644 (file)
 package org.opendaylight.ovsdb.lib.operations;
 
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 import org.opendaylight.ovsdb.lib.notation.Condition;
 import org.opendaylight.ovsdb.lib.notation.Mutation;
 import org.opendaylight.ovsdb.lib.notation.Mutator;
-import org.opendaylight.ovsdb.lib.notation.OvsDBMap;
-import org.opendaylight.ovsdb.lib.notation.OvsDBSet;
 import org.opendaylight.ovsdb.lib.schema.ColumnSchema;
 import org.opendaylight.ovsdb.lib.schema.TableSchema;
 
@@ -41,16 +37,7 @@ public class Mutate<E extends TableSchema<E>> extends Operation<E> implements Co
 
     public <T extends TableSchema<T>, D> Mutate<E> addMutation(ColumnSchema<T, D> columnSchema, Mutator mutator, D value) {
         columnSchema.validate(value);
-        Object untypedValue = null;
-        if (columnSchema.getType().isMultiValued()) {
-            if (value instanceof Set) {
-                untypedValue = OvsDBSet.fromSet((Set) value);
-            } else if (value instanceof Map) {
-                untypedValue = OvsDBMap.fromMap((Map)value);
-            }
-        } else {
-            untypedValue = value;
-        }
+        Object untypedValue = columnSchema.getNormalizeData(value);
         mutations.add(new Mutation(columnSchema.getName(), mutator, untypedValue));
         return this;
     }
index 82f3bb2a50b1ab8e8884056d384eef79f30558ab..ce6d506d5414e13bfb0a846bfb69538cd9988384 100644 (file)
@@ -43,7 +43,8 @@ public class Update<E extends TableSchema<E>> extends Operation<E> implements Co
 
     public <T extends TableSchema<T>, D> Update<E> set(ColumnSchema<T, D> columnSchema, D value) {
         columnSchema.validate(value);
-        this.row.put(columnSchema.getName(), value);
+        Object untypedValue = columnSchema.getNormalizeData(value);
+        this.row.put(columnSchema.getName(), untypedValue);
         return this;
     }
 
index 9db5ca5c73b8c0802d374133a27b848dbceb371a..2d0f32ad12518ab8ba37f172734505d17bd76a5e 100644 (file)
@@ -9,9 +9,15 @@
  */
 package org.opendaylight.ovsdb.lib.schema;
 
-import com.fasterxml.jackson.databind.JsonNode;
+import java.util.Map;
+import java.util.Set;
+
 import org.opendaylight.ovsdb.lib.notation.Condition;
 import org.opendaylight.ovsdb.lib.notation.Function;
+import org.opendaylight.ovsdb.lib.notation.OvsDBMap;
+import org.opendaylight.ovsdb.lib.notation.OvsDBSet;
+
+import com.fasterxml.jackson.databind.JsonNode;
 
 
 public class ColumnSchema<E extends TableSchema<E>, D> {
@@ -92,4 +98,15 @@ public class ColumnSchema<E extends TableSchema<E>, D> {
       return (D) this.getType().valueFromJson(value);
     }
 
+    public Object getNormalizeData(D value) {
+        Object untypedValue = null;
+        if (value instanceof Set) {
+            untypedValue = OvsDBSet.fromSet((Set) value);
+        } else if (value instanceof Map) {
+            untypedValue = OvsDBMap.fromMap((Map)value);
+        } else {
+            untypedValue = value;
+        }
+        return untypedValue;
+    }
 }