Implemented refine statement parsing.
[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..ddbc927e515f3ef64271278fe105893b48f3623f 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;
 
@@ -19,16 +20,25 @@ import org.opendaylight.controller.yang.model.parser.builder.api.SchemaNodeBuild
 public class UnknownSchemaNodeBuilder implements SchemaNodeBuilder {
 
     private final QName qname;
+    private SchemaPath schemaPath;
     private final UnknownSchemaNodeImpl instance;
+    private final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();
 
     UnknownSchemaNodeBuilder(final QName qname) {
         this.qname = qname;
         instance = new UnknownSchemaNodeImpl(qname);
     }
 
-
     @Override
     public UnknownSchemaNode build() {
+        instance.setPath(schemaPath);
+
+        // UNKNOWN NODES
+        final List<UnknownSchemaNode> unknownNodes = new ArrayList<UnknownSchemaNode>();
+        for (UnknownSchemaNodeBuilder b : addedUnknownNodes) {
+            unknownNodes.add(b.build());
+        }
+        instance.setUnknownSchemaNodes(unknownNodes);
         return instance;
     }
 
@@ -37,35 +47,45 @@ 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);
+    }
+
     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 UnknownSchemaNodeImpl(QName qname) {
+        private UnknownSchemaNodeImpl(final QName qname) {
             this.qname = qname;
         }
 
@@ -78,7 +98,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 +108,7 @@ public class UnknownSchemaNodeBuilder implements SchemaNodeBuilder {
             return description;
         }
 
-        private void setDescription(String description) {
+        private void setDescription(final String description) {
             this.description = description;
         }
 
@@ -96,7 +117,7 @@ public class UnknownSchemaNodeBuilder implements SchemaNodeBuilder {
             return reference;
         }
 
-        private void setReference(String reference) {
+        private void setReference(final String reference) {
             this.reference = reference;
         }
 
@@ -105,20 +126,21 @@ 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;
             }
         }
     }