X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FAnyXmlBuilder.java;h=d5f3c52497bf593880c6c46ee9f4672f1605f8bb;hp=7d9e3ea8b72a4ff6a017999dfc234762e5d52522;hb=3c8c7171aa9a2fdf322b85cf104ae551665aa0d8;hpb=9090a5876e0540b12d30e4cdf29f8be25208b489 diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/AnyXmlBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/AnyXmlBuilder.java index 7d9e3ea8b7..d5f3c52497 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/AnyXmlBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/AnyXmlBuilder.java @@ -17,30 +17,47 @@ import org.opendaylight.controller.yang.model.api.ConstraintDefinition; import org.opendaylight.controller.yang.model.api.SchemaPath; import org.opendaylight.controller.yang.model.api.Status; import org.opendaylight.controller.yang.model.api.UnknownSchemaNode; +import org.opendaylight.controller.yang.parser.builder.api.AbstractSchemaNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.api.ConfigNode; import org.opendaylight.controller.yang.parser.builder.api.DataSchemaNodeBuilder; -import org.opendaylight.controller.yang.parser.util.YangParseException; +import org.opendaylight.controller.yang.parser.builder.api.GroupingMember; -public class AnyXmlBuilder implements DataSchemaNodeBuilder { +public final class AnyXmlBuilder extends AbstractSchemaNodeBuilder implements DataSchemaNodeBuilder, GroupingMember, + ConfigNode { private boolean built; - private final int line; - private final QName qname; - private SchemaPath path; private final AnyXmlSchemaNodeImpl instance; private final ConstraintsBuilder constraints; - private final List addedUnknownNodes = new ArrayList(); - private String description; - private String reference; - private Status status = Status.CURRENT; - private boolean configuration; + private List unknownNodes; - public AnyXmlBuilder(final QName qname, final int line) { - this.qname = qname; - this.line = line; + private Boolean configuration; + private boolean augmenting; + private boolean addedByUses; + + public AnyXmlBuilder(final QName qname, final SchemaPath schemaPath, final int line) { + super(qname, line); + this.path = schemaPath; instance = new AnyXmlSchemaNodeImpl(qname); constraints = new ConstraintsBuilder(line); } + public AnyXmlBuilder(final AnyXmlBuilder builder) { + super(builder.qname, builder.line); + instance = new AnyXmlSchemaNodeImpl(qname); + constraints = builder.constraints; + path = builder.path; + unknownNodes = builder.unknownNodes; + for (UnknownSchemaNodeBuilder un : builder.addedUnknownNodes) { + addedUnknownNodes.add(un); + } + description = builder.description; + reference = builder.reference; + status = builder.status; + configuration = builder.configuration; + augmenting = builder.augmenting; + addedByUses = builder.addedByUses; + } + @Override public AnyXmlSchemaNode build() { if (!built) { @@ -50,11 +67,15 @@ public class AnyXmlBuilder implements DataSchemaNodeBuilder { instance.setReference(reference); instance.setStatus(status); instance.setConfiguration(configuration); + instance.setAugmenting(augmenting); + instance.setAddedByUses(addedByUses); // UNKNOWN NODES - final List unknownNodes = new ArrayList(); - for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { - unknownNodes.add(b.build()); + if (unknownNodes == null) { + unknownNodes = new ArrayList(); + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); + } } instance.setUnknownSchemaNodes(unknownNodes); @@ -63,81 +84,47 @@ public class AnyXmlBuilder implements DataSchemaNodeBuilder { return instance; } - @Override - public int getLine() { - return line; - } - - @Override - public QName getQName() { - return qname; - } - - public SchemaPath getPath() { - return path; - } - - @Override - public void setPath(final SchemaPath path) { - this.path = path; - } - @Override public ConstraintsBuilder getConstraints() { return constraints; } - @Override - public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) { - addedUnknownNodes.add(unknownNode); - } - public List getUnknownNodes() { return addedUnknownNodes; } - public String getDescription() { - return description; + public void setUnknownNodes(List unknownNodes) { + this.unknownNodes = unknownNodes; } @Override - public void setDescription(final String description) { - this.description = description; - } - - public String getReference() { - return reference; + public boolean isAugmenting() { + return augmenting; } @Override - public void setReference(final String reference) { - this.reference = reference; - } - - public Status getStatus() { - return status; + public void setAugmenting(final boolean augmenting) { + this.augmenting = augmenting; } @Override - public void setStatus(final Status status) { - if (status != null) { - this.status = status; - } + public boolean isAddedByUses() { + return addedByUses; } @Override - public void setAugmenting(final boolean augmenting) { - throw new YangParseException(line, - "An anyxml node cannot be augmented."); + public void setAddedByUses(final boolean addedByUses) { + this.addedByUses = addedByUses; } - public boolean isConfiguration() { + @Override + public Boolean isConfiguration() { return configuration; } @Override - public void setConfiguration(final boolean configuration) { - instance.setConfiguration(configuration); + public void setConfiguration(final Boolean configuration) { + this.configuration = configuration; } private final class AnyXmlSchemaNodeImpl implements AnyXmlSchemaNode { @@ -148,6 +135,8 @@ public class AnyXmlBuilder implements DataSchemaNodeBuilder { private Status status = Status.CURRENT; private boolean configuration; private ConstraintDefinition constraintsDef; + private boolean augmenting; + private boolean addedByUses; private List unknownNodes = Collections.emptyList(); private AnyXmlSchemaNodeImpl(final QName qname) { @@ -199,7 +188,20 @@ public class AnyXmlBuilder implements DataSchemaNodeBuilder { @Override public boolean isAugmenting() { - return false; + 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 @@ -271,8 +273,7 @@ public class AnyXmlBuilder implements DataSchemaNodeBuilder { @Override public String toString() { - StringBuilder sb = new StringBuilder( - AnyXmlSchemaNodeImpl.class.getSimpleName()); + StringBuilder sb = new StringBuilder(AnyXmlSchemaNodeImpl.class.getSimpleName()); sb.append("["); sb.append("qname=" + qname); sb.append(", path=" + path);