X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FAnyXmlBuilder.java;h=d9bf89f9322a110dc1cdd96bf5a4c3008147d4bf;hb=36368e8e6f9a791c355a7e61010a04e6a4f347d4;hp=eed982e88bde3dee5e273bd4bb24d143c09732a4;hpb=c1e1c4777e6fbf3ccde612469f100e677ff36184;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/AnyXmlBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/AnyXmlBuilder.java index eed982e88b..d9bf89f932 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/AnyXmlBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/AnyXmlBuilder.java @@ -19,43 +19,45 @@ import org.opendaylight.yangtools.yang.model.api.Status; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.parser.builder.api.AbstractSchemaNodeBuilder; import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder; -import org.opendaylight.yangtools.yang.parser.builder.api.GroupingMember; import org.opendaylight.yangtools.yang.parser.util.Comparators; -public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements DataSchemaNodeBuilder, GroupingMember { +public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements DataSchemaNodeBuilder { private boolean built; private final AnyXmlSchemaNodeImpl instance; private final ConstraintsBuilder constraints; - private Boolean configuration; - private boolean augmenting; - private boolean addedByUses; - - public AnyXmlBuilder(final String moduleName, final int line, final QName qname, final SchemaPath schemaPath) { + public AnyXmlBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) { super(moduleName, line, qname); - this.schemaPath = schemaPath; - instance = new AnyXmlSchemaNodeImpl(qname); + this.schemaPath = path; + instance = new AnyXmlSchemaNodeImpl(qname, schemaPath); constraints = new ConstraintsBuilder(moduleName, line); } + public AnyXmlBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path, + final AnyXmlSchemaNode base) { + super(moduleName, line, qname); + this.schemaPath = path; + this.instance = new AnyXmlSchemaNodeImpl(qname, schemaPath); + constraints = new ConstraintsBuilder(moduleName, line, base.getConstraints()); + + instance.description = base.getDescription(); + instance.reference = base.getReference(); + instance.status = base.getStatus(); + instance.augmenting = base.isAugmenting(); + instance.addedByUses = base.isAddedByUses(); + instance.configuration = base.isConfiguration(); + instance.constraintsDef = base.getConstraints(); + instance.unknownNodes.addAll(base.getUnknownSchemaNodes()); + } + @Override public AnyXmlSchemaNode build() { if (!built) { - instance.setPath(schemaPath); instance.setConstraints(constraints.build()); - instance.setDescription(description); - instance.setReference(reference); - instance.setStatus(status); - instance.setConfiguration(configuration); - instance.setAugmenting(augmenting); - instance.setAddedByUses(addedByUses); // UNKNOWN NODES - if (unknownNodes == null) { - unknownNodes = new ArrayList(); - for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { - unknownNodes.add(b.build()); - } + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); } Collections.sort(unknownNodes, Comparators.SCHEMA_NODE_COMP); instance.setUnknownSchemaNodes(unknownNodes); @@ -66,8 +68,13 @@ public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements Da } @Override - public void setQName(QName qname) { - this.qname = qname; + public SchemaPath getPath() { + return instance.path; + } + + @Override + public void setPath(SchemaPath path) { + instance.path = path; } @Override @@ -75,38 +82,70 @@ public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements Da return constraints; } + @Override + public String getDescription() { + return instance.description; + } + + @Override + public void setDescription(final String description) { + instance.description = description; + } + + @Override + public String getReference() { + return instance.reference; + } + + @Override + public void setReference(final String reference) { + instance.reference = reference; + } + + @Override + public Status getStatus() { + return instance.status; + } + + @Override + public void setStatus(Status status) { + if (status != null) { + instance.status = status; + } + } + public List getUnknownNodes() { return addedUnknownNodes; } @Override public boolean isAugmenting() { - return augmenting; + return instance.augmenting; } @Override public void setAugmenting(final boolean augmenting) { - this.augmenting = augmenting; + instance.augmenting = augmenting; } @Override public boolean isAddedByUses() { - return addedByUses; + return instance.addedByUses; } @Override public void setAddedByUses(final boolean addedByUses) { - this.addedByUses = addedByUses; + instance.addedByUses = addedByUses; } @Override public Boolean isConfiguration() { - return configuration; + return instance.configuration; } @Override public void setConfiguration(final Boolean configuration) { - this.configuration = configuration; + instance.configuration = configuration; } @Override @@ -136,11 +175,11 @@ public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements Da } 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; @@ -161,10 +200,11 @@ public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements Da private ConstraintDefinition constraintsDef; private boolean augmenting; private boolean addedByUses; - private List unknownNodes = Collections.emptyList(); + private final List unknownNodes = new ArrayList<>(); - private AnyXmlSchemaNodeImpl(final QName qname) { + private AnyXmlSchemaNodeImpl(final QName qname, final SchemaPath path) { this.qname = qname; + this.path = path; } @Override @@ -177,66 +217,36 @@ public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements Da return path; } - private void setPath(final SchemaPath path) { - this.path = path; - } - @Override public String getDescription() { return description; } - private void setDescription(String description) { - this.description = description; - } - @Override public String getReference() { return reference; } - private void setReference(String reference) { - this.reference = reference; - } - @Override public Status getStatus() { return status; } - private void setStatus(Status status) { - if (status != null) { - this.status = status; - } - } - @Override public boolean isAugmenting() { return augmenting; } - private void setAugmenting(boolean augmenting) { - this.augmenting = augmenting; - } - @Override public boolean isAddedByUses() { return addedByUses; } - private void setAddedByUses(boolean addedByUses) { - this.addedByUses = addedByUses; - } - @Override public boolean isConfiguration() { return configuration; } - private void setConfiguration(boolean configuration) { - this.configuration = configuration; - } - @Override public ConstraintDefinition getConstraints() { return constraintsDef; @@ -248,12 +258,12 @@ public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements Da @Override public List getUnknownSchemaNodes() { - return unknownNodes; + return Collections.unmodifiableList(unknownNodes); } private void setUnknownSchemaNodes(List unknownNodes) { if (unknownNodes != null) { - this.unknownNodes = unknownNodes; + this.unknownNodes.addAll(unknownNodes); } }