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%2FExtensionBuilder.java;h=fbd55ab7d9fda8249b963b654be0bf03bab6aa84;hp=0558b91cd0c0ed97140c99eef9600a30dd893848;hb=0df356fd6dd1e24f82a4afaa6c824517d354fb20;hpb=57fecc4d1681146cef30525950dd74a7ff657850 diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ExtensionBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ExtensionBuilder.java index 0558b91cd0..fbd55ab7d9 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ExtensionBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ExtensionBuilder.java @@ -16,40 +16,35 @@ import org.opendaylight.controller.yang.model.api.ExtensionDefinition; 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.SchemaNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.api.AbstractSchemaNodeBuilder; +import org.opendaylight.controller.yang.parser.util.Comparators; -public final class ExtensionBuilder implements SchemaNodeBuilder { +public final class ExtensionBuilder extends AbstractSchemaNodeBuilder { private boolean isBuilt; private final ExtensionDefinitionImpl instance; - private final int line; - private final QName qname; - private SchemaPath schemaPath; - private String description; - private String reference; - private Status status = Status.CURRENT; - private final List addedExtensions = new ArrayList(); - private final List addedUnknownNodes = new ArrayList(); - - ExtensionBuilder(final QName qname, final int line) { - this.qname = qname; - this.line = line; + + ExtensionBuilder(final int line, final QName qname) { + super(line, qname); instance = new ExtensionDefinitionImpl(qname); } @Override public ExtensionDefinition build() { - if(!isBuilt) { + if (!isBuilt) { instance.setPath(schemaPath); instance.setDescription(description); instance.setReference(reference); instance.setStatus(status); // UNKNOWN NODES - final List extensions = new ArrayList(); - for (UnknownSchemaNodeBuilder e : addedExtensions) { - extensions.add(e.build()); + if (unknownNodes == null) { + unknownNodes = new ArrayList(); + for (UnknownSchemaNodeBuilder un : addedUnknownNodes) { + unknownNodes.add(un.build()); + } + Collections.sort(unknownNodes, Comparators.SCHEMA_NODE_COMP); } - instance.setUnknownSchemaNodes(extensions); + instance.setUnknownSchemaNodes(unknownNodes); isBuilt = true; } @@ -57,15 +52,6 @@ public final class ExtensionBuilder implements SchemaNodeBuilder { return instance; } - @Override - public int getLine() { - return line; - } - - public void addExtension(UnknownSchemaNodeBuilder extension) { - addedExtensions.add(extension); - } - public void setYinElement(boolean yin) { instance.setYinElement(yin); } @@ -75,53 +61,8 @@ public final class ExtensionBuilder implements SchemaNodeBuilder { } @Override - public QName getQName() { - return qname; - } - - @Override - public SchemaPath getPath() { - return schemaPath; - } - - @Override - public void setPath(SchemaPath schemaPath) { - this.schemaPath = schemaPath; - } - - @Override - public String getDescription() { - return description; - } - - @Override - public void setDescription(final String description) { - this.description = description; - } - - @Override - public String getReference() { - return reference; - } - - @Override - public void setReference(final String reference) { - this.reference = reference; - } - - @Override - public Status getStatus() { - return status; - } - - @Override - public void setStatus(final Status status) { - instance.setStatus(status); - } - - @Override - public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) { - addedUnknownNodes.add(unknownNode); + public String toString() { + return "extension " + qname.getLocalName(); } private final class ExtensionDefinitionImpl implements ExtensionDefinition { @@ -131,8 +72,7 @@ public final class ExtensionBuilder implements SchemaNodeBuilder { private String description; private String reference; private Status status = Status.CURRENT; - private List unknownNodes = Collections - .emptyList(); + private List unknownNodes = Collections.emptyList(); private boolean yin; private ExtensionDefinitionImpl(QName qname) { @@ -187,9 +127,8 @@ public final class ExtensionBuilder implements SchemaNodeBuilder { return unknownNodes; } - private void setUnknownSchemaNodes( - List unknownNodes) { - if(unknownNodes != null) { + private void setUnknownSchemaNodes(List unknownNodes) { + if (unknownNodes != null) { this.unknownNodes = unknownNodes; } } @@ -217,8 +156,7 @@ public final class ExtensionBuilder implements SchemaNodeBuilder { final int prime = 31; int result = 1; result = prime * result + ((qname == null) ? 0 : qname.hashCode()); - result = prime * result - + ((schemaPath == null) ? 0 : schemaPath.hashCode()); + result = prime * result + ((schemaPath == null) ? 0 : schemaPath.hashCode()); return result; } @@ -253,10 +191,9 @@ public final class ExtensionBuilder implements SchemaNodeBuilder { @Override public String toString() { - StringBuilder sb = new StringBuilder( - ExtensionDefinitionImpl.class.getSimpleName()); + StringBuilder sb = new StringBuilder(ExtensionDefinitionImpl.class.getSimpleName()); sb.append("["); - sb.append("argument="+ argument); + sb.append("argument=" + argument); sb.append(", qname=" + qname); sb.append(", schemaPath=" + schemaPath); sb.append(", extensionSchemaNodes=" + unknownNodes);