[ONOS-2545]Add the deserialization of UUID.
When converting the operation result of insert into POJO, it need the
deserialization of UUID.

Change-Id: I04f30dd044ddc0963d3f59bda62a9fc469e55e1e
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/message/OperationResult.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/message/OperationResult.java
index 7709236..9980735 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/message/OperationResult.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/message/OperationResult.java
@@ -22,9 +22,7 @@
 import org.onosproject.ovsdb.rfc.notation.Row;
 import org.onosproject.ovsdb.rfc.notation.UUID;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
 
 /**
  * All results of ovs table operations. refer to RFC7047 5.2.
@@ -32,7 +30,6 @@
 @JsonIgnoreProperties(ignoreUnknown = true)
 public final class OperationResult {
     private int count;
-    @JsonIgnore
     private UUID uuid;
     private List<Row> rows;
     private String error;
@@ -95,7 +92,6 @@
      * Return uuid.
      * @return uuid
      */
-    @JsonProperty("uuid")
     public UUID getUuid() {
         return uuid;
     }
@@ -104,9 +100,9 @@
      * Set uuid value.
      * @param uuid the Operation message of uuid
      */
-    public void setUuid(String uuid) {
+    public void setUuid(UUID uuid) {
         checkNotNull(uuid, "uuid cannot be null");
-        this.uuid = UUID.uuid(uuid);
+        this.uuid = uuid;
     }
 
     /**
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/UUID.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/UUID.java
index 5077863..463b75d 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/UUID.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/UUID.java
@@ -20,14 +20,17 @@
 
 import java.util.Objects;
 
+import org.onosproject.ovsdb.rfc.notation.json.UUIDConverter;
 import org.onosproject.ovsdb.rfc.notation.json.UUIDSerializer;
 
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 /**
  * Handles both uuid and named-uuid.
  */
 @JsonSerialize(using = UUIDSerializer.class)
+@JsonDeserialize(converter = UUIDConverter.class)
 public final class UUID {
     private final String value;
 
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/json/UUIDConverter.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/json/UUIDConverter.java
new file mode 100644
index 0000000..02e6bb7
--- /dev/null
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/json/UUIDConverter.java
@@ -0,0 +1,32 @@
+/*

+ * Copyright 2015 Open Networking Laboratory

+ *

+ * Licensed under the Apache License, Version 2.0 (the "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ */

+package org.onosproject.ovsdb.rfc.notation.json;

+

+import org.onosproject.ovsdb.rfc.notation.UUID;

+

+import com.fasterxml.jackson.databind.JsonNode;

+import com.fasterxml.jackson.databind.util.StdConverter;

+

+/**

+ * UUIDConverter Converter.

+ */

+public class UUIDConverter extends StdConverter<JsonNode, UUID> {

+

+    @Override

+    public UUID convert(JsonNode json) {

+        return UUID.uuid(json.get(1).asText());

+    }

+}