X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FContainerSchemaNodeBuilder.java;h=e12a3a9f4de1ace8991ac80d69f54ec5e6dfb6de;hb=35ba67e73cf9fea55535c1aef8303e7d12c982e7;hp=81a701c66a36bfba20a7bfbd8f53352c2603aaec;hpb=39ff6ed2000232d607877311770c74cef36cf96f;p=controller.git diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ContainerSchemaNodeBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ContainerSchemaNodeBuilder.java index 81a701c66a..e12a3a9f4d 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ContainerSchemaNodeBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ContainerSchemaNodeBuilder.java @@ -38,6 +38,7 @@ import org.opendaylight.controller.yang.parser.builder.api.UsesNodeBuilder; public class ContainerSchemaNodeBuilder extends AbstractChildNodeBuilder implements TypeDefinitionAwareBuilder, AugmentationTargetBuilder, DataSchemaNodeBuilder { + private boolean built; private final ContainerSchemaNodeImpl instance; private final int line; private final ConstraintsBuilder constraints; @@ -63,59 +64,62 @@ public class ContainerSchemaNodeBuilder extends AbstractChildNodeBuilder @Override public ContainerSchemaNode build() { - instance.setPath(schemaPath); - instance.setDescription(description); - instance.setReference(reference); - instance.setStatus(status); - instance.setPresenceContainer(presence); - instance.setAugmenting(augmenting); - instance.setConfiguration(configuration); - - // CHILD NODES - final Map childs = new HashMap(); - for (DataSchemaNodeBuilder node : childNodes) { - childs.put(node.getQName(), node.build()); - } - instance.setChildNodes(childs); + if(!built) { + instance.setPath(schemaPath); + instance.setDescription(description); + instance.setReference(reference); + instance.setStatus(status); + instance.setPresenceContainer(presence); + instance.setAugmenting(augmenting); + instance.setConfiguration(configuration); + + // CHILD NODES + final Map childs = new HashMap(); + for (DataSchemaNodeBuilder node : childNodes) { + childs.put(node.getQName(), node.build()); + } + instance.setChildNodes(childs); - // GROUPINGS - final Set groupingDefs = new HashSet(); - for (GroupingBuilder builder : groupings) { - groupingDefs.add(builder.build()); - } - instance.setGroupings(groupingDefs); + // GROUPINGS + final Set groupingDefs = new HashSet(); + for (GroupingBuilder builder : groupings) { + groupingDefs.add(builder.build()); + } + instance.setGroupings(groupingDefs); - // TYPEDEFS - final Set> typedefs = new HashSet>(); - for (TypeDefinitionBuilder entry : addedTypedefs) { - typedefs.add(entry.build()); - } - instance.setTypeDefinitions(typedefs); + // TYPEDEFS + final Set> typedefs = new HashSet>(); + for (TypeDefinitionBuilder entry : addedTypedefs) { + typedefs.add(entry.build()); + } + instance.setTypeDefinitions(typedefs); - // USES - final Set uses = new HashSet(); - for (UsesNodeBuilder builder : addedUsesNodes) { - uses.add(builder.build()); - } - instance.setUses(uses); + // USES + final Set uses = new HashSet(); + for (UsesNodeBuilder builder : addedUsesNodes) { + uses.add(builder.build()); + } + instance.setUses(uses); - // AUGMENTATIONS - final Set augmentations = new HashSet(); - for(AugmentationSchemaBuilder builder : addedAugmentations) { - augmentations.add(builder.build()); - } - instance.setAvailableAugmentations(augmentations); + // AUGMENTATIONS + final Set augmentations = new HashSet(); + for(AugmentationSchemaBuilder builder : addedAugmentations) { + augmentations.add(builder.build()); + } + instance.setAvailableAugmentations(augmentations); - // UNKNOWN NODES - final List unknownNodes = new ArrayList(); - for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { - unknownNodes.add(b.build()); - } - instance.setUnknownSchemaNodes(unknownNodes); + // UNKNOWN NODES + final List unknownNodes = new ArrayList(); + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); + } + instance.setUnknownSchemaNodes(unknownNodes); - instance.setConstraints(constraints.build()); - instance.setAvailableAugmentations(augmentations); + instance.setConstraints(constraints.build()); + instance.setAvailableAugmentations(augmentations); + built = true; + } return instance; }