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 / ExtensionBuilder.java
index fa5c4954ad65483a729e1b01ec2fca98003b6080..5828a33df919e11cb2082ade4b1439039139c884 100644 (file)
@@ -22,21 +22,26 @@ public class ExtensionBuilder implements SchemaNodeBuilder {
 
     private final ExtensionDefinitionImpl instance;
     private final QName qname;
+    private SchemaPath schemaPath;
     private final List<UnknownSchemaNodeBuilder> addedExtensions = new ArrayList<UnknownSchemaNodeBuilder>();
     private final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();
 
-    ExtensionBuilder(QName qname) {
+    ExtensionBuilder(final QName qname) {
         this.qname = qname;
         instance = new ExtensionDefinitionImpl(qname);
     }
 
     @Override
     public ExtensionDefinition build() {
-        List<UnknownSchemaNode> extensions = new ArrayList<UnknownSchemaNode>();
+        instance.setPath(schemaPath);
+
+        // UNKNOWN NODES
+        final List<UnknownSchemaNode> extensions = new ArrayList<UnknownSchemaNode>();
         for (UnknownSchemaNodeBuilder e : addedExtensions) {
             extensions.add(e.build());
         }
         instance.setUnknownSchemaNodes(extensions);
+
         return instance;
     }
 
@@ -48,14 +53,23 @@ public class ExtensionBuilder implements SchemaNodeBuilder {
         instance.setYinElement(yin);
     }
 
+    public void setArgument(String argument) {
+        instance.setArgument(argument);
+    }
+
     @Override
     public QName getQName() {
         return qname;
     }
 
+    @Override
+    public SchemaPath getPath() {
+        return schemaPath;
+    }
+
     @Override
     public void setPath(SchemaPath schemaPath) {
-        instance.setPath(schemaPath);
+        this.schemaPath = schemaPath;
     }
 
     @Override
@@ -74,17 +88,18 @@ public class ExtensionBuilder implements SchemaNodeBuilder {
     }
 
     @Override
-    public void addUnknownSchemaNode(UnknownSchemaNodeBuilder unknownSchemaNodeBuilder) {
-        addedUnknownNodes.add(unknownSchemaNodeBuilder);
+    public void addUnknownSchemaNode(UnknownSchemaNodeBuilder unknownNode) {
+        addedUnknownNodes.add(unknownNode);
     }
 
     private static class ExtensionDefinitionImpl implements ExtensionDefinition {
         private final QName qname;
+        private String argument;
         private SchemaPath schemaPath;
         private String description;
         private String reference;
         private Status status = Status.CURRENT;
-        private List<UnknownSchemaNode> unknownSchemaNodes = Collections
+        private List<UnknownSchemaNode> unknownNodes = Collections
                 .emptyList();
         private boolean yin;
 
@@ -137,19 +152,23 @@ public class ExtensionBuilder implements SchemaNodeBuilder {
 
         @Override
         public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-            return unknownSchemaNodes;
+            return unknownNodes;
         }
 
         private void setUnknownSchemaNodes(
-                List<UnknownSchemaNode> unknownSchemaNodes) {
-            if(unknownSchemaNodes != null) {
-                this.unknownSchemaNodes = unknownSchemaNodes;
+                List<UnknownSchemaNode> unknownNodes) {
+            if(unknownNodes != null) {
+                this.unknownNodes = unknownNodes;
             }
         }
 
         @Override
         public String getArgument() {
-            return qname.getLocalName();
+            return argument;
+        }
+
+        private void setArgument(String argument) {
+            this.argument = argument;
         }
 
         @Override
@@ -168,16 +187,10 @@ public class ExtensionBuilder implements SchemaNodeBuilder {
             result = prime * result + ((qname == null) ? 0 : qname.hashCode());
             result = prime * result
                     + ((schemaPath == null) ? 0 : schemaPath.hashCode());
-            result = prime * result
-                    + ((description == null) ? 0 : description.hashCode());
-            result = prime * result
-                    + ((reference == null) ? 0 : reference.hashCode());
-            result = prime * result
-                    + ((status == null) ? 0 : status.hashCode());
             result = prime
                     * result
-                    + ((unknownSchemaNodes == null) ? 0
-                            : unknownSchemaNodes.hashCode());
+                    + ((unknownNodes == null) ? 0
+                            : unknownNodes.hashCode());
             result = prime * result + (yin ? 1231 : 1237);
             return result;
         }
@@ -208,32 +221,11 @@ public class ExtensionBuilder implements SchemaNodeBuilder {
             } else if (!schemaPath.equals(other.schemaPath)) {
                 return false;
             }
-            if (description == null) {
-                if (other.description != null) {
-                    return false;
-                }
-            } else if (!description.equals(other.description)) {
-                return false;
-            }
-            if (reference == null) {
-                if (other.reference != null) {
-                    return false;
-                }
-            } else if (!reference.equals(other.reference)) {
-                return false;
-            }
-            if (status == null) {
-                if (other.status != null) {
-                    return false;
-                }
-            } else if (!status.equals(other.status)) {
-                return false;
-            }
-            if (unknownSchemaNodes == null) {
-                if (other.unknownSchemaNodes != null) {
+            if (unknownNodes == null) {
+                if (other.unknownNodes != null) {
                     return false;
                 }
-            } else if (!unknownSchemaNodes.equals(other.unknownSchemaNodes)) {
+            } else if (!unknownNodes.equals(other.unknownNodes)) {
                 return false;
             }
             if (yin != other.yin) {
@@ -247,12 +239,10 @@ public class ExtensionBuilder implements SchemaNodeBuilder {
             StringBuilder sb = new StringBuilder(
                     ExtensionDefinitionImpl.class.getSimpleName());
             sb.append("[");
-            sb.append("qname=" + qname);
+            sb.append("argument="+ argument);
+            sb.append(", qname=" + qname);
             sb.append(", schemaPath=" + schemaPath);
-            sb.append(", description=" + description);
-            sb.append(", reference=" + reference);
-            sb.append(", status=" + status);
-            sb.append(", extensionSchemaNodes=" + unknownSchemaNodes);
+            sb.append(", extensionSchemaNodes=" + unknownNodes);
             sb.append(", yin=" + yin);
             sb.append("]");
             return sb.toString();