Do not allow TableSchema columns to be directly set 34/86134/2
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 29 Nov 2019 11:23:54 +0000 (12:23 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 3 Dec 2019 10:19:29 +0000 (11:19 +0100)
This makes it obvious that the collection is largely controlled
by TableSchema, bringing it another step closer to being immutable.

Change-Id: Iacb375c3cafbe687966729626fe30a3d08e8f31e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 6ad4ee4a708a10734161a52afb903e6797991937)

library/impl/src/main/java/org/opendaylight/ovsdb/lib/schema/TableSchema.java

index c2831c5c228605e096655438e2b93c54c2be304c..9ad3953d2b7d9705d2375c3a1cc2238f10a671db 100644 (file)
@@ -12,6 +12,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -26,11 +27,12 @@ import org.opendaylight.ovsdb.lib.schema.BaseType.UuidBaseType;
 
 public abstract class TableSchema<E extends TableSchema<E>> {
 
-    private String name;
-    private Map<String, ColumnSchema> columns;
+    private final String name;
+    private final Map<String, ColumnSchema> columns;
 
     protected TableSchema(final String name) {
         this.name = name;
+        this.columns = new HashMap<>();
     }
 
     protected TableSchema(final String name, final Map<String, ColumnSchema> columns) {
@@ -103,14 +105,6 @@ public abstract class TableSchema<E extends TableSchema<E>> {
         return name;
     }
 
-    protected void setName(final String name) {
-        this.name = name;
-    }
-
-    protected void setColumns(final Map<String, ColumnSchema> columns) {
-        this.columns = columns;
-    }
-
     public TableUpdate<E> updatesFromJson(final JsonNode value) {
         TableUpdate<E> tableUpdate = new TableUpdate<>();
         Iterator<Entry<String, JsonNode>> fields = value.fields();