Merge "Bug 509: Improve logging in InMemoryDataStore."
[controller.git] / opendaylight / config / yang-jmx-generator-plugin / src / main / java / org / opendaylight / controller / config / yangjmxgenerator / plugin / ftl / model / Field.java
index 0857ec6f8da64e16e64119d44d78834fd477cb9c..3639b6d727274d9656c24a04cd62e09a7a3ae62a 100644 (file)
@@ -11,36 +11,57 @@ import com.google.common.collect.Lists;
 
 import java.util.List;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 public class Field {
     private final String type;
     private final String name;
     private final String definition;
     private final List<String> modifiers;
+    private final boolean needsDepResolver;
 
     public Field(String type, String name) {
-        this(Lists.<String> newArrayList(), type, name, null);
+        this(Lists.<String> newArrayList(), type, name, null, false);
     }
 
     public Field(String type, String name, String definition) {
-        this(Lists.<String> newArrayList(), type, name, definition);
+        this(Lists.<String> newArrayList(), type, name, definition, false);
     }
 
     public Field(List<String> modifiers, String type, String name) {
-        this(modifiers, type, name, null);
+        this(modifiers, type, name, null, false);
     }
 
     public Field(List<String> modifiers, String type, String name,
             String definition) {
-        this.modifiers = modifiers;
-        this.type = type;
-        this.name = name;
-        this.definition = definition;
+        this(modifiers, type, name, definition, false);
+    }
+
+    public Field(List<String> modifiers, String type, String name,
+            String nullableDefinition, boolean needsDepResolver) {
+        this.modifiers = checkNotNull(modifiers);
+        this.type = checkNotNull(type);
+        this.name = checkNotNull(name);
+        this.definition = nullableDefinition;
+        this.needsDepResolver = needsDepResolver;
+    }
+
+    public Field(String type, String name, String definition, boolean needsDepResolver) {
+        this(Lists.<String> newArrayList(), type, name, definition, needsDepResolver);
+    }
+
+    public boolean isNeedsDepResolver() {
+        return needsDepResolver;
     }
 
     public String getType() {
         return type;
     }
 
+    public String getGenericInnerType() {
+        return type.substring(type.indexOf("<") + 1, type.indexOf(">"));
+    }
+
     public List<String> getModifiers() {
         return modifiers;
     }
@@ -56,4 +77,9 @@ public class Field {
     public boolean isArray() {
         return type.endsWith("[]");
     }
+
+    @Override
+    public String toString() {
+        return FieldSerializer.toString(this);
+    }
 }