Expanded UnknownSchemaNode implementation, refactored java source code generation.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / yang / model / parser / builder / impl / UnknownSchemaNodeBuilder.java
index d0bb01cf34d35db1b318569c81c334dc5163e846..f24502bab2903d2ba545be05547c521f3ab26339 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.controller.yang.model.parser.builder.impl;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
@@ -17,18 +18,30 @@ import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.controller.yang.model.parser.builder.api.SchemaNodeBuilder;
 
 public class UnknownSchemaNodeBuilder implements SchemaNodeBuilder {
-
-    private final QName qname;
     private final UnknownSchemaNodeImpl instance;
+    private final QName qname;
+    private SchemaPath schemaPath;
+    private final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();
+    private QName nodeType;
+    private String nodeParameter;
 
     UnknownSchemaNodeBuilder(final QName qname) {
         this.qname = qname;
         instance = new UnknownSchemaNodeImpl(qname);
     }
 
-
     @Override
     public UnknownSchemaNode build() {
+        instance.setPath(schemaPath);
+        instance.setNodeType(nodeType);
+        instance.setNodeParameter(nodeParameter);
+
+        // UNKNOWN NODES
+        final List<UnknownSchemaNode> unknownNodes = new ArrayList<UnknownSchemaNode>();
+        for (UnknownSchemaNodeBuilder b : addedUnknownNodes) {
+            unknownNodes.add(b.build());
+        }
+        instance.setUnknownSchemaNodes(unknownNodes);
         return instance;
     }
 
@@ -37,35 +50,63 @@ public class UnknownSchemaNodeBuilder implements SchemaNodeBuilder {
         return qname;
     }
 
+    @Override
+    public SchemaPath getPath() {
+        return schemaPath;
+    }
+
     @Override
     public void setPath(SchemaPath schemaPath) {
-        instance.setPath(schemaPath);
+        this.schemaPath = schemaPath;
     }
 
     @Override
-    public void setDescription(String description) {
+    public void setDescription(final String description) {
         instance.setDescription(description);
     }
 
     @Override
-    public void setReference(String reference) {
+    public void setReference(final String reference) {
         instance.setReference(reference);
     }
 
     @Override
-    public void setStatus(Status status) {
+    public void setStatus(final Status status) {
         instance.setStatus(status);
     }
 
+    @Override
+    public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) {
+        addedUnknownNodes.add(unknownNode);
+    }
+
+    public QName getNodeType() {
+        return nodeType;
+    }
+
+    public void setNodeType(final QName nodeType) {
+        this.nodeType = nodeType;
+    }
+
+    public String getNodeParameter() {
+        return nodeParameter;
+    }
+
+    public void setNodeParameter(final String nodeParameter) {
+        this.nodeParameter = nodeParameter;
+    }
+
     private static class UnknownSchemaNodeImpl implements UnknownSchemaNode {
         private final QName qname;
         private SchemaPath path;
         private String description;
         private String reference;
         private Status status = Status.CURRENT;
-        private List<UnknownSchemaNode> unknownSchemaNodes = Collections.emptyList();
+        private List<UnknownSchemaNode> unknownNodes = Collections.emptyList();
+        private QName nodeType;
+        private String nodeParameter;
 
-        private UnknownSchemaNodeImpl(QName qname) {
+        private UnknownSchemaNodeImpl(final QName qname) {
             this.qname = qname;
         }
 
@@ -78,7 +119,8 @@ public class UnknownSchemaNodeBuilder implements SchemaNodeBuilder {
         public SchemaPath getPath() {
             return path;
         }
-        private void setPath(SchemaPath path) {
+
+        private void setPath(final SchemaPath path) {
             this.path = path;
         }
 
@@ -87,7 +129,7 @@ public class UnknownSchemaNodeBuilder implements SchemaNodeBuilder {
             return description;
         }
 
-        private void setDescription(String description) {
+        private void setDescription(final String description) {
             this.description = description;
         }
 
@@ -96,7 +138,7 @@ public class UnknownSchemaNodeBuilder implements SchemaNodeBuilder {
             return reference;
         }
 
-        private void setReference(String reference) {
+        private void setReference(final String reference) {
             this.reference = reference;
         }
 
@@ -105,22 +147,41 @@ public class UnknownSchemaNodeBuilder implements SchemaNodeBuilder {
             return status;
         }
 
-        private void setStatus(Status status) {
-            if(status != null) {
+        private void setStatus(final Status status) {
+            if (status != null) {
                 this.status = status;
             }
         }
 
         @Override
         public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-            return unknownSchemaNodes;
+            return unknownNodes;
         }
 
-        private void setUnknownSchemaNodes(List<UnknownSchemaNode> unknownSchemaNodes) {
-            if(unknownSchemaNodes != null) {
-                this.unknownSchemaNodes = unknownSchemaNodes;
+        private void setUnknownSchemaNodes(
+                final List<UnknownSchemaNode> unknownNodes) {
+            if (unknownNodes != null) {
+                this.unknownNodes = unknownNodes;
             }
         }
+
+        @Override
+        public QName getNodeType() {
+            return nodeType;
+        }
+
+        private void setNodeType(final QName nodeType) {
+            this.nodeType = nodeType;
+        }
+
+        @Override
+        public String getNodeParameter() {
+            return nodeParameter;
+        }
+
+        private void setNodeParameter(final String nodeParameter) {
+            this.nodeParameter = nodeParameter;
+        }
     }
 
 }