[ONOS-2563]Optimize RFC 7047's code.

Change-Id: I000f2b802420e4f47ce320f6ed021049bd2fd83e
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/AbnormalSchemaException.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/AbnormalJsonNodeException.java
similarity index 70%
rename from ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/AbnormalSchemaException.java
rename to ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/AbnormalJsonNodeException.java
index 8a32ffd..e4b1054 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/AbnormalSchemaException.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/AbnormalJsonNodeException.java
@@ -16,25 +16,25 @@
 package org.onosproject.ovsdb.rfc.error;
 
 /**
- * AbnormalSchema exception is thrown when the received schema is invalid.
+ * AbnormalJsonNodeException exception is thrown when the received JsonNode is invalid.
  */
-public class AbnormalSchemaException extends RuntimeException {
+public class AbnormalJsonNodeException extends RuntimeException {
     private static final long serialVersionUID = 8328377718334680368L;
 
     /**
-     * Constructs a AbnormalSchemaException object.
+     * Constructs a AbnormalJsonNodeException object.
      * @param message error message
      */
-    public AbnormalSchemaException(String message) {
+    public AbnormalJsonNodeException(String message) {
         super(message);
     }
 
     /**
-     * Constructs a AbnormalSchemaException object.
+     * Constructs a AbnormalJsonNodeException object.
      * @param message error message
      * @param cause Throwable
      */
-    public AbnormalSchemaException(String message, Throwable cause) {
+    public AbnormalJsonNodeException(String message, Throwable cause) {
         super(message, cause);
     }
 
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/ArgumentException.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/ArgumentException.java
deleted file mode 100644
index d7d69d1..0000000
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/ArgumentException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.error;
-
-/**
- * This exception is thrown when the argument is not supported.
- */
-public class ArgumentException extends RuntimeException {
-    private static final long serialVersionUID = 4950089877540156797L;
-
-    /**
-     * Constructs a ArgumentException object.
-     * @param message error message
-     */
-    public ArgumentException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructs a ArgumentException object.
-     * @param message error message
-     * @param cause Throwable
-     */
-    public ArgumentException(String message, Throwable cause) {
-        super(message, cause);
-    }
-}
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/JsonParsingException.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/JsonParsingException.java
deleted file mode 100644
index e62a03f..0000000
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/JsonParsingException.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.error;
-
-/**
- * The JsonParsingException is thrown when JSON could not be successfully
- * parsed.
- */
-public class JsonParsingException extends RuntimeException {
-    private static final long serialVersionUID = 1424752181911923235L;
-
-    /**
-     * Constructs a JsonParsingException object.
-     * @param message error message
-     */
-    public JsonParsingException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructs a JsonParsingException object.
-     * @param message error message
-     * @param cause Throwable
-     */
-    public JsonParsingException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-    /**
-     * Constructs a JsonParsingException object.
-     * @param cause Throwable
-     */
-    public JsonParsingException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Constructs a JsonParsingException object.
-     * @param message error message
-     * @param cause Throwable
-     * @param enableSuppression enable Suppression
-     * @param writableStackTrace writable StackTrace
-     */
-    public JsonParsingException(String message, Throwable cause,
-                                boolean enableSuppression,
-                                boolean writableStackTrace) {
-        super(message, cause, enableSuppression, writableStackTrace);
-    }
-}
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/TypedSchemaException.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/TypedSchemaException.java
deleted file mode 100644
index 59aea30..0000000
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/TypedSchemaException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.error;
-
-/**
- * This is a generic exception thrown by the Typed Schema utilities.
- */
-public class TypedSchemaException extends RuntimeException {
-    private static final long serialVersionUID = -1452257990783176715L;
-
-    /**
-     * Constructs a TypedSchemaException object.
-     * @param message error message
-     */
-    public TypedSchemaException(String message) {
-        super(message);
-    }
-
-    /**
-     * Constructs a TypedSchemaException object.
-     * @param message error message
-     * @param cause Throwable
-     */
-    public TypedSchemaException(String message, Throwable cause) {
-        super(message, cause);
-    }
-}
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/UnsupportedEncodingException.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/UnsupportedEncodingException.java
deleted file mode 100644
index 6ba7fd5..0000000
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/UnsupportedEncodingException.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.onosproject.ovsdb.rfc.error;
-
-/**
- * This exception is thrown when the encoding does not meet UTF-8 in RFC7047.
- */
-public class UnsupportedEncodingException extends RuntimeException {
-    private static final long serialVersionUID = -4865311369828520666L;
-
-    /**
-     * Constructs a UnsupportedEncodingException object.
-     * @param message error message
-     */
-    public UnsupportedEncodingException(String message) {
-        super(message);
-    }
-}
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/UnknownResultException.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/UnsupportedException.java
similarity index 70%
rename from ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/UnknownResultException.java
rename to ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/UnsupportedException.java
index ab30fb1..a34b8d4 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/UnknownResultException.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/UnsupportedException.java
@@ -16,26 +16,26 @@
 package org.onosproject.ovsdb.rfc.error;
 
 /**
- * This exception is thrown when a result does not meet any of the known formats
- * in RFC7047.
+ * This exception is thrown when the caller invoke the unsupported method or
+ * use the encoding is not supported.
  */
-public class UnknownResultException extends RuntimeException {
+public class UnsupportedException extends RuntimeException {
     private static final long serialVersionUID = 1377011546616825375L;
 
     /**
-     * Constructs a UnknownResultException object.
+     * Constructs a UnsupportedException object.
      * @param message error message
      */
-    public UnknownResultException(String message) {
+    public UnsupportedException(String message) {
         super(message);
     }
 
     /**
-     * Constructs a UnknownResultException object.
+     * Constructs a UnsupportedException object.
      * @param message error message
      * @param cause Throwable
      */
-    public UnknownResultException(String message, Throwable cause) {
+    public UnsupportedException(String message, Throwable cause) {
         super(message, cause);
     }
 }
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/VersionMismatchException.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/VersionMismatchException.java
index 68d63b9..10d278b 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/VersionMismatchException.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/error/VersionMismatchException.java
@@ -15,7 +15,6 @@
  */
 package org.onosproject.ovsdb.rfc.error;
 
-import static com.google.common.base.MoreObjects.toStringHelper;
 
 /**
  * This exception is used when the a table or row is accessed though a typed
@@ -47,15 +46,9 @@
      * @param fromVersion the initial version
      * @return message
      */
-    public static String createFromMessage(String actualVersion,
-                                           String fromVersion) {
-        String message = toStringHelper("VersionMismatchException")
-                .addValue("The fromVersion should less than the actualVersion.\n"
-                                  + "fromVersion: "
-                                  + fromVersion
-                                  + ".\n"
-                                  + "actualVersion: " + actualVersion)
-                .toString();
+    public static String createFromMessage(String actualVersion, String fromVersion) {
+        String message = "The fromVersion should less than the actualVersion.\n fromVersion: "
+                + fromVersion + ".\n" + "actualVersion: " + actualVersion;
         return message;
     }
 
@@ -66,13 +59,8 @@
      * @return message
      */
     public static String createToMessage(String actualVersion, String toVersion) {
-        String message = toStringHelper("VersionMismatchException")
-                .addValue("The toVersion should greater than the required version.\n"
-                                  + "toVersion: "
-                                  + toVersion
-                                  + ".\n"
-                                  + "Actual Version: " + actualVersion)
-                .toString();
+        String message = "The toVersion should greater than the actualVersion.\n"
+                + "toVersion: " + toVersion + ".\n" + " actualVersion: " + actualVersion;
         return message;
     }
 }
diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/message/UpdateNotification.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/message/UpdateNotification.java
index 74dd2a6..d539ff3 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/message/UpdateNotification.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/message/UpdateNotification.java
@@ -1,90 +1,90 @@
-/*
- * 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.message;
-
-import static com.google.common.base.MoreObjects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Objects;
-
-import org.onosproject.ovsdb.rfc.notation.json.UpdateNotificationConverter;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-
-/**
- * The "update" notification is sent by the server to the client to report
- * changes in tables that are being monitored following a "monitor" request. The
- * "params" of the result JsonNode.
- */
-@JsonDeserialize(converter = UpdateNotificationConverter.class)
-public final class UpdateNotification {
-    private final Object context;
-    private final JsonNode tbUpdatesJsonNode;
-
-    /**
-     * Constructs a UpdateNotification object.
-     * @param context the "json-value" in "params" of the result JsonNode
-     * @param tbUpdatesJsonNode the "table-updates" in "params" of the result JsonNode
-     */
-    public UpdateNotification(Object context, JsonNode tbUpdatesJsonNode) {
-        checkNotNull(context, "context cannot be null");
-        checkNotNull(tbUpdatesJsonNode, "tablebUpdates JsonNode cannot be null");
-        this.context = context;
-        this.tbUpdatesJsonNode = tbUpdatesJsonNode;
-    }
-
-    /**
-     * Return context.
-     * @return context
-     */
-    public Object context() {
-        return context;
-    }
-
-    /**
-     * Return tbUpdatesJsonNode.
-     * @return tbUpdatesJsonNode
-     */
-    public JsonNode tbUpdatesJsonNode() {
-        return tbUpdatesJsonNode;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(context, tbUpdatesJsonNode);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj instanceof UpdateNotification) {
-            final UpdateNotification other = (UpdateNotification) obj;
-            return Objects.equals(this.context, other.context)
-                    && Objects.equals(this.tbUpdatesJsonNode,
-                                      other.tbUpdatesJsonNode);
-        }
-        return false;
-    }
-
-    @Override
-    public String toString() {
-        return toStringHelper(this).add("context", context)
-                .add("tbUpdatesJsonNode", tbUpdatesJsonNode).toString();
-    }
-}
+/*

+ * 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.message;

+

+import static com.google.common.base.MoreObjects.toStringHelper;

+import static com.google.common.base.Preconditions.checkNotNull;

+

+import java.util.Objects;

+

+import org.onosproject.ovsdb.rfc.notation.json.UpdateNotificationConverter;

+

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

+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

+

+/**

+ * The "update" notification is sent by the server to the client to report

+ * changes in tables that are being monitored following a "monitor" request. The

+ * "params" of the result JsonNode.

+ */

+@JsonDeserialize(converter = UpdateNotificationConverter.class)

+public final class UpdateNotification {

+    private final Object jsonValue;

+    private final JsonNode tbUpdatesJsonNode;

+

+    /**

+     * Constructs a UpdateNotification object.

+     * @param jsonValue the "json-value" in "params" of the result JsonNode

+     * @param tbUpdatesJsonNode the "table-updates" in "params" of the result JsonNode

+     */

+    public UpdateNotification(Object jsonValue, JsonNode tbUpdatesJsonNode) {

+        checkNotNull(jsonValue, "jsonValue cannot be null");

+        checkNotNull(tbUpdatesJsonNode, "tablebUpdates JsonNode cannot be null");

+        this.jsonValue = jsonValue;

+        this.tbUpdatesJsonNode = tbUpdatesJsonNode;

+    }

+

+    /**

+     * Return context.

+     * @return context

+     */

+    public Object jsonValue() {

+        return jsonValue;

+    }

+

+    /**

+     * Return tbUpdatesJsonNode.

+     * @return tbUpdatesJsonNode

+     */

+    public JsonNode tbUpdatesJsonNode() {

+        return tbUpdatesJsonNode;

+    }

+

+    @Override

+    public int hashCode() {

+        return Objects.hash(jsonValue, tbUpdatesJsonNode);

+    }

+

+    @Override

+    public boolean equals(Object obj) {

+        if (this == obj) {

+            return true;

+        }

+        if (obj instanceof UpdateNotification) {

+            final UpdateNotification other = (UpdateNotification) obj;

+            return Objects.equals(this.jsonValue, other.jsonValue)

+                    && Objects.equals(this.tbUpdatesJsonNode,

+                                      other.tbUpdatesJsonNode);

+        }

+        return false;

+    }

+

+    @Override

+    public String toString() {

+        return toStringHelper(this).add("jsonValue", jsonValue)

+                .add("tbUpdatesJsonNode", tbUpdatesJsonNode).toString();

+    }

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/Column.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/Column.java
index d2cce63..615eaac 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/Column.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/Column.java
@@ -1,86 +1,81 @@
-/*
- * 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;
-
-import static com.google.common.base.MoreObjects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Objects;
-
-import org.onosproject.ovsdb.rfc.schema.ColumnSchema;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-
-/**
- * Column is the basic element of the OpenVswitch database.
- */
-public final class Column {
-    @JsonIgnore
-    private final ColumnSchema schema;
-    private final Object data;
-
-    /**
-     * Column constructor.
-     * @param schema the column schema
-     * @param obj the data of the column
-     */
-    public Column(ColumnSchema schema, Object obj) {
-        checkNotNull(schema, "schema cannot be null");
-        checkNotNull(obj, "data cannot be null");
-        this.schema = schema;
-        this.data = obj;
-    }
-
-    /**
-     * Returns column data.
-     * @return column data
-     */
-    public Object data() {
-        return data;
-    }
-
-    /**
-     * Returns ColumnSchema.
-     * @return ColumnSchema
-     */
-    public ColumnSchema schema() {
-        return schema;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(schema, data);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj instanceof Column) {
-            final Column other = (Column) obj;
-            return Objects.equals(this.schema, other.schema)
-                    && Objects.equals(this.data, other.data);
-        }
-        return false;
-    }
-
-    @Override
-    public String toString() {
-        return toStringHelper(this).add("schema", schema).add("data", data)
-                .toString();
-    }
-}
+/*

+ * 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;

+

+import static com.google.common.base.MoreObjects.toStringHelper;

+import static com.google.common.base.Preconditions.checkNotNull;

+

+import java.util.Objects;

+

+/**

+ * Column is the basic element of the OpenVswitch database.

+ */

+public final class Column {

+    private final String columnName;

+    private final Object data;

+

+    /**

+     * Column constructor.

+     * @param columnName the column name

+     * @param obj the data of the column

+     */

+    public Column(String columnName, Object obj) {

+        checkNotNull(columnName, "columnName cannot be null");

+        checkNotNull(obj, "data cannot be null");

+        this.columnName = columnName;

+        this.data = obj;

+    }

+

+    /**

+     * Returns column data.

+     * @return column data

+     */

+    public Object data() {

+        return data;

+    }

+

+    /**

+     * Returns columnName.

+     * @return columnName

+     */

+    public String columnName() {

+        return columnName;

+    }

+

+    @Override

+    public int hashCode() {

+        return Objects.hash(columnName, data);

+    }

+

+    @Override

+    public boolean equals(Object obj) {

+        if (this == obj) {

+            return true;

+        }

+        if (obj instanceof Column) {

+            final Column other = (Column) obj;

+            return Objects.equals(this.columnName, other.columnName)

+                    && Objects.equals(this.data, other.data);

+        }

+        return false;

+    }

+

+    @Override

+    public String toString() {

+        return toStringHelper(this).add("columnName", columnName)

+                .add("data", data).toString();

+    }

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/Row.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/Row.java
index 27a4f54..9ef5b48 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/Row.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/notation/Row.java
@@ -1,136 +1,128 @@
-/*
- * 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;
-
-import static com.google.common.base.MoreObjects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-import org.onosproject.ovsdb.rfc.schema.ColumnSchema;
-import org.onosproject.ovsdb.rfc.schema.TableSchema;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.google.common.collect.Maps;
-
-/**
- * Row is the basic element of the OpenVswitch's table.
- */
-public final class Row {
-    @JsonIgnore
-    private TableSchema tableSchema;
-    private Map<String, Column> columns;
-
-    /**
-     * Row constructor.
-     */
-    public Row() {
-        this.columns = Maps.newHashMap();
-    }
-
-    /**
-     * Row constructor.
-     * @param tableSchema TableSchema entity
-     */
-    public Row(TableSchema tableSchema) {
-        checkNotNull(tableSchema, "tableSchema cannot be null");
-        this.tableSchema = tableSchema;
-        this.columns = Maps.newHashMap();
-    }
-
-    /**
-     * Row constructor.
-     * @param tableSchema TableSchema entity
-     * @param columns List of Column entity
-     */
-    public Row(TableSchema tableSchema, List<Column> columns) {
-        checkNotNull(tableSchema, "tableSchema cannot be null");
-        checkNotNull(columns, "columns cannot be null");
-        this.tableSchema = tableSchema;
-        this.columns = Maps.newHashMap();
-        for (Column column : columns) {
-            this.columns.put(column.schema().name(), column);
-        }
-    }
-
-    /**
-     * Returns tableSchema.
-     * @return tableSchema
-     */
-    public TableSchema getTableSchema() {
-        return tableSchema;
-    }
-
-    /**
-     * Set tableSchema value.
-     * @param tableSchema TableSchema entity
-     */
-    public void setTableSchema(TableSchema tableSchema) {
-        this.tableSchema = tableSchema;
-    }
-
-    /**
-     * Returns Column by ColumnSchema.
-     * @param schema ColumnSchema entity
-     * @return Column
-     */
-    public Column getColumn(ColumnSchema schema) {
-        return (Column) columns.get(schema.name());
-    }
-
-    /**
-     * Returns Collection of Column.
-     * @return Collection of Column
-     */
-    public Collection<Column> getColumns() {
-        return columns.values();
-    }
-
-    /**
-     * add Column.
-     * @param columnName column name
-     * @param data Column entity
-     */
-    public void addColumn(String columnName, Column data) {
-        this.columns.put(columnName, data);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(tableSchema, columns);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj instanceof Row) {
-            final Row other = (Row) obj;
-            return Objects.equals(this.tableSchema, other.tableSchema)
-                    && Objects.equals(this.columns, other.columns);
-        }
-        return false;
-    }
-
-    @Override
-    public String toString() {
-        return toStringHelper(this).add("tableSchema", tableSchema).add("columns", columns).toString();
-    }
-}
+/*

+ * 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;

+

+import static com.google.common.base.MoreObjects.toStringHelper;

+import static com.google.common.base.Preconditions.checkNotNull;

+

+import java.util.Collection;

+import java.util.Map;

+import java.util.Objects;

+

+import com.google.common.collect.Maps;

+

+/**

+ * Row is the basic element of the OpenVswitch's table.

+ */

+public final class Row {

+    private String tableName;

+    private Map<String, Column> columns;

+

+    /**

+     * Row constructor.

+     */

+    public Row() {

+        this.columns = Maps.newHashMap();

+    }

+

+    /**

+     * Row constructor.

+     * @param tableName table name

+     */

+    public Row(String tableName) {

+        checkNotNull(tableName, "tableName cannot be null");

+        this.tableName = tableName;

+        this.columns = Maps.newHashMap();

+    }

+

+    /**

+     * Row constructor.

+     * @param tableName table name

+     * @param columns Map of Column entity

+     */

+    public Row(String tableName, Map<String, Column> columns) {

+        checkNotNull(tableName, "table name cannot be null");

+        checkNotNull(columns, "columns cannot be null");

+        this.tableName = tableName;

+        this.columns = columns;

+    }

+

+    /**

+     * Returns tableName.

+     * @return tableName

+     */

+    public String tableName() {

+        return tableName;

+    }

+

+    /**

+     * Set tableName value.

+     * @param tableName table name

+     */

+    public void setTableName(String tableName) {

+        this.tableName = tableName;

+    }

+

+    /**

+     * Returns Column by ColumnSchema.

+     * @param columnName column name

+     * @return Column

+     */

+    public Column getColumn(String columnName) {

+        return columns.get(columnName);

+    }

+

+    /**

+     * Returns Collection of Column.

+     * @return Collection of Column

+     */

+    public Collection<Column> getColumns() {

+        return columns.values();

+    }

+

+    /**

+     * add Column.

+     * @param columnName column name

+     * @param data Column entity

+     */

+    public void addColumn(String columnName, Column data) {

+        this.columns.put(columnName, data);

+    }

+

+    @Override

+    public int hashCode() {

+        return Objects.hash(tableName, columns);

+    }

+

+    @Override

+    public boolean equals(Object obj) {

+        if (this == obj) {

+            return true;

+        }

+        if (obj instanceof Row) {

+            final Row other = (Row) obj;

+            return Objects.equals(this.tableName, other.tableName)

+                    && Objects.equals(this.columns, other.columns);

+        }

+        return false;

+    }

+

+    @Override

+    public String toString() {

+        return toStringHelper(this).add("tableName", tableName)

+                .add("columns", columns).toString();

+    }

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Delete.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Delete.java
index 05fa9b8..8dcf1fc 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Delete.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Delete.java
@@ -1,77 +1,77 @@
-/*
- * 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.operations;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.List;
-
-import org.onosproject.ovsdb.rfc.notation.Condition;
-import org.onosproject.ovsdb.rfc.schema.TableSchema;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- * delete operation.Refer to RFC 7047 Section 5.2.
- */
-public final class Delete implements Operation {
-
-    @JsonIgnore
-    private final TableSchema tableSchema;
-    private final String op;
-    private final List<Condition> where;
-
-    /**
-     * Constructs a Delete object.
-     * @param schema TableSchema entity
-     * @param where the List of Condition entity
-     */
-    public Delete(TableSchema schema, List<Condition> where) {
-        checkNotNull(schema, "TableSchema cannot be null");
-        checkNotNull(where, "where is not null");
-        this.tableSchema = schema;
-        this.op = Operations.DELETE.op();
-        this.where = where;
-    }
-
-    /**
-     * Returns the where member of delete operation.
-     * @return the where member of delete operation
-     */
-    public List<Condition> getWhere() {
-        return where;
-    }
-
-    @Override
-    public String getOp() {
-        return op;
-    }
-
-    @Override
-    public TableSchema getTableSchema() {
-        return tableSchema;
-    }
-
-    /**
-     * For the use of serialization.
-     * @return the table member of update operation
-     */
-    @JsonProperty
-    public String getTable() {
-        return (tableSchema == null) ? null : tableSchema.name();
-    }
-}
+/*

+ * 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.operations;

+

+import static com.google.common.base.Preconditions.checkNotNull;

+

+import java.util.List;

+

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

+import org.onosproject.ovsdb.rfc.schema.TableSchema;

+

+import com.fasterxml.jackson.annotation.JsonIgnore;

+import com.fasterxml.jackson.annotation.JsonProperty;

+

+/**

+ * delete operation.Refer to RFC 7047 Section 5.2.

+ */

+public final class Delete implements Operation {

+

+    @JsonIgnore

+    private final TableSchema tableSchema;

+    private final String op;

+    private final List<Condition> where;

+

+    /**

+     * Constructs a Delete object.

+     * @param schema TableSchema entity

+     * @param where the List of Condition entity

+     */

+    public Delete(TableSchema schema, List<Condition> where) {

+        checkNotNull(schema, "TableSchema cannot be null");

+        checkNotNull(where, "where is not null");

+        this.tableSchema = schema;

+        this.op = Operations.DELETE.op();

+        this.where = where;

+    }

+

+    /**

+     * Returns the where member of delete operation.

+     * @return the where member of delete operation

+     */

+    public List<Condition> getWhere() {

+        return where;

+    }

+

+    @Override

+    public String getOp() {

+        return op;

+    }

+

+    @Override

+    public TableSchema getTableSchema() {

+        return tableSchema;

+    }

+

+    /**

+     * For the use of serialization.

+     * @return the table member of update operation

+     */

+    @JsonProperty

+    public String getTable() {

+        return tableSchema.name();

+    }

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Insert.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Insert.java
index 4186945..32e5ce0 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Insert.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Insert.java
@@ -1,111 +1,110 @@
-/*
- * 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.operations;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Collection;
-import java.util.Map;
-
-import org.onosproject.ovsdb.rfc.notation.Column;
-import org.onosproject.ovsdb.rfc.notation.Row;
-import org.onosproject.ovsdb.rfc.schema.ColumnSchema;
-import org.onosproject.ovsdb.rfc.schema.TableSchema;
-import org.onosproject.ovsdb.rfc.utils.TransValueUtil;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.collect.Maps;
-
-/**
- * insert operation.Refer to RFC 7047 Section 5.2.
- */
-public final class Insert implements Operation {
-
-    @JsonIgnore
-    private final TableSchema tableSchema;
-    private final String op;
-    @JsonProperty("uuid-name")
-    private final String uuidName;
-    private final Map<String, Object> row;
-
-    /**
-     * Constructs a Insert object.
-     * @param schema TableSchema entity
-     * @param uuidName uuid-name
-     * @param row Row entity
-     */
-    public Insert(TableSchema schema, String uuidName, Row row) {
-        checkNotNull(schema, "TableSchema cannot be null");
-        checkNotNull(uuidName, "uuid name cannot be null");
-        checkNotNull(row, "row cannot be null");
-        this.tableSchema = schema;
-        this.op = Operations.INSERT.op();
-        this.uuidName = uuidName;
-        this.row = Maps.newHashMap();
-        generateOperationRow(row);
-    }
-
-    /**
-     * Row entity convert into the row format of insert operation. Refer to RFC
-     * 7047 Section 5.2.
-     * @param row Row entity
-     */
-    private void generateOperationRow(Row row) {
-        Collection<Column> columns = row.getColumns();
-        for (Column column : columns) {
-            ColumnSchema columnSchema = column.schema();
-            Object value = column.data();
-            Object untypedValue = TransValueUtil.getFormatData(value);
-            this.row.put(columnSchema.name(), untypedValue);
-        }
-    }
-
-    /**
-     * Returns the uuid-name member of insert operation.
-     * @return the uuid-name member of insert operation
-     */
-    public String getUuidName() {
-        return uuidName;
-    }
-
-    /**
-     * Returns the row member of insert operation.
-     * @return the row member of insert operation
-     */
-    public Map<String, Object> getRow() {
-        return row;
-    }
-
-    @Override
-    public String getOp() {
-        return op;
-    }
-
-    @Override
-    public TableSchema getTableSchema() {
-        return tableSchema;
-    }
-
-    /**
-     * For the use of serialization.
-     * @return the table member of update operation
-     */
-    @JsonProperty
-    public String getTable() {
-        return (tableSchema == null) ? null : tableSchema.name();
-    }
-}
+/*

+ * 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.operations;

+

+import static com.google.common.base.Preconditions.checkNotNull;

+

+import java.util.Collection;

+import java.util.Map;

+

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

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

+import org.onosproject.ovsdb.rfc.schema.TableSchema;

+import org.onosproject.ovsdb.rfc.utils.TransValueUtil;

+

+import com.fasterxml.jackson.annotation.JsonIgnore;

+import com.fasterxml.jackson.annotation.JsonProperty;

+import com.google.common.collect.Maps;

+

+/**

+ * insert operation.Refer to RFC 7047 Section 5.2.

+ */

+public final class Insert implements Operation {

+

+    @JsonIgnore

+    private final TableSchema tableSchema;

+    private final String op;

+    @JsonProperty("uuid-name")

+    private final String uuidName;

+    private final Map<String, Object> row;

+

+    /**

+     * Constructs a Insert object.

+     * @param schema TableSchema entity

+     * @param uuidName uuid-name

+     * @param row Row entity

+     */

+    public Insert(TableSchema schema, String uuidName, Row row) {

+        checkNotNull(schema, "TableSchema cannot be null");

+        checkNotNull(uuidName, "uuid name cannot be null");

+        checkNotNull(row, "row cannot be null");

+        this.tableSchema = schema;

+        this.op = Operations.INSERT.op();

+        this.uuidName = uuidName;

+        this.row = Maps.newHashMap();

+        generateOperationRow(row);

+    }

+

+    /**

+     * Row entity convert into the row format of insert operation. Refer to RFC

+     * 7047 Section 5.2.

+     * @param row Row entity

+     */

+    private void generateOperationRow(Row row) {

+        Collection<Column> columns = row.getColumns();

+        for (Column column : columns) {

+            String columnName = column.columnName();

+            Object value = column.data();

+            Object formatValue = TransValueUtil.getFormatData(value);

+            this.row.put(columnName, formatValue);

+        }

+    }

+

+    /**

+     * Returns the uuid-name member of insert operation.

+     * @return the uuid-name member of insert operation

+     */

+    public String getUuidName() {

+        return uuidName;

+    }

+

+    /**

+     * Returns the row member of insert operation.

+     * @return the row member of insert operation

+     */

+    public Map<String, Object> getRow() {

+        return row;

+    }

+

+    @Override

+    public String getOp() {

+        return op;

+    }

+

+    @Override

+    public TableSchema getTableSchema() {

+        return tableSchema;

+    }

+

+    /**

+     * For the use of serialization.

+     * @return the table member of update operation

+     */

+    @JsonProperty

+    public String getTable() {

+        return tableSchema.name();

+    }

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Mutate.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Mutate.java
index 7b5e0f7..1a7023d 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Mutate.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Mutate.java
@@ -1,91 +1,91 @@
-/*
- * 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.operations;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.List;
-
-import org.onosproject.ovsdb.rfc.notation.Condition;
-import org.onosproject.ovsdb.rfc.notation.Mutation;
-import org.onosproject.ovsdb.rfc.schema.TableSchema;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- * mutate operation.Refer to RFC 7047 Section 5.2.
- */
-public final class Mutate implements Operation {
-
-    @JsonIgnore
-    private final TableSchema tableSchema;
-    private final String op;
-    private final List<Condition> where;
-    private final List<Mutation> mutations;
-
-    /**
-     * Constructs a Mutate object.
-     * @param schema TableSchema entity
-     * @param where the List of Condition entity
-     * @param mutations the List of Mutation entity
-     */
-    public Mutate(TableSchema schema, List<Condition> where,
-                  List<Mutation> mutations) {
-        checkNotNull(schema, "TableSchema cannot be null");
-        checkNotNull(mutations, "mutations cannot be null");
-        checkNotNull(where, "where cannot be null");
-        this.tableSchema = schema;
-        this.op = Operations.MUTATE.op();
-        this.where = where;
-        this.mutations = mutations;
-    }
-
-    /**
-     * Returns the mutations member of mutate operation.
-     * @return the mutations member of mutate operation
-     */
-    public List<Mutation> getMutations() {
-        return mutations;
-    }
-
-    /**
-     * Returns the where member of mutate operation.
-     * @return the where member of mutate operation
-     */
-    public List<Condition> getWhere() {
-        return where;
-    }
-
-    @Override
-    public String getOp() {
-        return op;
-    }
-
-    @Override
-    public TableSchema getTableSchema() {
-        return tableSchema;
-    }
-
-    /**
-     * For the use of serialization.
-     * @return the table member of update operation
-     */
-    @JsonProperty
-    public String getTable() {
-        return (tableSchema == null) ? null : tableSchema.name();
-    }
-}
+/*

+ * 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.operations;

+

+import static com.google.common.base.Preconditions.checkNotNull;

+

+import java.util.List;

+

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

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

+import org.onosproject.ovsdb.rfc.schema.TableSchema;

+

+import com.fasterxml.jackson.annotation.JsonIgnore;

+import com.fasterxml.jackson.annotation.JsonProperty;

+

+/**

+ * mutate operation.Refer to RFC 7047 Section 5.2.

+ */

+public final class Mutate implements Operation {

+

+    @JsonIgnore

+    private final TableSchema tableSchema;

+    private final String op;

+    private final List<Condition> where;

+    private final List<Mutation> mutations;

+

+    /**

+     * Constructs a Mutate object.

+     * @param schema TableSchema entity

+     * @param where the List of Condition entity

+     * @param mutations the List of Mutation entity

+     */

+    public Mutate(TableSchema schema, List<Condition> where,

+                  List<Mutation> mutations) {

+        checkNotNull(schema, "TableSchema cannot be null");

+        checkNotNull(mutations, "mutations cannot be null");

+        checkNotNull(where, "where cannot be null");

+        this.tableSchema = schema;

+        this.op = Operations.MUTATE.op();

+        this.where = where;

+        this.mutations = mutations;

+    }

+

+    /**

+     * Returns the mutations member of mutate operation.

+     * @return the mutations member of mutate operation

+     */

+    public List<Mutation> getMutations() {

+        return mutations;

+    }

+

+    /**

+     * Returns the where member of mutate operation.

+     * @return the where member of mutate operation

+     */

+    public List<Condition> getWhere() {

+        return where;

+    }

+

+    @Override

+    public String getOp() {

+        return op;

+    }

+

+    @Override

+    public TableSchema getTableSchema() {

+        return tableSchema;

+    }

+

+    /**

+     * For the use of serialization.

+     * @return the table member of update operation

+     */

+    @JsonProperty

+    public String getTable() {

+        return tableSchema.name();

+    }

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Select.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Select.java
index a8571c9..7c75710 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Select.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Select.java
@@ -1,89 +1,89 @@
-/*
- * 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.operations;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.List;
-
-import org.onosproject.ovsdb.rfc.notation.Condition;
-import org.onosproject.ovsdb.rfc.schema.TableSchema;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-/**
- * select operation.Refer to RFC 7047 Section 5.2.
- */
-public final class Select implements Operation {
-
-    @JsonIgnore
-    private final TableSchema tableSchema;
-    private final String op;
-    private final List<Condition> where;
-    private final List<String> columns;
-
-    /**
-     * Constructs a Select object.
-     * @param schema TableSchema entity
-     * @param where the List of Condition entity
-     * @param columns the List of column name
-     */
-    public Select(TableSchema schema, List<Condition> where, List<String> columns) {
-        checkNotNull(schema, "TableSchema cannot be null");
-        checkNotNull(where, "where cannot be null");
-        checkNotNull(columns, "columns cannot be null");
-        this.tableSchema = schema;
-        this.op = Operations.SELECT.op();
-        this.where = where;
-        this.columns = columns;
-    }
-
-    /**
-     * Returns the columns member of select operation.
-     * @return the columns member of select operation
-     */
-    public List<String> getColumns() {
-        return columns;
-    }
-
-    /**
-     * Returns the where member of select operation.
-     * @return the where member of select operation
-     */
-    public List<Condition> getWhere() {
-        return where;
-    }
-
-    @Override
-    public String getOp() {
-        return op;
-    }
-
-    @Override
-    public TableSchema getTableSchema() {
-        return tableSchema;
-    }
-
-    /**
-     * For the use of serialization.
-     * @return the table member of update operation
-     */
-    @JsonProperty
-    public String getTable() {
-        return (tableSchema == null) ? null : tableSchema.name();
-    }
-}
+/*

+ * 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.operations;

+

+import static com.google.common.base.Preconditions.checkNotNull;

+

+import java.util.List;

+

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

+import org.onosproject.ovsdb.rfc.schema.TableSchema;

+

+import com.fasterxml.jackson.annotation.JsonIgnore;

+import com.fasterxml.jackson.annotation.JsonProperty;

+

+/**

+ * select operation.Refer to RFC 7047 Section 5.2.

+ */

+public final class Select implements Operation {

+

+    @JsonIgnore

+    private final TableSchema tableSchema;

+    private final String op;

+    private final List<Condition> where;

+    private final List<String> columns;

+

+    /**

+     * Constructs a Select object.

+     * @param schema TableSchema entity

+     * @param where the List of Condition entity

+     * @param columns the List of column name

+     */

+    public Select(TableSchema schema, List<Condition> where, List<String> columns) {

+        checkNotNull(schema, "TableSchema cannot be null");

+        checkNotNull(where, "where cannot be null");

+        checkNotNull(columns, "columns cannot be null");

+        this.tableSchema = schema;

+        this.op = Operations.SELECT.op();

+        this.where = where;

+        this.columns = columns;

+    }

+

+    /**

+     * Returns the columns member of select operation.

+     * @return the columns member of select operation

+     */

+    public List<String> getColumns() {

+        return columns;

+    }

+

+    /**

+     * Returns the where member of select operation.

+     * @return the where member of select operation

+     */

+    public List<Condition> getWhere() {

+        return where;

+    }

+

+    @Override

+    public String getOp() {

+        return op;

+    }

+

+    @Override

+    public TableSchema getTableSchema() {

+        return tableSchema;

+    }

+

+    /**

+     * For the use of serialization.

+     * @return the table member of update operation

+     */

+    @JsonProperty

+    public String getTable() {

+        return tableSchema.name();

+    }

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Update.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Update.java
index 839e834..8f21f9c 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Update.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/operations/Update.java
@@ -1,112 +1,111 @@
-/*
- * 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.operations;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import org.onosproject.ovsdb.rfc.notation.Column;
-import org.onosproject.ovsdb.rfc.notation.Condition;
-import org.onosproject.ovsdb.rfc.notation.Row;
-import org.onosproject.ovsdb.rfc.schema.ColumnSchema;
-import org.onosproject.ovsdb.rfc.schema.TableSchema;
-import org.onosproject.ovsdb.rfc.utils.TransValueUtil;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.collect.Maps;
-
-/**
- * update operation.Refer to RFC 7047 Section 5.2.
- */
-public final class Update implements Operation {
-
-    @JsonIgnore
-    private final TableSchema tableSchema;
-    private final String op;
-    private final Map<String, Object> row;
-    private final List<Condition> where;
-
-    /**
-     * Constructs a Update object.
-     * @param schema TableSchema entity
-     * @param row Row entity
-     * @param where the List of Condition entity
-     */
-    public Update(TableSchema schema, Row row, List<Condition> where) {
-        checkNotNull(schema, "TableSchema cannot be null");
-        checkNotNull(row, "row cannot be null");
-        checkNotNull(where, "where cannot be null");
-        this.tableSchema = schema;
-        this.op = Operations.UPDATE.op();
-        this.row = Maps.newHashMap();
-        this.where = where;
-        generateOperationRow(row);
-    }
-
-    /**
-     * Row entity convert into the row format of update operation. Refer to RFC
-     * 7047 Section 5.2.
-     * @param row Row entity
-     */
-    private void generateOperationRow(Row row) {
-        Collection<Column> columns = row.getColumns();
-        for (Column column : columns) {
-            ColumnSchema columnSchema = column.schema();
-            Object value = column.data();
-            Object untypedValue = TransValueUtil.getFormatData(value);
-            this.row.put(columnSchema.name(), untypedValue);
-        }
-    }
-
-    /**
-     * Returns the row member of update operation.
-     * @return the row member of update operation
-     */
-    public Map<String, Object> getRow() {
-        return row;
-    }
-
-    /**
-     * Returns the where member of update operation.
-     * @return the where member of update operation
-     */
-    public List<Condition> getWhere() {
-        return where;
-    }
-
-    @Override
-    public String getOp() {
-        return op;
-    }
-
-    @Override
-    public TableSchema getTableSchema() {
-        return tableSchema;
-    }
-
-    /**
-     * For the use of serialization.
-     * @return the table member of update operation
-     */
-    @JsonProperty
-    public String getTable() {
-        return (tableSchema == null) ? null : tableSchema.name();
-    }
-}
+/*

+ * 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.operations;

+

+import static com.google.common.base.Preconditions.checkNotNull;

+

+import java.util.Collection;

+import java.util.List;

+import java.util.Map;

+

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

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

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

+import org.onosproject.ovsdb.rfc.schema.TableSchema;

+import org.onosproject.ovsdb.rfc.utils.TransValueUtil;

+

+import com.fasterxml.jackson.annotation.JsonIgnore;

+import com.fasterxml.jackson.annotation.JsonProperty;

+import com.google.common.collect.Maps;

+

+/**

+ * update operation.Refer to RFC 7047 Section 5.2.

+ */

+public final class Update implements Operation {

+

+    @JsonIgnore

+    private final TableSchema tableSchema;

+    private final String op;

+    private final Map<String, Object> row;

+    private final List<Condition> where;

+

+    /**

+     * Constructs a Update object.

+     * @param schema TableSchema entity

+     * @param row Row entity

+     * @param where the List of Condition entity

+     */

+    public Update(TableSchema schema, Row row, List<Condition> where) {

+        checkNotNull(schema, "TableSchema cannot be null");

+        checkNotNull(row, "row cannot be null");

+        checkNotNull(where, "where cannot be null");

+        this.tableSchema = schema;

+        this.op = Operations.UPDATE.op();

+        this.row = Maps.newHashMap();

+        this.where = where;

+        generateOperationRow(row);

+    }

+

+    /**

+     * Row entity convert into the row format of update operation. Refer to RFC

+     * 7047 Section 5.2.

+     * @param row Row entity

+     */

+    private void generateOperationRow(Row row) {

+        Collection<Column> columns = row.getColumns();

+        for (Column column : columns) {

+            String columnName = column.columnName();

+            Object value = column.data();

+            Object formatValue = TransValueUtil.getFormatData(value);

+            this.row.put(columnName, formatValue);

+        }

+    }

+

+    /**

+     * Returns the row member of update operation.

+     * @return the row member of update operation

+     */

+    public Map<String, Object> getRow() {

+        return row;

+    }

+

+    /**

+     * Returns the where member of update operation.

+     * @return the where member of update operation

+     */

+    public List<Condition> getWhere() {

+        return where;

+    }

+

+    @Override

+    public String getOp() {

+        return op;

+    }

+

+    @Override

+    public TableSchema getTableSchema() {

+        return tableSchema;

+    }

+

+    /**

+     * For the use of serialization.

+     * @return the table member of update operation

+     */

+    @JsonProperty

+    public String getTable() {

+        return tableSchema.name();

+    }

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/BaseTypeFactory.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/BaseTypeFactory.java
index 0fd69a3..da60813 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/BaseTypeFactory.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/BaseTypeFactory.java
@@ -17,8 +17,9 @@
 

 import java.util.Set;

 

-import org.onosproject.ovsdb.rfc.error.TypedSchemaException;

+import org.onosproject.ovsdb.rfc.error.AbnormalJsonNodeException;

 import org.onosproject.ovsdb.rfc.schema.type.UuidBaseType.RefType;

+import org.onosproject.ovsdb.rfc.utils.ObjectMapperUtil;

 

 import com.fasterxml.jackson.databind.JsonNode;

 import com.google.common.collect.Sets;

@@ -29,27 +30,29 @@
 public final class BaseTypeFactory {

 

     /**

-     * Constructs a BaseTypeFactory object.

-     * This class should not be instantiated.

+     * Constructs a BaseTypeFactory object. This class should not be

+     * instantiated.

      */

     private BaseTypeFactory() {

     }

 

     /**

      * Create a BaseType from the JsonNode.

-     * @param json the BaseType JsonNode

+     * @param baseTypeJson the BaseType JsonNode

      * @param keyorval the key node or value node

      * @return BaseType

      */

-    public static BaseType getBaseTypeFromJson(JsonNode json, String keyorval) {

-        if (json.isValueNode()) {

-            String type = json.asText().trim();

+    public static BaseType getBaseTypeFromJson(JsonNode baseTypeJson, String keyorval) {

+        if (baseTypeJson.isValueNode()) {

+            String type = baseTypeJson.asText().trim();

             return fromTypeStr(type);

         } else {

-            if (!json.has(keyorval)) {

-                throw new TypedSchemaException("not a type");

+            if (!baseTypeJson.has(keyorval)) {

+                String message = "Abnormal BaseType JsonNode, it should contain 'key' or 'value' node but was not found"

+                        + ObjectMapperUtil.convertToString(baseTypeJson);

+                throw new AbnormalJsonNodeException(message);

             }

-            return fromJsonNode(json.get(keyorval));

+            return fromJsonNode(baseTypeJson.get(keyorval));

         }

     }

 

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/ColumnTypeFactory.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/ColumnTypeFactory.java
index 0a81c0a..1af6974 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/ColumnTypeFactory.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/schema/type/ColumnTypeFactory.java
@@ -15,7 +15,7 @@
  */

 package org.onosproject.ovsdb.rfc.schema.type;

 

-import org.onosproject.ovsdb.rfc.error.TypedSchemaException;

+import org.onosproject.ovsdb.rfc.error.AbnormalJsonNodeException;

 import org.onosproject.ovsdb.rfc.utils.ObjectMapperUtil;

 

 import com.fasterxml.jackson.databind.JsonNode;

@@ -26,8 +26,8 @@
 public final class ColumnTypeFactory {

 

     /**

-     * Constructs a ColumnTypeFactory object.

-     * This class should not be instantiated.

+     * Constructs a ColumnTypeFactory object. This class should not be

+     * instantiated.

      */

     private ColumnTypeFactory() {

     }

@@ -54,20 +54,22 @@
     }

 

     /**

-     * JsonNode like "flow_tables":{"type":{"key":{"maxInteger":254,"minInteger":0,"type":

+     * JsonNode like

+     * "flow_tables":{"type":{"key":{"maxInteger":254,"minInteger":0,"type":

      * "integer"},"min":0,"value":{"type":"uuid","refTable":"Flow_Table"},"max":

      * "unlimited"}}.

-     * @param json the ColumnType JsonNode

+     * @param columnTypeJson the ColumnType JsonNode

      * @return ColumnType

      */

-    public static ColumnType getColumnTypeFromJson(JsonNode json) {

-        if (!json.isObject() || !json.has(Type.VALUE.type())) {

-            return createAtomicColumnType(json);

-        } else if (!json.isValueNode() && json.has(Type.VALUE.type())) {

-            return createKeyValuedColumnType(json);

+    public static ColumnType getColumnTypeFromJson(JsonNode columnTypeJson) {

+        if (!columnTypeJson.isObject() || !columnTypeJson.has(Type.VALUE.type())) {

+            return createAtomicColumnType(columnTypeJson);

+        } else if (!columnTypeJson.isValueNode() && columnTypeJson.has(Type.VALUE.type())) {

+            return createKeyValuedColumnType(columnTypeJson);

         }

-        throw new TypedSchemaException("could not find the right column type :"

-                + ObjectMapperUtil.convertToString(json));

+        String message = "Abnormal ColumnType JsonNode, it should be AtomicColumnType or KeyValuedColumnType"

+                + ObjectMapperUtil.convertToString(columnTypeJson);

+        throw new AbnormalJsonNodeException(message);

     }

 

     /**

@@ -76,12 +78,11 @@
      * @return AtomicColumnType entity

      */

     private static AtomicColumnType createAtomicColumnType(JsonNode json) {

-        BaseType baseType = BaseTypeFactory

-                .getBaseTypeFromJson(json, Type.KEY.type());

+        BaseType baseType = BaseTypeFactory.getBaseTypeFromJson(json, Type.KEY.type());

         int min = 1;

         int max = 1;

         JsonNode node = json.get("min");

-        if (node != null) {

+        if (node != null && node.isNumber()) {

             min = node.asInt();

         }

         node = json.get("max");

@@ -101,14 +102,12 @@
      * @return KeyValuedColumnType entity

      */

     private static KeyValuedColumnType createKeyValuedColumnType(JsonNode json) {

-        BaseType keyType = BaseTypeFactory.getBaseTypeFromJson(json,

-                                                               Type.KEY.type());

-        BaseType valueType = BaseTypeFactory

-                .getBaseTypeFromJson(json, Type.VALUE.type());

+        BaseType keyType = BaseTypeFactory.getBaseTypeFromJson(json, Type.KEY.type());

+        BaseType valueType = BaseTypeFactory.getBaseTypeFromJson(json, Type.VALUE.type());

         int min = 1;

         int max = 1;

         JsonNode node = json.get("min");

-        if (node != null) {

+        if (node != null && node.isNumber()) {

             min = node.asInt();

         }

         node = json.get("max");

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/tableservice/AbstractOvsdbTableService.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/tableservice/AbstractOvsdbTableService.java
index 0fd6214..a65ed12 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/tableservice/AbstractOvsdbTableService.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/tableservice/AbstractOvsdbTableService.java
@@ -1,327 +1,284 @@
-/*
- * 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.tableservice;
-
-import static com.google.common.base.MoreObjects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Objects;
-
-import org.onosproject.ovsdb.rfc.error.ColumnSchemaNotFoundException;
-import org.onosproject.ovsdb.rfc.error.TableSchemaNotFoundException;
-import org.onosproject.ovsdb.rfc.error.TypedSchemaException;
-import org.onosproject.ovsdb.rfc.error.VersionMismatchException;
-import org.onosproject.ovsdb.rfc.notation.Column;
-import org.onosproject.ovsdb.rfc.notation.Row;
-import org.onosproject.ovsdb.rfc.notation.UUID;
-import org.onosproject.ovsdb.rfc.schema.ColumnSchema;
-import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
-import org.onosproject.ovsdb.rfc.schema.TableSchema;
-import org.onosproject.ovsdb.rfc.table.OvsdbTable;
-import org.onosproject.ovsdb.rfc.table.VersionNum;
-import org.onosproject.ovsdb.rfc.utils.VersionUtil;
-
-/**
- * Representation of conversion between Ovsdb table and Row.
- */
-public abstract class AbstractOvsdbTableService implements OvsdbTableService {
-
-    private final DatabaseSchema dbSchema;
-    private final Row row;
-    private final TableDescription tableDesc;
-
-    /**
-     * Constructs a AbstractOvsdbTableService object.
-     * @param dbSchema DatabaseSchema entity
-     * @param row Row entity
-     * @param table table name
-     * @param formVersion the initial version
-     */
-    public AbstractOvsdbTableService(DatabaseSchema dbSchema, Row row,
-                                     OvsdbTable table, VersionNum formVersion) {
-        checkNotNull(dbSchema, "database schema cannot be null");
-        checkNotNull(row, "row cannot be null");
-        checkNotNull(table, "table cannot be null");
-        checkNotNull(formVersion, "the initial version cannot be null");
-        this.dbSchema = dbSchema;
-        this.row = row;
-        TableDescription tableDesc = new TableDescription(table, formVersion);
-        this.tableDesc = tableDesc;
-        row.setTableSchema(dbSchema.getTableSchema(table.tableName()));
-    }
-
-    /**
-     * Check whether the parameter of dbSchema is valid and check whether the
-     * table is existent in Database Schema.
-     */
-    private boolean isValid() {
-        if (dbSchema == null) {
-            return false;
-        }
-        if (!dbSchema.name().equalsIgnoreCase(tableDesc.database())) {
-            return false;
-        }
-        checkTableSchemaVersion();
-        return true;
-    }
-
-    /**
-     * Check the table version.
-     */
-    private void checkTableSchemaVersion() {
-        String fromVersion = tableDesc.fromVersion();
-        String untilVersion = tableDesc.untilVersion();
-        String schemaVersion = dbSchema.version();
-        checkVersion(schemaVersion, fromVersion, untilVersion);
-    }
-
-    /**
-     * Check the column version.
-     * @param columnDesc ColumnDescription entity
-     */
-    private void checkColumnSchemaVersion(ColumnDescription columnDesc) {
-        String fromVersion = columnDesc.fromVersion();
-        String untilVersion = columnDesc.untilVersion();
-        String schemaVersion = dbSchema.version();
-        checkVersion(schemaVersion, fromVersion, untilVersion);
-    }
-
-    /**
-     * Check whether the DatabaseSchema version between the initial version and
-     * the end of the version.
-     * @param schemaVersion DatabaseSchema version
-     * @param fromVersion The initial version
-     * @param untilVersion The end of the version
-     * @throws VersionMismatchException this is a version mismatch exception
-     */
-    private void checkVersion(String schemaVersion, String fromVersion,
-                              String untilVersion) {
-        VersionUtil.versionMatch(fromVersion);
-        VersionUtil.versionMatch(untilVersion);
-        if (!fromVersion.equals(VersionUtil.DEFAULT_VERSION_STRING)) {
-            if (VersionUtil.versionCompare(schemaVersion, fromVersion) < 0) {
-                String message = VersionMismatchException
-                        .createFromMessage(schemaVersion, fromVersion);
-                throw new VersionMismatchException(message);
-            }
-        }
-        if (!untilVersion.equals(VersionUtil.DEFAULT_VERSION_STRING)) {
-            if (VersionUtil.versionCompare(untilVersion, schemaVersion) < 0) {
-                String message = VersionMismatchException
-                        .createToMessage(schemaVersion, untilVersion);
-                throw new VersionMismatchException(message);
-            }
-        }
-    }
-
-    /**
-     * Returns TableSchema from dbSchema by table name.
-     * @return TableSchema
-     */
-    private TableSchema getTableSchema() {
-        String tableName = tableDesc.name();
-        return dbSchema.getTableSchema(tableName);
-    }
-
-    /**
-     * Returns ColumnSchema from TableSchema by column name.
-     * @param tableSchema TableSchema entity
-     * @param columnName column name
-     * @return ColumnSchema
-     */
-    private ColumnSchema getColumnSchema(TableSchema tableSchema,
-                                         String columnName) {
-        return tableSchema.getColumnSchema(columnName);
-    }
-
-    @Override
-    public Column getColumnHandler(ColumnDescription columnDesc) {
-        if (!isValid()) {
-            return null;
-        }
-        String columnName = columnDesc.name();
-        checkColumnSchemaVersion(columnDesc);
-        if (columnName == null) {
-            throw new TypedSchemaException("Error processing GetColumn : "
-                    + tableDesc.name() + "." + columnDesc.method());
-        }
-        TableSchema tableSchema = getTableSchema();
-        if (tableSchema == null) {
-            String message = TableSchemaNotFoundException
-                    .createMessage(tableDesc.name(), dbSchema.name());
-            throw new TableSchemaNotFoundException(message);
-        }
-        ColumnSchema columnSchema = getColumnSchema(tableSchema, columnName);
-        if (columnSchema == null) {
-            String message = ColumnSchemaNotFoundException
-                    .createMessage(columnName, tableSchema.name());
-            throw new ColumnSchemaNotFoundException(message);
-        }
-        if (row == null) {
-            return new Column(columnSchema, null);
-        }
-        return row.getColumn(columnSchema);
-    }
-
-    @Override
-    public Object getDataHandler(ColumnDescription columnDesc) {
-        if (!isValid()) {
-            return null;
-        }
-        String columnName = columnDesc.name();
-        checkColumnSchemaVersion(columnDesc);
-        if (columnName == null) {
-            throw new TypedSchemaException("Error processing GetColumn : "
-                    + tableDesc.name() + "." + columnDesc.method());
-        }
-        TableSchema tableSchema = getTableSchema();
-        if (tableSchema == null) {
-            String message = TableSchemaNotFoundException
-                    .createMessage(tableDesc.name(), dbSchema.name());
-            throw new TableSchemaNotFoundException(message);
-        }
-        ColumnSchema columnSchema = getColumnSchema(tableSchema, columnName);
-        if (columnSchema == null) {
-            String message = ColumnSchemaNotFoundException
-                    .createMessage(columnName, tableSchema.name());
-            throw new ColumnSchemaNotFoundException(message);
-        }
-        if (row == null || row.getColumn(columnSchema) == null) {
-            return null;
-        }
-        return row.getColumn(columnSchema).data();
-    }
-
-    @Override
-    public void setDataHandler(ColumnDescription columnDesc, Object obj) {
-        if (!isValid()) {
-            return;
-        }
-        String columnName = columnDesc.name();
-        checkColumnSchemaVersion(columnDesc);
-        if (columnName == null) {
-            throw new TypedSchemaException("Unable to locate Column Name for "
-                    + tableDesc.name() + "." + columnDesc.method());
-        }
-        TableSchema tableSchema = getTableSchema();
-        ColumnSchema columnSchema = getColumnSchema(tableSchema, columnName);
-        Column column = new Column(columnSchema, obj);
-        row.addColumn(columnName, column);
-    }
-
-    @Override
-    public Object getTbSchema() {
-        if (!isValid()) {
-            return null;
-        }
-        if (dbSchema == null) {
-            return null;
-        }
-        return getTableSchema();
-    }
-
-    @Override
-    public UUID getUuid() {
-        if (!isValid()) {
-            return null;
-        }
-        ColumnDescription columnDesc = new ColumnDescription("_uuid",
-                                                             "getTbUuid");
-        return (UUID) getDataHandler(columnDesc);
-    }
-
-    @Override
-    public Column getUuidColumn() {
-        if (!isValid()) {
-            return null;
-        }
-        ColumnDescription columnDesc = new ColumnDescription("_uuid",
-                                                             "getTbUuidColumn");
-        return (Column) getColumnHandler(columnDesc);
-    }
-
-    @Override
-    public UUID getVersion() {
-        if (!isValid()) {
-            return null;
-        }
-        ColumnDescription columnDesc = new ColumnDescription("_version",
-                                                             "getTbVersion");
-        return (UUID) getDataHandler(columnDesc);
-    }
-
-    @Override
-    public Column getVersionColumn() {
-        if (!isValid()) {
-            return null;
-        }
-        ColumnDescription columnDesc = new ColumnDescription("_version",
-                                                             "getTbVersionColumn");
-        return (Column) getColumnHandler(columnDesc);
-    }
-
-    /**
-     * Get DatabaseSchema entity.
-     * @return DatabaseSchema entity
-     */
-    public DatabaseSchema dbSchema() {
-        return dbSchema;
-    }
-
-    /**
-     * Get Row entity.
-     * @return Row entity
-     */
-    public Row getRow() {
-        if (!isValid()) {
-            return null;
-        }
-        return this.row;
-    }
-
-    /**
-     * Get TableDescription entity.
-     * @return TableDescription entity
-     */
-    public TableDescription tableDesc() {
-        return tableDesc;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(row);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj instanceof AbstractOvsdbTableService) {
-            final AbstractOvsdbTableService other = (AbstractOvsdbTableService) obj;
-            return Objects.equals(this.row, other.row);
-        }
-        return false;
-    }
-
-    @Override
-    public String toString() {
-        TableSchema schema = (TableSchema) getTbSchema();
-        String tableName = schema.name();
-        return toStringHelper(this).add("tableName", tableName).add("row", row)
-                .toString();
-    }
-}
+/*

+ * 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.tableservice;

+

+import static com.google.common.base.MoreObjects.toStringHelper;

+import static com.google.common.base.Preconditions.checkNotNull;

+

+import java.util.Objects;

+

+import org.onosproject.ovsdb.rfc.error.ColumnSchemaNotFoundException;

+import org.onosproject.ovsdb.rfc.error.TableSchemaNotFoundException;

+import org.onosproject.ovsdb.rfc.error.VersionMismatchException;

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

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

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

+import org.onosproject.ovsdb.rfc.schema.ColumnSchema;

+import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;

+import org.onosproject.ovsdb.rfc.schema.TableSchema;

+import org.onosproject.ovsdb.rfc.table.OvsdbTable;

+import org.onosproject.ovsdb.rfc.table.VersionNum;

+import org.onosproject.ovsdb.rfc.utils.VersionUtil;

+

+/**

+ * Representation of conversion between Ovsdb table and Row.

+ */

+public abstract class AbstractOvsdbTableService implements OvsdbTableService {

+

+    private final DatabaseSchema dbSchema;

+    private final Row row;

+    private final TableDescription tableDesc;

+

+    /**

+     * Constructs a AbstractOvsdbTableService object.

+     * @param dbSchema DatabaseSchema entity

+     * @param row Row entity

+     * @param table table name

+     * @param formVersion the initial version

+     */

+    public AbstractOvsdbTableService(DatabaseSchema dbSchema, Row row, OvsdbTable table,

+                                     VersionNum formVersion) {

+        checkNotNull(dbSchema, "database schema cannot be null");

+        checkNotNull(row, "row cannot be null");

+        checkNotNull(table, "table cannot be null");

+        checkNotNull(formVersion, "the initial version cannot be null");

+        this.dbSchema = dbSchema;

+        row.setTableName(table.tableName());

+        this.row = row;

+        TableDescription tableDesc = new TableDescription(table, formVersion);

+        this.tableDesc = tableDesc;

+    }

+

+    /**

+     * Check whether the parameter of dbSchema is valid and check whether the

+     * table is existent in Database Schema.

+     */

+    private boolean isValid() {

+        if (dbSchema == null) {

+            return false;

+        }

+        if (!dbSchema.name().equalsIgnoreCase(tableDesc.database())) {

+            return false;

+        }

+        checkTableSchemaVersion();

+        return true;

+    }

+

+    /**

+     * Check the table version.

+     */

+    private void checkTableSchemaVersion() {

+        String fromVersion = tableDesc.fromVersion();

+        String untilVersion = tableDesc.untilVersion();

+        String schemaVersion = dbSchema.version();

+        checkVersion(schemaVersion, fromVersion, untilVersion);

+    }

+

+    /**

+     * Check the column version.

+     * @param columnDesc ColumnDescription entity

+     */

+    private void checkColumnSchemaVersion(ColumnDescription columnDesc) {

+        String fromVersion = columnDesc.fromVersion();

+        String untilVersion = columnDesc.untilVersion();

+        String schemaVersion = dbSchema.version();

+        checkVersion(schemaVersion, fromVersion, untilVersion);

+    }

+

+    /**

+     * Check whether the DatabaseSchema version between the initial version and

+     * the end of the version.

+     * @param schemaVersion DatabaseSchema version

+     * @param fromVersion The initial version

+     * @param untilVersion The end of the version

+     * @throws VersionMismatchException this is a version mismatch exception

+     */

+    private void checkVersion(String schemaVersion, String fromVersion, String untilVersion) {

+        VersionUtil.versionMatch(fromVersion);

+        VersionUtil.versionMatch(untilVersion);

+        if (!fromVersion.equals(VersionUtil.DEFAULT_VERSION_STRING)) {

+            if (VersionUtil.versionCompare(schemaVersion, fromVersion) < 0) {

+                String message = VersionMismatchException.createFromMessage(schemaVersion,

+                                                                            fromVersion);

+                throw new VersionMismatchException(message);

+            }

+        }

+        if (!untilVersion.equals(VersionUtil.DEFAULT_VERSION_STRING)) {

+            if (VersionUtil.versionCompare(untilVersion, schemaVersion) < 0) {

+                String message = VersionMismatchException.createToMessage(schemaVersion,

+                                                                          untilVersion);

+                throw new VersionMismatchException(message);

+            }

+        }

+    }

+

+    /**

+     * Returns TableSchema from dbSchema by table name.

+     * @return TableSchema

+     */

+    private TableSchema getTableSchema() {

+        String tableName = tableDesc.name();

+        return dbSchema.getTableSchema(tableName);

+    }

+

+    /**

+     * Returns ColumnSchema from TableSchema by column name.

+     * @param columnName column name

+     * @return ColumnSchema

+     */

+    private ColumnSchema getColumnSchema(String columnName) {

+        TableSchema tableSchema = getTableSchema();

+        if (tableSchema == null) {

+            String message = TableSchemaNotFoundException.createMessage(tableDesc.name(),

+                                                                        dbSchema.name());

+            throw new TableSchemaNotFoundException(message);

+        }

+        ColumnSchema columnSchema = tableSchema.getColumnSchema(columnName);

+        if (columnSchema == null) {

+            String message = ColumnSchemaNotFoundException.createMessage(columnName,

+                                                                         tableSchema.name());

+            throw new ColumnSchemaNotFoundException(message);

+        }

+        return columnSchema;

+    }

+

+    @Override

+    public Column getColumnHandler(ColumnDescription columnDesc) {

+        if (!isValid()) {

+            return null;

+        }

+        String columnName = columnDesc.name();

+        checkColumnSchemaVersion(columnDesc);

+        ColumnSchema columnSchema = getColumnSchema(columnName);

+        if (row == null) {

+            return null;

+        }

+        return row.getColumn(columnSchema.name());

+    }

+

+    @Override

+    public Object getDataHandler(ColumnDescription columnDesc) {

+        if (!isValid()) {

+            return null;

+        }

+        String columnName = columnDesc.name();

+        checkColumnSchemaVersion(columnDesc);

+        ColumnSchema columnSchema = getColumnSchema(columnName);

+        if (row == null || row.getColumn(columnSchema.name()) == null) {

+            return null;

+        }

+        return row.getColumn(columnSchema.name()).data();

+    }

+

+    @Override

+    public void setDataHandler(ColumnDescription columnDesc, Object obj) {

+        if (!isValid()) {

+            return;

+        }

+        String columnName = columnDesc.name();

+        checkColumnSchemaVersion(columnDesc);

+        ColumnSchema columnSchema = getColumnSchema(columnName);

+        Column column = new Column(columnSchema.name(), obj);

+        row.addColumn(columnName, column);

+    }

+

+    @Override

+    public UUID getTableUuid() {

+        if (!isValid()) {

+            return null;

+        }

+        ColumnDescription columnDesc = new ColumnDescription("_uuid", "getTableUuid");

+        return (UUID) getDataHandler(columnDesc);

+    }

+

+    @Override

+    public Column getTableUuidColumn() {

+        if (!isValid()) {

+            return null;

+        }

+        ColumnDescription columnDesc = new ColumnDescription("_uuid", "getTableUuidColumn");

+        return (Column) getColumnHandler(columnDesc);

+    }

+

+    @Override

+    public UUID getTableVersion() {

+        if (!isValid()) {

+            return null;

+        }

+        ColumnDescription columnDesc = new ColumnDescription("_version", "getTableVersion");

+        return (UUID) getDataHandler(columnDesc);

+    }

+

+    @Override

+    public Column getTableVersionColumn() {

+        if (!isValid()) {

+            return null;

+        }

+        ColumnDescription columnDesc = new ColumnDescription("_version", "getTableVersionColumn");

+        return (Column) getColumnHandler(columnDesc);

+    }

+

+    /**

+     * Get DatabaseSchema entity.

+     * @return DatabaseSchema entity

+     */

+    public DatabaseSchema dbSchema() {

+        return dbSchema;

+    }

+

+    /**

+     * Get Row entity.

+     * @return Row entity

+     */

+    public Row getRow() {

+        if (!isValid()) {

+            return null;

+        }

+        return this.row;

+    }

+

+    /**

+     * Get TableDescription entity.

+     * @return TableDescription entity

+     */

+    public TableDescription tableDesc() {

+        return tableDesc;

+    }

+

+    @Override

+    public int hashCode() {

+        return Objects.hash(row);

+    }

+

+    @Override

+    public boolean equals(Object obj) {

+        if (this == obj) {

+            return true;

+        }

+        if (obj instanceof AbstractOvsdbTableService) {

+            final AbstractOvsdbTableService other = (AbstractOvsdbTableService) obj;

+            return Objects.equals(this.row, other.row);

+        }

+        return false;

+    }

+

+    @Override

+    public String toString() {

+        TableSchema schema = (TableSchema) getTableSchema();

+        String tableName = schema.name();

+        return toStringHelper(this).add("tableName", tableName).add("row", row).toString();

+    }

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/tableservice/OvsdbTableService.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/tableservice/OvsdbTableService.java
index 3af4c22..1ce2870 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/tableservice/OvsdbTableService.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/tableservice/OvsdbTableService.java
@@ -1,76 +1,70 @@
-/*
- * 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.tableservice;
-
-import org.onosproject.ovsdb.rfc.notation.Column;
-import org.onosproject.ovsdb.rfc.notation.UUID;
-
-/**
- * Representation of conversion between Ovsdb table and Row.
- */
-public interface OvsdbTableService {
-
-    /**
-     * Get Column from row.
-     * @param columndesc Column description
-     * @return Column
-     */
-    public Column getColumnHandler(ColumnDescription columndesc);
-
-    /**
-     * Get Data from row.
-     * @param columndesc Column description
-     * @return Object column data
-     */
-    public Object getDataHandler(ColumnDescription columndesc);
-
-    /**
-     * Set column data of row.
-     * @param columndesc Column description
-     * @param obj column data
-     */
-    public void setDataHandler(ColumnDescription columndesc, Object obj);
-
-    /**
-     * Returns the TableSchema from row.
-     * @return Object TableSchema
-     */
-    public Object getTbSchema();
-
-    /**
-     * Returns UUID which column name is _uuid.
-     * @return UUID
-     */
-    public UUID getUuid();
-
-    /**
-     * Returns UUID Column which column name is _uuid.
-     * @return UUID Column
-     */
-    public Column getUuidColumn();
-
-    /**
-     * Returns UUID which column name is _version.
-     * @return UUID
-     */
-    public UUID getVersion();
-
-    /**
-     * Returns UUID Column which column name is _version.
-     * @return UUID Column
-     */
-    public Column getVersionColumn();
-}
+/*

+ * 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.tableservice;

+

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

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

+

+/**

+ * Representation of conversion between Ovsdb table and Row.

+ */

+public interface OvsdbTableService {

+

+    /**

+     * Get Column from row.

+     * @param columndesc Column description

+     * @return Column

+     */

+    public Column getColumnHandler(ColumnDescription columndesc);

+

+    /**

+     * Get Data from row.

+     * @param columndesc Column description

+     * @return Object column data

+     */

+    public Object getDataHandler(ColumnDescription columndesc);

+

+    /**

+     * Set column data of row.

+     * @param columndesc Column description

+     * @param obj column data

+     */

+    public void setDataHandler(ColumnDescription columndesc, Object obj);

+

+    /**

+     * Returns UUID which column name is _uuid.

+     * @return UUID

+     */

+    public UUID getTableUuid();

+

+    /**

+     * Returns UUID Column which column name is _uuid.

+     * @return UUID Column

+     */

+    public Column getTableUuidColumn();

+

+    /**

+     * Returns UUID which column name is _version.

+     * @return UUID

+     */

+    public UUID getTableVersion();

+

+    /**

+     * Returns UUID Column which column name is _version.

+     * @return UUID Column

+     */

+    public Column getTableVersionColumn();

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/FromJsonUtil.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/FromJsonUtil.java
index 8ccecbe..7283d8e 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/FromJsonUtil.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/FromJsonUtil.java
@@ -1,345 +1,320 @@
-/*
- * 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.utils;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.onosproject.ovsdb.rfc.error.AbnormalSchemaException;
-import org.onosproject.ovsdb.rfc.error.JsonParsingException;
-import org.onosproject.ovsdb.rfc.error.UnknownResultException;
-import org.onosproject.ovsdb.rfc.jsonrpc.Callback;
-import org.onosproject.ovsdb.rfc.jsonrpc.JsonRpcResponse;
-import org.onosproject.ovsdb.rfc.message.OperationResult;
-import org.onosproject.ovsdb.rfc.message.RowUpdate;
-import org.onosproject.ovsdb.rfc.message.TableUpdate;
-import org.onosproject.ovsdb.rfc.message.TableUpdates;
-import org.onosproject.ovsdb.rfc.message.UpdateNotification;
-import org.onosproject.ovsdb.rfc.notation.Column;
-import org.onosproject.ovsdb.rfc.notation.Row;
-import org.onosproject.ovsdb.rfc.notation.UUID;
-import org.onosproject.ovsdb.rfc.operations.Operation;
-import org.onosproject.ovsdb.rfc.schema.ColumnSchema;
-import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
-import org.onosproject.ovsdb.rfc.schema.TableSchema;
-import org.onosproject.ovsdb.rfc.schema.type.ColumnTypeFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
-/**
- * JsonNode utility class. convert JsonNode into Object.
- */
-public final class FromJsonUtil {
-
-    private static final Logger log = LoggerFactory
-            .getLogger(FromJsonUtil.class);
-
-    /**
-     * Constructs a FromJsonUtil object. Utility classes should not have a
-     * public or default constructor, otherwise IDE will compile unsuccessfully. This
-     * class should not be instantiated.
-     */
-    private FromJsonUtil() {
-    }
-
-    /**
-     * convert JsonNode into DatabaseSchema.
-     * @param dbName database name
-     * @param json the JsonNode of get_schema result
-     * @return DatabaseSchema
-     * @throws JsonParsingException this is a JsonNode parse exception
-     */
-    public static DatabaseSchema jsonNodeToDbSchema(String dbName, JsonNode json) {
-        if (!json.isObject() || !json.has("tables")) {
-            throw new JsonParsingException(
-                                           "bad DatabaseSchema root, expected \"tables\" as child but was not found");
-        }
-        if (!json.isObject() || !json.has("version")) {
-            throw new JsonParsingException(
-                                           "bad DatabaseSchema root, expected \"version\" as child but was not found");
-        }
-
-        String dbVersion = json.get("version").asText();
-
-        Map<String, TableSchema> tables = new HashMap<>();
-        for (Iterator<Map.Entry<String, JsonNode>> iter = json.get("tables")
-                .fields(); iter.hasNext();) {
-            Map.Entry<String, JsonNode> table = iter.next();
-            tables.put(table.getKey(),
-                       jsonNodeToTableSchema(table.getKey(), table.getValue()));
-        }
-
-        return new DatabaseSchema(dbName, dbVersion, tables);
-    }
-
-    /**
-     * convert JsonNode into TableSchema.
-     * @param tableName table name
-     * @param json table JsonNode
-     * @return TableSchema
-     * @throws AbnormalSchemaException this is an abnormal schema exception
-     */
-    private static TableSchema jsonNodeToTableSchema(String tableName,
-                                                     JsonNode json) {
-
-        if (!json.isObject() || !json.has("columns")) {
-            throw new AbnormalSchemaException(
-                                              "bad tableschema root, expected \"columns\" as child");
-        }
-
-        Map<String, ColumnSchema> columns = new HashMap<>();
-        for (Iterator<Map.Entry<String, JsonNode>> iter = json.get("columns")
-                .fields(); iter.hasNext();) {
-            Map.Entry<String, JsonNode> column = iter.next();
-            columns.put(column.getKey(),
-                        jsonNodeToColumnSchema(column.getKey(),
-                                               column.getValue()));
-        }
-
-        return new TableSchema(tableName, columns);
-    }
-
-    /**
-     * convert JsonNode into ColumnSchema.
-     * @param name column name
-     * @param json JsonNode
-     * @return ColumnSchema
-     * @throws AbnormalSchemaException this is an abnormal schema exception
-     */
-    private static ColumnSchema jsonNodeToColumnSchema(String name,
-                                                       JsonNode json) {
-        if (!json.isObject() || !json.has("type")) {
-            throw new AbnormalSchemaException(
-                                              "bad column schema root, expected \"type\" as child");
-        }
-
-        return new ColumnSchema(name,
-                                ColumnTypeFactory.getColumnTypeFromJson(json
-                                        .get("type")));
-    }
-
-    /**
-     * convert JsonNode into the returnType of methods in OvsdbRPC class.
-     * @param resultJsonNode the result JsonNode
-     * @param methodName the method name of methods in OvsdbRPC class
-     * @param objectMapper ObjectMapper entity
-     * @return Object
-     * @throws UnknownResultException this is an unknown result exception
-     */
-    private static Object convertResultType(JsonNode resultJsonNode,
-                                            String methodName,
-                                            ObjectMapper objectMapper) {
-        switch (methodName) {
-        case "getSchema":
-        case "monitor":
-            return resultJsonNode;
-        case "echo":
-        case "listDbs":
-            return objectMapper
-                    .convertValue(resultJsonNode, objectMapper.getTypeFactory()
-                            .constructParametricType(List.class, String.class));
-        case "transact":
-            return objectMapper
-                    .convertValue(resultJsonNode,
-                                  objectMapper
-                                          .getTypeFactory()
-                                          .constructParametricType(List.class,
-                                                                   JsonNode.class));
-        default:
-            throw new UnknownResultException("Don't know how to handle this");
-        }
-    }
-
-    /**
-     * convert JsonNode into the returnType of methods in OvsdbRPC class.
-     * @param jsonNode the result JsonNode
-     * @param methodName the method name of methods in OvsdbRPC class
-     * @return Object
-     */
-    public static Object jsonResultParser(JsonNode jsonNode, String methodName) {
-        ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper();
-        JsonNode error = jsonNode.get("error");
-        if (error != null && !error.isNull()) {
-            log.error("Error : {}", error.toString());
-        }
-        JsonNode resultJsonNode = jsonNode.get("result");
-        Object result = convertResultType(resultJsonNode, methodName,
-                                          objectMapper);
-        return result;
-    }
-
-    /**
-     * When monitor the ovsdb tables, if a table update, ovs send update
-     * notification, then call callback function.
-     * @param jsonNode the result JsonNode
-     * @param callback the callback function
-     * @throws UnknownResultException this is an unknown result exception
-     */
-    public static void jsonCallbackRequestParser(JsonNode jsonNode,
-                                                 Callback callback) {
-        ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper();
-        JsonNode params = jsonNode.get("params");
-        Object param = null;
-        String methodName = jsonNode.get("method").asText();
-        switch (methodName) {
-        case "update":
-            param = objectMapper.convertValue(params, UpdateNotification.class);
-            callback.update((UpdateNotification) param);
-            break;
-        default:
-            throw new UnknownResultException("Cannot handle this method: "
-                    + methodName);
-        }
-    }
-
-    /**
-     * Ovs send echo request to keep the heart, need we return echo result.
-     * @param jsonNode the result JsonNode
-     * @return JsonRpcResponse String
-     */
-    public static String getEchoRequestStr(JsonNode jsonNode) {
-        ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper();
-        String str = null;
-        if (jsonNode.get("method").asText().equals("echo")) {
-            JsonRpcResponse response = new JsonRpcResponse(jsonNode.get("id")
-                    .asText());
-            try {
-                str = objectMapper.writeValueAsString(response);
-            } catch (JsonProcessingException e) {
-                log.error("JsonProcessingException while converting JsonNode into string ", e);
-            }
-        }
-        return str;
-    }
-
-    /**
-     * Convert the List of Operation result into List of OperationResult .
-     * @param input the List of JsonNode
-     * @param operations the List of Operation
-     * @return the List of OperationResult
-     */
-    public static List<OperationResult> jsonNodeToOperationResult(List<JsonNode> input,
-                                                                  List<Operation> operations) {
-        ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper(false);
-        List<OperationResult> operationResults = new ArrayList<OperationResult>();
-        for (int i = 0; i < input.size(); i++) {
-            JsonNode jsonNode = input.get(i);
-            Operation operation = operations.get(i);
-            if (jsonNode != null && jsonNode.size() > 0) {
-                if (i >= operations.size() || operation.getOp() != "select") {
-                    OperationResult or = objectMapper.convertValue(jsonNode,
-                                                   OperationResult.class);
-                    operationResults.add(or);
-                } else {
-                    List<Row> rows = createRows(operation.getTableSchema(), jsonNode);
-                    OperationResult or = new OperationResult(rows);
-                    operationResults.add(or);
-                }
-            }
-        }
-        return operationResults;
-    }
-
-    /**
-     * Convert Operation JsonNode into Rows.
-     * @param tableSchema TableSchema entity
-     * @param rowsNode JsonNode
-     * @return ArrayList<Row> the List of Row
-     */
-    private static ArrayList<Row> createRows(TableSchema tableSchema,
-                                             JsonNode rowsNode) {
-        ArrayList<Row> rows = Lists.newArrayList();
-        for (JsonNode rowNode : rowsNode.get("rows")) {
-            rows.add(createRow(tableSchema, rowNode));
-        }
-        return rows;
-    }
-
-    /**
-     * convert the params of Update Notification into TableUpdates.
-     * @param updatesJson the params of Update Notification
-     * @param dbSchema DatabaseSchema entity
-     * @return TableUpdates
-     */
-    public static TableUpdates jsonNodeToTableUpdates(JsonNode updatesJson,
-                                                      DatabaseSchema dbSchema) {
-        Map<String, TableUpdate> tableUpdateMap = Maps.newHashMap();
-        for (Iterator<Map.Entry<String, JsonNode>> itr = updatesJson.fields(); itr
-                .hasNext();) {
-            Map.Entry<String, JsonNode> entry = itr.next();
-            TableSchema tableSchema = dbSchema.getTableSchema(entry.getKey());
-            TableUpdate tableUpdate = jsonNodeToTableUpdate(tableSchema,
-                                                            entry.getValue());
-            tableUpdateMap.put(entry.getKey(), tableUpdate);
-        }
-        return TableUpdates.tableUpdates(tableUpdateMap);
-    }
-
-    /**
-     * convert the params of Update Notification into TableUpdate.
-     * @param tableSchema TableSchema entity
-     * @param value the table-update in params of Update Notification
-     * @return TableUpdate
-     */
-    public static TableUpdate jsonNodeToTableUpdate(TableSchema tableSchema,
-                                                    JsonNode value) {
-        Map<UUID, RowUpdate> rows = Maps.newHashMap();
-        Iterator<Entry<String, JsonNode>> fields = value.fields();
-        while (fields.hasNext()) {
-            Map.Entry<String, JsonNode> idOldNew = fields.next();
-            String uuidStr = idOldNew.getKey();
-            UUID uuid = UUID.uuid(uuidStr);
-            JsonNode newR = idOldNew.getValue().get("new");
-            JsonNode oldR = idOldNew.getValue().get("old");
-            Row newRow = newR != null ? createRow(tableSchema, newR) : null;
-            Row oldRow = oldR != null ? createRow(tableSchema, oldR) : null;
-            RowUpdate rowUpdate = new RowUpdate(uuid, oldRow, newRow);
-            rows.put(uuid, rowUpdate);
-        }
-        return TableUpdate.tableUpdate(rows);
-    }
-
-    /**
-     * Convert Operation JsonNode into Row.
-     * @param tableSchema TableSchema entity
-     * @param rowNode JsonNode
-     * @return Row
-     */
-    private static Row createRow(TableSchema tableSchema, JsonNode rowNode) {
-        List<Column> columns = Lists.newArrayList();
-        for (Iterator<Map.Entry<String, JsonNode>> iter = rowNode.fields(); iter
-                .hasNext();) {
-            Map.Entry<String, JsonNode> next = iter.next();
-            ColumnSchema schema = tableSchema.getColumnSchema(next.getKey());
-            if (schema != null) {
-                Object o = TransValueUtil.getValueFromJson(next.getValue(), schema.type());
-                columns.add(new Column(schema, o));
-            }
-        }
-        return new Row(tableSchema, columns);
-    }
-
-}
+/*

+ * 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.utils;

+

+import java.util.ArrayList;

+import java.util.HashMap;

+import java.util.Iterator;

+import java.util.List;

+import java.util.Map;

+

+import org.onosproject.ovsdb.rfc.error.AbnormalJsonNodeException;

+import org.onosproject.ovsdb.rfc.error.UnsupportedException;

+import org.onosproject.ovsdb.rfc.jsonrpc.Callback;

+import org.onosproject.ovsdb.rfc.jsonrpc.JsonRpcResponse;

+import org.onosproject.ovsdb.rfc.message.OperationResult;

+import org.onosproject.ovsdb.rfc.message.RowUpdate;

+import org.onosproject.ovsdb.rfc.message.TableUpdate;

+import org.onosproject.ovsdb.rfc.message.TableUpdates;

+import org.onosproject.ovsdb.rfc.message.UpdateNotification;

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

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

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

+import org.onosproject.ovsdb.rfc.operations.Operation;

+import org.onosproject.ovsdb.rfc.schema.ColumnSchema;

+import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;

+import org.onosproject.ovsdb.rfc.schema.TableSchema;

+import org.onosproject.ovsdb.rfc.schema.type.ColumnTypeFactory;

+import org.slf4j.Logger;

+import org.slf4j.LoggerFactory;

+

+import com.fasterxml.jackson.core.JsonProcessingException;

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

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

+import com.google.common.collect.Lists;

+import com.google.common.collect.Maps;

+

+/**

+ * JsonNode utility class. convert JsonNode into Object.

+ */

+public final class FromJsonUtil {

+

+    private static final Logger log = LoggerFactory.getLogger(FromJsonUtil.class);

+

+    /**

+     * Constructs a FromJsonUtil object. Utility classes should not have a

+     * public or default constructor, otherwise IDE will compile unsuccessfully.

+     * This class should not be instantiated.

+     */

+    private FromJsonUtil() {

+    }

+

+    /**

+     * Verify whether the jsonNode is normal.

+     * @param jsonNode JsonNode

+     * @param nodeStr the node name of JsonNode

+     */

+    private static void validateJsonNode(JsonNode jsonNode, String nodeStr) {

+        if (!jsonNode.isObject() || !jsonNode.has(nodeStr)) {

+            String message = "Abnormal DatabaseSchema JsonNode, it should contain " + nodeStr

+                    + " node but was not found";

+            throw new AbnormalJsonNodeException(message);

+        }

+    }

+

+    /**

+     * convert JsonNode into DatabaseSchema.

+     * @param dbName database name

+     * @param dbJson the JsonNode of get_schema result

+     * @return DatabaseSchema

+     * @throws AbnormalJsonNodeException this is an abnormal JsonNode exception

+     */

+    public static DatabaseSchema jsonNodeToDbSchema(String dbName, JsonNode dbJson) {

+        validateJsonNode(dbJson, "tables");

+        validateJsonNode(dbJson, "version");

+        String dbVersion = dbJson.get("version").asText();

+        Map<String, TableSchema> tables = new HashMap<>();

+        Iterator<Map.Entry<String, JsonNode>> tablesIter = dbJson.get("tables").fields();

+        while (tablesIter.hasNext()) {

+            Map.Entry<String, JsonNode> table = tablesIter.next();

+            tables.put(table.getKey(), jsonNodeToTableSchema(table.getKey(), table.getValue()));

+        }

+        return new DatabaseSchema(dbName, dbVersion, tables);

+    }

+

+    /**

+     * convert JsonNode into TableSchema.

+     * @param tableName table name

+     * @param tableJson table JsonNode

+     * @return TableSchema

+     * @throws AbnormalJsonNodeException this is an abnormal JsonNode exception

+     */

+    private static TableSchema jsonNodeToTableSchema(String tableName, JsonNode tableJson) {

+        validateJsonNode(tableJson, "columns");

+        Map<String, ColumnSchema> columns = new HashMap<>();

+        Iterator<Map.Entry<String, JsonNode>> columnsIter = tableJson.get("columns").fields();

+        while (columnsIter.hasNext()) {

+            Map.Entry<String, JsonNode> column = columnsIter.next();

+            columns.put(column.getKey(), jsonNodeToColumnSchema(column.getKey(), column.getValue()));

+        }

+        return new TableSchema(tableName, columns);

+    }

+

+    /**

+     * convert JsonNode into ColumnSchema.

+     * @param name column name

+     * @param columnJson column JsonNode

+     * @return ColumnSchema

+     * @throws AbnormalJsonNodeException this is an abnormal JsonNode exception

+     */

+    private static ColumnSchema jsonNodeToColumnSchema(String name, JsonNode columnJson) {

+        validateJsonNode(columnJson, "type");

+        return new ColumnSchema(name, ColumnTypeFactory.getColumnTypeFromJson(columnJson

+                .get("type")));

+    }

+

+    /**

+     * convert JsonNode into the returnType of methods in OvsdbRPC class.

+     * @param resultJsonNode the result JsonNode

+     * @param methodName the method name of methods in OvsdbRPC class

+     * @param objectMapper ObjectMapper entity

+     * @return Object

+     * @throws UnsupportedException this is an unsupported exception

+     */

+    private static Object convertResultType(JsonNode resultJsonNode, String methodName,

+                                            ObjectMapper objectMapper) {

+        switch (methodName) {

+        case "getSchema":

+        case "monitor":

+            return resultJsonNode;

+        case "echo":

+        case "listDbs":

+            return objectMapper.convertValue(resultJsonNode, objectMapper.getTypeFactory()

+                    .constructParametricType(List.class, String.class));

+        case "transact":

+            return objectMapper.convertValue(resultJsonNode, objectMapper.getTypeFactory()

+                    .constructParametricType(List.class, JsonNode.class));

+        default:

+            throw new UnsupportedException("does not support this rpc method" + methodName);

+        }

+    }

+

+    /**

+     * convert JsonNode into the returnType of methods in OvsdbRPC class.

+     * @param jsonNode the result JsonNode

+     * @param methodName the method name of methods in OvsdbRPC class

+     * @return Object

+     */

+    public static Object jsonResultParser(JsonNode jsonNode, String methodName) {

+        ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper();

+        JsonNode error = jsonNode.get("error");

+        if (error != null && !error.isNull()) {

+            log.error("jsonRpcResponse error : {}", error.toString());

+        }

+        JsonNode resultJsonNode = jsonNode.get("result");

+        Object result = convertResultType(resultJsonNode, methodName, objectMapper);

+        return result;

+    }

+

+    /**

+     * When monitor the ovsdb tables, if a table update, ovs send update

+     * notification, then call callback function.

+     * @param jsonNode the result JsonNode

+     * @param callback the callback function

+     * @throws UnsupportedException this is an unsupported exception

+     */

+    public static void jsonCallbackRequestParser(JsonNode jsonNode, Callback callback) {

+        ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper();

+        JsonNode params = jsonNode.get("params");

+        Object param = null;

+        String methodName = jsonNode.get("method").asText();

+        switch (methodName) {

+        case "update":

+            param = objectMapper.convertValue(params, UpdateNotification.class);

+            callback.update((UpdateNotification) param);

+            break;

+        default:

+            throw new UnsupportedException("does not support this callback method: " + methodName);

+        }

+    }

+

+    /**

+     * Ovs send echo request to keep the heart, need we return echo result.

+     * @param jsonNode the result JsonNode

+     * @return JsonRpcResponse String

+     */

+    public static String getEchoRequestStr(JsonNode jsonNode) {

+        ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper();

+        String str = null;

+        if (jsonNode.get("method").asText().equals("echo")) {

+            JsonRpcResponse response = new JsonRpcResponse(jsonNode.get("id").asText());

+            try {

+                str = objectMapper.writeValueAsString(response);

+            } catch (JsonProcessingException e) {

+                log.error("JsonProcessingException while converting JsonNode into string: ", e);

+            }

+        }

+        return str;

+    }

+

+    /**

+     * Convert the List of Operation result into List of OperationResult .

+     * @param input the List of JsonNode

+     * @param operations the List of Operation

+     * @return the List of OperationResult

+     */

+    public static List<OperationResult> jsonNodeToOperationResult(List<JsonNode> input,

+                                                                  List<Operation> operations) {

+        ObjectMapper objectMapper = ObjectMapperUtil.getObjectMapper(false);

+        List<OperationResult> operationResults = new ArrayList<OperationResult>();

+        for (int i = 0; i < input.size(); i++) {

+            JsonNode jsonNode = input.get(i);

+            Operation operation = operations.get(i);

+            if (jsonNode != null && jsonNode.size() > 0) {

+                if (i >= operations.size() || operation.getOp() != "select") {

+                    OperationResult or = objectMapper.convertValue(jsonNode, OperationResult.class);

+                    operationResults.add(or);

+                } else {

+                    List<Row> rows = createRows(operation.getTableSchema(), jsonNode);

+                    OperationResult or = new OperationResult(rows);

+                    operationResults.add(or);

+                }

+            }

+        }

+        return operationResults;

+    }

+

+    /**

+     * Convert Operation JsonNode into Rows.

+     * @param tableSchema TableSchema entity

+     * @param rowsNode JsonNode

+     * @return ArrayList<Row> the List of Row

+     */

+    private static ArrayList<Row> createRows(TableSchema tableSchema, JsonNode rowsNode) {

+        validateJsonNode(rowsNode, "rows");

+        ArrayList<Row> rows = Lists.newArrayList();

+        for (JsonNode rowNode : rowsNode.get("rows")) {

+            rows.add(createRow(tableSchema, rowNode));

+        }

+        return rows;

+    }

+

+    /**

+     * convert the params of Update Notification into TableUpdates.

+     * @param updatesJson the params of Update Notification

+     * @param dbSchema DatabaseSchema entity

+     * @return TableUpdates

+     */

+    public static TableUpdates jsonNodeToTableUpdates(JsonNode updatesJson, DatabaseSchema dbSchema) {

+        Map<String, TableUpdate> tableUpdateMap = Maps.newHashMap();

+        Iterator<Map.Entry<String, JsonNode>> tableUpdatesItr = updatesJson.fields();

+        while (tableUpdatesItr.hasNext()) {

+            Map.Entry<String, JsonNode> entry = tableUpdatesItr.next();

+            TableSchema tableSchema = dbSchema.getTableSchema(entry.getKey());

+            TableUpdate tableUpdate = jsonNodeToTableUpdate(tableSchema, entry.getValue());

+            tableUpdateMap.put(entry.getKey(), tableUpdate);

+        }

+        return TableUpdates.tableUpdates(tableUpdateMap);

+    }

+

+    /**

+     * convert the params of Update Notification into TableUpdate.

+     * @param tableSchema TableSchema entity

+     * @param updateJson the table-update in params of Update Notification

+     * @return TableUpdate

+     */

+    public static TableUpdate jsonNodeToTableUpdate(TableSchema tableSchema, JsonNode updateJson) {

+        Map<UUID, RowUpdate> rows = Maps.newHashMap();

+        Iterator<Map.Entry<String, JsonNode>> tableUpdateItr = updateJson.fields();

+        while (tableUpdateItr.hasNext()) {

+            Map.Entry<String, JsonNode> oldNewRow = tableUpdateItr.next();

+            String uuidStr = oldNewRow.getKey();

+            UUID uuid = UUID.uuid(uuidStr);

+            JsonNode newR = oldNewRow.getValue().get("new");

+            JsonNode oldR = oldNewRow.getValue().get("old");

+            Row newRow = newR != null ? createRow(tableSchema, newR) : null;

+            Row oldRow = oldR != null ? createRow(tableSchema, oldR) : null;

+            RowUpdate rowUpdate = new RowUpdate(uuid, oldRow, newRow);

+            rows.put(uuid, rowUpdate);

+        }

+        return TableUpdate.tableUpdate(rows);

+    }

+

+    /**

+     * Convert Operation JsonNode into Row.

+     * @param tableSchema TableSchema entity

+     * @param rowNode JsonNode

+     * @return Row

+     */

+    private static Row createRow(TableSchema tableSchema, JsonNode rowNode) {

+        if (tableSchema == null) {

+            return null;

+        }

+        Map<String, Column> columns = Maps.newHashMap();

+        Iterator<Map.Entry<String, JsonNode>> rowIter = rowNode.fields();

+        while (rowIter.hasNext()) {

+            Map.Entry<String, JsonNode> next = rowIter.next();

+            ColumnSchema columnSchema = tableSchema.getColumnSchema(next.getKey());

+            if (columnSchema != null) {

+                String columnName = columnSchema.name();

+                Object obj = TransValueUtil.getValueFromJson(next.getValue(), columnSchema.type());

+                columns.put(columnName, new Column(columnName, obj));

+            }

+        }

+        return new Row(tableSchema.name(), columns);

+    }

+

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/JsonRpcReaderUtil.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/JsonRpcReaderUtil.java
index bf1938d..8436fde 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/JsonRpcReaderUtil.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/JsonRpcReaderUtil.java
@@ -1,172 +1,165 @@
-/*
- * 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.utils;
-
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.ByteBufInputStream;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Stack;
-
-import org.onosproject.ovsdb.rfc.error.UnsupportedEncodingException;
-import org.onosproject.ovsdb.rfc.jsonrpc.JsonReadContext;
-
-import com.fasterxml.jackson.core.JsonEncoding;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.io.IOContext;
-import com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper;
-import com.fasterxml.jackson.core.util.BufferRecycler;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.MappingJsonFactory;
-
-/**
- * Decoder utility class.
- */
-public final class JsonRpcReaderUtil {
-
-    /**
-     * Constructs a JsonRpcReaderUtil object. Utility classes should not have a
-     * public or default constructor, otherwise IDE will compile unsuccessfully.
-     * This class should not be instantiated.
-     */
-    private JsonRpcReaderUtil() {
-    }
-
-    /**
-     * Decode the bytes to Json object.
-     * @param in input of bytes
-     * @param out ouput of Json object list
-     * @param jrContext context for the last decoding process
-     * @throws IOException IOException
-     * @throws JsonParseException JsonParseException
-     */
-    public static void readToJsonNode(ByteBuf in, List<Object> out,
-                                      JsonReadContext jrContext)
-            throws JsonParseException, IOException {
-        int lastReadBytes = jrContext.getLastReadBytes();
-        if (lastReadBytes == 0) {
-            if (in.readableBytes() < 4) {
-                return;
-            }
-            checkEncoding(in);
-        }
-
-        int i = lastReadBytes + in.readerIndex();
-        Stack<Byte> bufStack = jrContext.getBufStack();
-        for (; i < in.writerIndex(); i++) {
-            byte b = in.getByte(i);
-            switch (b) {
-            case '{':
-                if (!isDoubleQuote(bufStack)) {
-                    bufStack.push(b);
-                    jrContext.setStartMatch(true);
-                }
-                break;
-            case '}':
-                if (!isDoubleQuote(bufStack)) {
-                    bufStack.pop();
-                }
-                break;
-            case '"':
-                if (in.getByte(i - 1) != '\\') {
-                    if (!bufStack.isEmpty() && bufStack.peek() != '"') {
-                        bufStack.push(b);
-                    } else {
-                        bufStack.pop();
-                    }
-                }
-                break;
-            default:
-                break;
-            }
-
-            if (jrContext.isStartMatch() && bufStack.isEmpty()) {
-                ByteBuf buf = in.readSlice(i - in.readerIndex() + 1);
-                JsonParser jf = new MappingJsonFactory()
-                        .createParser(new ByteBufInputStream(buf));
-                JsonNode jsonNode = jf.readValueAsTree();
-                out.add(jsonNode);
-                lastReadBytes = 0;
-                jrContext.setLastReadBytes(lastReadBytes);
-                break;
-            }
-        }
-
-        if (i >= in.writerIndex()) {
-            lastReadBytes = in.readableBytes();
-            jrContext.setLastReadBytes(lastReadBytes);
-        }
-    }
-
-    /**
-     * Filter the invalid characters before decoding.
-     * @param in input of bytes
-     * @param lastReadBytes the bytes for last decoding incomplete record
-     */
-    private static void fliterCharaters(ByteBuf in) {
-        while (in.isReadable()) {
-            int ch = in.getByte(in.readerIndex());
-            if ((ch != ' ') && (ch != '\n') && (ch != '\t') && (ch != '\r')) {
-                break;
-            } else {
-                in.readByte();
-            }
-        }
-    }
-
-    /**
-     * Check whether the peek of the stack element is double quote.
-     * @param jrContext context for the last decoding process
-     * @return boolean
-     */
-    private static boolean isDoubleQuote(Stack<Byte> bufStack) {
-        if (!bufStack.isEmpty() && bufStack.peek() == '"') {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Check whether the encoding is valid.
-     * @param in input of bytes
-     * @throws IOException this is an IO exception
-     * @throws UnsupportedEncodingException this is an unsupported encode
-     *             exception
-     */
-    private static void checkEncoding(ByteBuf in) throws IOException {
-        int inputStart = 0;
-        int inputLength = 4;
-        fliterCharaters(in);
-        byte[] buff = new byte[4];
-        in.getBytes(in.readerIndex(), buff);
-        ByteSourceJsonBootstrapper strapper = new ByteSourceJsonBootstrapper(
-                                                                             new IOContext(
-                                                                                           new BufferRecycler(),
-                                                                                           null,
-                                                                                           false),
-                                                                             buff,
-                                                                             inputStart,
-                                                                             inputLength);
-        JsonEncoding jsonEncoding = strapper.detectEncoding();
-        if (!JsonEncoding.UTF8.equals(jsonEncoding)) {
-            throw new UnsupportedEncodingException(
-                                                   "Only UTF-8 encoding is supported.");
-        }
-    }
-
-}
+/*

+ * 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.utils;

+

+import io.netty.buffer.ByteBuf;

+import io.netty.buffer.ByteBufInputStream;

+

+import java.io.IOException;

+import java.util.List;

+import java.util.Stack;

+

+import org.onosproject.ovsdb.rfc.error.UnsupportedException;

+import org.onosproject.ovsdb.rfc.jsonrpc.JsonReadContext;

+

+import com.fasterxml.jackson.core.JsonEncoding;

+import com.fasterxml.jackson.core.JsonParseException;

+import com.fasterxml.jackson.core.JsonParser;

+import com.fasterxml.jackson.core.io.IOContext;

+import com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper;

+import com.fasterxml.jackson.core.util.BufferRecycler;

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

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

+

+/**

+ * Decoder utility class.

+ */

+public final class JsonRpcReaderUtil {

+

+    /**

+     * Constructs a JsonRpcReaderUtil object. Utility classes should not have a

+     * public or default constructor, otherwise IDE will compile unsuccessfully.

+     * This class should not be instantiated.

+     */

+    private JsonRpcReaderUtil() {

+    }

+

+    /**

+     * Decode the bytes to Json object.

+     * @param in input of bytes

+     * @param out ouput of Json object list

+     * @param jrContext context for the last decoding process

+     * @throws IOException IOException

+     * @throws JsonParseException JsonParseException

+     */

+    public static void readToJsonNode(ByteBuf in, List<Object> out, JsonReadContext jrContext)

+            throws JsonParseException, IOException {

+        int lastReadBytes = jrContext.getLastReadBytes();

+        if (lastReadBytes == 0) {

+            if (in.readableBytes() < 4) {

+                return;

+            }

+            checkEncoding(in);

+        }

+

+        int i = lastReadBytes + in.readerIndex();

+        Stack<Byte> bufStack = jrContext.getBufStack();

+        for (; i < in.writerIndex(); i++) {

+            byte b = in.getByte(i);

+            switch (b) {

+            case '{':

+                if (!isDoubleQuote(bufStack)) {

+                    bufStack.push(b);

+                    jrContext.setStartMatch(true);

+                }

+                break;

+            case '}':

+                if (!isDoubleQuote(bufStack)) {

+                    bufStack.pop();

+                }

+                break;

+            case '"':

+                if (in.getByte(i - 1) != '\\') {

+                    if (!bufStack.isEmpty() && bufStack.peek() != '"') {

+                        bufStack.push(b);

+                    } else {

+                        bufStack.pop();

+                    }

+                }

+                break;

+            default:

+                break;

+            }

+

+            if (jrContext.isStartMatch() && bufStack.isEmpty()) {

+                ByteBuf buf = in.readSlice(i - in.readerIndex() + 1);

+                JsonParser jf = new MappingJsonFactory().createParser(new ByteBufInputStream(buf));

+                JsonNode jsonNode = jf.readValueAsTree();

+                out.add(jsonNode);

+                lastReadBytes = 0;

+                jrContext.setLastReadBytes(lastReadBytes);

+                break;

+            }

+        }

+

+        if (i >= in.writerIndex()) {

+            lastReadBytes = in.readableBytes();

+            jrContext.setLastReadBytes(lastReadBytes);

+        }

+    }

+

+    /**

+     * Filter the invalid characters before decoding.

+     * @param in input of bytes

+     * @param lastReadBytes the bytes for last decoding incomplete record

+     */

+    private static void fliterCharaters(ByteBuf in) {

+        while (in.isReadable()) {

+            int ch = in.getByte(in.readerIndex());

+            if ((ch != ' ') && (ch != '\n') && (ch != '\t') && (ch != '\r')) {

+                break;

+            } else {

+                in.readByte();

+            }

+        }

+    }

+

+    /**

+     * Check whether the peek of the stack element is double quote.

+     * @param jrContext context for the last decoding process

+     * @return boolean

+     */

+    private static boolean isDoubleQuote(Stack<Byte> bufStack) {

+        if (!bufStack.isEmpty() && bufStack.peek() == '"') {

+            return true;

+        }

+        return false;

+    }

+

+    /**

+     * Check whether the encoding is valid.

+     * @param in input of bytes

+     * @throws IOException this is an IO exception

+     * @throws UnsupportedException this is an unsupported exception

+     */

+    private static void checkEncoding(ByteBuf in) throws IOException {

+        int inputStart = 0;

+        int inputLength = 4;

+        fliterCharaters(in);

+        byte[] buff = new byte[4];

+        in.getBytes(in.readerIndex(), buff);

+        ByteSourceJsonBootstrapper strapper = new ByteSourceJsonBootstrapper(new IOContext(new BufferRecycler(),

+                                                                                           null,

+                                                                                           false),

+                                                                             buff, inputStart,

+                                                                             inputLength);

+        JsonEncoding jsonEncoding = strapper.detectEncoding();

+        if (!JsonEncoding.UTF8.equals(jsonEncoding)) {

+            throw new UnsupportedException("Only UTF-8 encoding is supported.");

+        }

+    }

+

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/ParamUtil.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/ParamUtil.java
index d11356e..8fbbf42 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/ParamUtil.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/ParamUtil.java
@@ -1,98 +1,84 @@
-/*
- * 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.utils;
-
-import java.util.List;
-import java.util.Set;
-
-import org.onosproject.ovsdb.rfc.message.MonitorRequest;
-import org.onosproject.ovsdb.rfc.message.MonitorSelect;
-import org.onosproject.ovsdb.rfc.operations.Operation;
-import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;
-import org.onosproject.ovsdb.rfc.schema.TableSchema;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
-/**
- * Params utility class. Params of the request object, refer to RFC7047's Section
- * 4.1.
- */
-public final class ParamUtil {
-
-    /**
-     * Constructs a ParamUtil object. Utility classes should not have a
-     * public or default constructor, otherwise IDE will compile unsuccessfully. This
-     * class should not be instantiated.
-     */
-    private ParamUtil() {
-    }
-
-    /**
-     * Returns MonitorRequest, refer to RFC7047's Section 4.1.5.
-     * @param tableSchema entity
-     * @return MonitorRequest
-     */
-    private static MonitorRequest getAllColumnsMonitorRequest(TableSchema tableSchema) {
-        String tableName = tableSchema.name();
-        Set<String> columns = tableSchema.getColumnNames();
-        MonitorSelect select = new MonitorSelect(true, true, true, true);
-        MonitorRequest monitorRequest = new MonitorRequest(tableName, columns,
-                                                           select);
-        return monitorRequest;
-    }
-
-    /**
-     * Returns params of monitor method, refer to RFC7047's Section 4.1.5.
-     * @param monotorId json-value, refer to RFC7047's Section 4.1.5.
-     * @param dbSchema DatabaseSchema entity
-     * @return List of Object, the params of monitor request
-     */
-    public static List<Object> getMonitorParams(String monotorId,
-                                                DatabaseSchema dbSchema) {
-        Set<String> tables = dbSchema.getTableNames();
-        List<MonitorRequest> monitorRequests = Lists.newArrayList();
-        for (String tableName : tables) {
-            TableSchema tableSchema = dbSchema.getTableSchema(tableName);
-            monitorRequests.add(getAllColumnsMonitorRequest(tableSchema));
-        }
-        ImmutableMap<String, MonitorRequest> reqMap = Maps
-                .uniqueIndex(monitorRequests,
-                             new Function<MonitorRequest, String>() {
-                                 @Override
-                                 public String apply(MonitorRequest input) {
-                                     return input.getTableName();
-                                 }
-                             });
-        return Lists.<Object>newArrayList(dbSchema.name(), monotorId,
-                                           reqMap);
-    }
-
-    /**
-     * Returns params of transact method, refer to RFC7047's Section 4.1.3.
-     * @param dbSchema DatabaseSchema entity
-     * @param operations operation*, refer to RFC7047's Section 4.1.3.
-     * @return List of Object, the params of transact request
-     */
-    public static List<Object> getTransactParams(DatabaseSchema dbSchema,
-                                                 List<Operation> operations) {
-        List<Object> lists = Lists.newArrayList((Object) dbSchema.name());
-        lists.addAll(operations);
-        return lists;
-    }
-}
+/*

+ * 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.utils;

+

+import java.util.List;

+import java.util.Map;

+import java.util.Set;

+

+import org.onosproject.ovsdb.rfc.message.MonitorRequest;

+import org.onosproject.ovsdb.rfc.message.MonitorSelect;

+import org.onosproject.ovsdb.rfc.operations.Operation;

+import org.onosproject.ovsdb.rfc.schema.DatabaseSchema;

+import org.onosproject.ovsdb.rfc.schema.TableSchema;

+

+import com.google.common.collect.Lists;

+import com.google.common.collect.Maps;

+

+/**

+ * Params utility class. Params of the request object, refer to RFC7047's

+ * Section 4.1.

+ */

+public final class ParamUtil {

+

+    /**

+     * Constructs a ParamUtil object. Utility classes should not have a public

+     * or default constructor, otherwise IDE will compile unsuccessfully. This

+     * class should not be instantiated.

+     */

+    private ParamUtil() {

+    }

+

+    /**

+     * Returns MonitorRequest, refer to RFC7047's Section 4.1.5.

+     * @param tableSchema entity

+     * @return MonitorRequest

+     */

+    private static MonitorRequest getAllColumnsMonitorRequest(TableSchema tableSchema) {

+        String tableName = tableSchema.name();

+        Set<String> columns = tableSchema.getColumnNames();

+        MonitorSelect select = new MonitorSelect(true, true, true, true);

+        MonitorRequest monitorRequest = new MonitorRequest(tableName, columns, select);

+        return monitorRequest;

+    }

+

+    /**

+     * Returns params of monitor method, refer to RFC7047's Section 4.1.5.

+     * @param monotorId json-value, refer to RFC7047's Section 4.1.5.

+     * @param dbSchema DatabaseSchema entity

+     * @return List of Object, the params of monitor request

+     */

+    public static List<Object> getMonitorParams(String monotorId, DatabaseSchema dbSchema) {

+        Set<String> tables = dbSchema.getTableNames();

+        Map<String, MonitorRequest> mrMap = Maps.newHashMap();

+        for (String tableName : tables) {

+            TableSchema tableSchema = dbSchema.getTableSchema(tableName);

+            MonitorRequest monitorRequest = getAllColumnsMonitorRequest(tableSchema);

+            mrMap.put(tableName, monitorRequest);

+        }

+        return Lists.newArrayList(dbSchema.name(), monotorId, mrMap);

+    }

+

+    /**

+     * Returns params of transact method, refer to RFC7047's Section 4.1.3.

+     * @param dbSchema DatabaseSchema entity

+     * @param operations operation*, refer to RFC7047's Section 4.1.3.

+     * @return List of Object, the params of transact request

+     */

+    public static List<Object> getTransactParams(DatabaseSchema dbSchema, List<Operation> operations) {

+        return Lists.newArrayList(dbSchema.name(), operations);

+    }

+}

diff --git a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/TransValueUtil.java b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/TransValueUtil.java
index 694fa8b..49fbd37 100644
--- a/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/TransValueUtil.java
+++ b/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/TransValueUtil.java
@@ -87,33 +87,29 @@
      * @param atoType AtomicColumnType entity
      * @return Object OvsdbSet or the value of JsonNode
      */
-    private static Object getValueFromAtoType(JsonNode json,
-                                              AtomicColumnType atoType) {
+    private static Object getValueFromAtoType(JsonNode json, AtomicColumnType atoType) {
         BaseType baseType = atoType.baseType();
         // If "min" or "max" is not specified, If "min" is not 1 or "max" is not
-        // 1,
-        // or both, and "value" is not specified, the type is a set of scalar
-        // type "key".
-        // Refer to RFC 7047, Section 3.2 <type>.
+        // 1, or both, and "value" is not specified, the type is a set of scalar
+        // type "key". Refer to RFC 7047, Section 3.2 <type>.
         if (atoType.min() != atoType.max()) {
             Set set = Sets.newHashSet();
             if (json.isArray()) {
                 if (json.size() == 2) {
-                    if (json.get(0).isTextual()
-                            && "set".equals(json.get(0).asText())) {
+                    if (json.get(0).isTextual() && "set".equals(json.get(0).asText())) {
                         for (JsonNode node : json.get(1)) {
-                            set.add(TransValueUtil.transToValue(node, baseType));
+                            set.add(transToValue(node, baseType));
                         }
                     } else {
-                        set.add(TransValueUtil.transToValue(json, baseType));
+                        set.add(transToValue(json, baseType));
                     }
                 }
             } else {
-                set.add(TransValueUtil.transToValue(json, baseType));
+                set.add(transToValue(json, baseType));
             }
             return OvsdbSet.ovsdbSet(set);
         } else {
-            return TransValueUtil.transToValue(json, baseType);
+            return transToValue(json, baseType);
         }
     }
 
@@ -123,19 +119,15 @@
      * @param kvType KeyValuedColumnType entity
      * @return Object OvsdbMap
      */
-    private static Object getValueFromKvType(JsonNode json,
-                                             KeyValuedColumnType kvType) {
+    private static Object getValueFromKvType(JsonNode json, KeyValuedColumnType kvType) {
         if (json.isArray()) {
             if (json.size() == 2) {
-                if (json.get(0).isTextual()
-                        && "map".equals(json.get(0).asText())) {
+                if (json.get(0).isTextual() && "map".equals(json.get(0).asText())) {
                     Map map = Maps.newHashMap();
                     for (JsonNode pairNode : json.get(1)) {
                         if (pairNode.isArray() && json.size() == 2) {
-                            Object key = TransValueUtil.transToValue(pairNode
-                                    .get(0), kvType.keyType());
-                            Object value = TransValueUtil.transToValue(pairNode
-                                    .get(1), kvType.valueType());
+                            Object key = transToValue(pairNode.get(0), kvType.keyType());
+                            Object value = transToValue(pairNode.get(1), kvType.valueType());
                             map.put(key, value);
                         }
                     }
@@ -166,14 +158,13 @@
             if (valueNode.isArray()) {
                 if (valueNode.size() == 2) {
                     if (valueNode.get(0).isTextual()
-                            && "uuid".equals(valueNode.get(0).asText())
-                            || "named-uuid".equals(valueNode.get(0).asText())) {
+                            && ("uuid".equals(valueNode.get(0).asText()) || "named-uuid"
+                                    .equals(valueNode.get(0).asText()))) {
                         return UUID.uuid(valueNode.get(1).asText());
                     }
                 }
             } else {
-                return new RefTableRow(((UuidBaseType) baseType).getRefTable(),
-                                       valueNode);
+                return new RefTableRow(((UuidBaseType) baseType).getRefTable(), valueNode);
             }
         }
         return null;