[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());
+ }
+}