X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FLeafListSchemaNodeBuilder.java;h=2688361e33776445fdd412478c0cc1adbaae37e4;hb=ca832f2cff46ae77adfaf3e85638733108c5ee0c;hp=ba305b1d92277bef0a88f4636e8fe4efe02d8fc9;hpb=941f420730ffb51a116cb74627327f41a824e8ef;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/LeafListSchemaNodeBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/LeafListSchemaNodeBuilder.java index ba305b1d92..2688361e33 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/LeafListSchemaNodeBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/LeafListSchemaNodeBuilder.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.builder.impl; -import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -18,6 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.Status; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; +import org.opendaylight.yangtools.yang.model.api.YangNode; import org.opendaylight.yangtools.yang.parser.builder.api.AbstractTypeAwareBuilder; import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder; import org.opendaylight.yangtools.yang.parser.util.Comparators; @@ -47,8 +47,9 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im } @Override - public LeafListSchemaNode build() { + public LeafListSchemaNode build(YangNode parent) { if (!isBuilt) { + instance.setParent(parent); instance.setConstraints(constraints.build()); instance.setPath(schemaPath); instance.setDescription(description); @@ -60,19 +61,16 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im instance.setUserOrdered(userOrdered); if (type == null) { - instance.setType(typedef.build()); + instance.setType(typedef.build(instance)); } else { instance.setType(type); } // UNKNOWN NODES - if (unknownNodes == null) { - unknownNodes = new ArrayList<>(); - for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { - unknownNodes.add(b.build()); - } - Collections.sort(unknownNodes, Comparators.SCHEMA_NODE_COMP); + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build(instance)); } + Collections.sort(unknownNodes, Comparators.SCHEMA_NODE_COMP); instance.setUnknownSchemaNodes(unknownNodes); isBuilt = true; @@ -83,6 +81,7 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im @Override public void setQName(QName qname) { this.qname = qname; + instance.setQName(qname); } @Override @@ -197,11 +196,11 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im } else if (!schemaPath.equals(other.schemaPath)) { return false; } - if (parent == null) { - if (other.parent != null) { + if (parentBuilder == null) { + if (other.parentBuilder != null) { return false; } - } else if (!parent.equals(other.parent)) { + } else if (!parentBuilder.equals(other.parentBuilder)) { return false; } return true; @@ -213,8 +212,9 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im } private final class LeafListSchemaNodeImpl implements LeafListSchemaNode { - private final QName qname; + private QName qname; private SchemaPath path; + private YangNode parent; private String description; private String reference; private Status status = Status.CURRENT; @@ -235,6 +235,10 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im return qname; } + private void setQName(QName qname) { + this.qname = qname; + } + @Override public SchemaPath getPath() { return path; @@ -244,6 +248,15 @@ public final class LeafListSchemaNodeBuilder extends AbstractTypeAwareBuilder im this.path = path; } + @Override + public YangNode getParent() { + return parent; + } + + private void setParent(YangNode parent) { + this.parent = parent; + } + @Override public String getDescription() { return description;