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%2FExtensionBuilder.java;h=9b48c9dc15d5f80925939eed75b0faf0d3178232;hb=refs%2Fchanges%2F22%2F6922%2F5;hp=a051a1bc868c1aae6a87961bb0dadc6ee8f64ae1;hpb=116f9289f8930a7d46d8669a741d05a0a3495752;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ExtensionBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ExtensionBuilder.java index a051a1bc86..9b48c9dc15 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ExtensionBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ExtensionBuilder.java @@ -7,8 +7,6 @@ */ package org.opendaylight.yangtools.yang.parser.builder.impl; -import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.opendaylight.yangtools.yang.common.QName; @@ -17,77 +15,44 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; 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.util.Comparators; + +import com.google.common.collect.ImmutableList; public final class ExtensionBuilder extends AbstractSchemaNodeBuilder { - private boolean isBuilt; - private final ExtensionDefinitionImpl instance; + private ExtensionDefinitionImpl instance; + private String argument; + private boolean yin; ExtensionBuilder(final String moduleName, final int line, final QName qname, final SchemaPath path) { super(moduleName, line, qname); this.schemaPath = path; - instance = new ExtensionDefinitionImpl(qname, path); } @Override public ExtensionDefinition build() { - if (!isBuilt) { - // UNKNOWN NODES - for (UnknownSchemaNodeBuilder un : addedUnknownNodes) { - unknownNodes.add(un.build()); - } - Collections.sort(unknownNodes, Comparators.SCHEMA_NODE_COMP); - instance.addUnknownSchemaNodes(unknownNodes); - - isBuilt = true; + if (instance != null) { + return instance; } - return instance; - } - - @Override - public SchemaPath getPath() { - return instance.schemaPath; - } - - @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; - } + instance = new ExtensionDefinitionImpl(qname, schemaPath); + instance.argument = argument; + instance.yin = yin; - @Override - public void setStatus(Status status) { - if (status != null) { - instance.status = status; + // UNKNOWN NODES + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); } + instance.unknownNodes = ImmutableList.copyOf(unknownNodes); + + return instance; } public void setYinElement(boolean yin) { - instance.yin = yin; + this.yin = yin; } public void setArgument(String argument) { - instance.argument = argument; + this.argument = argument; } @Override @@ -101,8 +66,8 @@ public final class ExtensionBuilder extends AbstractSchemaNodeBuilder { private final SchemaPath schemaPath; private String description; private String reference; - private Status status = Status.CURRENT; - private final List unknownNodes = new ArrayList<>(); + private Status status; + private ImmutableList unknownNodes; private boolean yin; private ExtensionDefinitionImpl(QName qname, SchemaPath path) { @@ -137,13 +102,7 @@ public final class ExtensionBuilder extends AbstractSchemaNodeBuilder { @Override public List getUnknownSchemaNodes() { - return Collections.unmodifiableList(unknownNodes); - } - - private void addUnknownSchemaNodes(List unknownNodes) { - if (unknownNodes != null) { - this.unknownNodes.addAll(unknownNodes); - } + return unknownNodes; } @Override