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=a04fc3c1a68b06fa0e1667265b50417fa4831488;hp=3e8fd8d0a4a7b24c018e39fffb282d4c84919202;hb=0f393657ea0987d02556ea6e2a367d492a8e5a04;hpb=06aa5ce746e29a3760688b2ef2817f50bec5ea7a 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 3e8fd8d0a4..a04fc3c1a6 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 @@ -18,7 +18,8 @@ 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; -public class ExtensionBuilder implements SchemaNodeBuilder { +public final class ExtensionBuilder implements SchemaNodeBuilder { + private boolean isBuilt; private final ExtensionDefinitionImpl instance; private final int line; private final QName qname; @@ -34,14 +35,18 @@ public class ExtensionBuilder implements SchemaNodeBuilder { @Override public ExtensionDefinition build() { - instance.setPath(schemaPath); + if(!isBuilt) { + instance.setPath(schemaPath); - // UNKNOWN NODES - final List extensions = new ArrayList(); - for (UnknownSchemaNodeBuilder e : addedExtensions) { - extensions.add(e.build()); + // UNKNOWN NODES + final List extensions = new ArrayList(); + for (UnknownSchemaNodeBuilder e : addedExtensions) { + extensions.add(e.build()); + } + instance.setUnknownSchemaNodes(extensions); + + isBuilt = true; } - instance.setUnknownSchemaNodes(extensions); return instance; } @@ -98,7 +103,7 @@ public class ExtensionBuilder implements SchemaNodeBuilder { addedUnknownNodes.add(unknownNode); } - private static class ExtensionDefinitionImpl implements ExtensionDefinition { + private final class ExtensionDefinitionImpl implements ExtensionDefinition { private final QName qname; private String argument; private SchemaPath schemaPath; @@ -193,11 +198,6 @@ public class ExtensionBuilder implements SchemaNodeBuilder { result = prime * result + ((qname == null) ? 0 : qname.hashCode()); result = prime * result + ((schemaPath == null) ? 0 : schemaPath.hashCode()); - result = prime - * result - + ((unknownNodes == null) ? 0 - : unknownNodes.hashCode()); - result = prime * result + (yin ? 1231 : 1237); return result; } @@ -227,16 +227,6 @@ public class ExtensionBuilder implements SchemaNodeBuilder { } else if (!schemaPath.equals(other.schemaPath)) { return false; } - if (unknownNodes == null) { - if (other.unknownNodes != null) { - return false; - } - } else if (!unknownNodes.equals(other.unknownNodes)) { - return false; - } - if (yin != other.yin) { - return false; - } return true; }