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%2FListSchemaNodeBuilder.java;h=63a66e0892425e2f3698cc2358aabcbb74a7cb6f;hb=refs%2Fchanges%2F19%2F519%2F4;hp=65839d34b1e4ccedec5a29d8b7aeba7b33aaca9e;hpb=756b3a862090ac60968d6ea33b516964e0f24a48;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/ListSchemaNodeBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ListSchemaNodeBuilder.java index 65839d34b1..63a66e0892 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ListSchemaNodeBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/ListSchemaNodeBuilder.java @@ -46,15 +46,19 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde private String description; private String reference; private Status status = Status.CURRENT; + private List unknownNodes; private final List addedUnknownNodes = new ArrayList(); // DataSchemaNode args private boolean augmenting; private boolean configuration; private final ConstraintsBuilder constraints; // DataNodeContainer args + private Set> typedefs; private final Set addedTypedefs = new HashSet(); + private Set usesNodes; private final Set addedUsesNodes = new HashSet(); // AugmentationTarget args + private Set augmentations; private final Set addedAugmentations = new HashSet(); // ListSchemaNode args private List keyDefinition = Collections.emptyList(); @@ -81,43 +85,59 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde // CHILD NODES final Map childs = new HashMap(); - for (DataSchemaNodeBuilder node : childNodes) { - childs.put(node.getQName(), node.build()); + if(childNodes == null) { + for (DataSchemaNodeBuilder node : addedChildNodes) { + childs.put(node.getQName(), node.build()); + } + } else { + for(DataSchemaNode node : childNodes) { + childs.put(node.getQName(), node); + } } instance.setChildNodes(childs); // TYPEDEFS - final Set> typedefs = new HashSet>(); - for (TypeDefinitionBuilder entry : addedTypedefs) { - typedefs.add(entry.build()); + if(typedefs == null) { + typedefs = new HashSet>(); + for (TypeDefinitionBuilder entry : addedTypedefs) { + typedefs.add(entry.build()); + } } instance.setTypeDefinitions(typedefs); // USES - final Set usesNodeDefs = new HashSet(); - for (UsesNodeBuilder builder : addedUsesNodes) { - usesNodeDefs.add(builder.build()); + if(usesNodes == null) { + usesNodes = new HashSet(); + for (UsesNodeBuilder builder : addedUsesNodes) { + usesNodes.add(builder.build()); + } } - instance.setUses(usesNodeDefs); + instance.setUses(usesNodes); // GROUPINGS - final Set groupingDefs = new HashSet(); - for (GroupingBuilder builder : groupings) { - groupingDefs.add(builder.build()); + if(groupings == null) { + groupings = new HashSet(); + for (GroupingBuilder builder : addedGroupings) { + groupings.add(builder.build()); + } } - instance.setGroupings(groupingDefs); + instance.setGroupings(groupings); // AUGMENTATIONS - final Set augmentations = new HashSet(); - for (AugmentationSchemaBuilder builder : addedAugmentations) { - augmentations.add(builder.build()); + if(augmentations == null) { + 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()); + if(unknownNodes == null) { + unknownNodes = new ArrayList(); + for (UnknownSchemaNodeBuilder b : addedUnknownNodes) { + unknownNodes.add(b.build()); + } } instance.setUnknownSchemaNodes(unknownNodes); @@ -129,6 +149,12 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde return instance; } + @Override + public void rebuild() { + isBuilt = false; + build(); + } + @Override public int getLine() { return line; @@ -144,6 +170,10 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde addedTypedefs.add(type); } + public void setTypedefs(final Set> typedefs) { + this.typedefs = typedefs; + } + public SchemaPath getPath() { return schemaPath; } @@ -191,6 +221,10 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde addedUsesNodes.add(usesBuilder); } + public void setUsesnodes(final Set usesNodes) { + this.usesNodes = usesNodes; + } + public Set getAugmentations() { return addedAugmentations; } @@ -200,6 +234,10 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde addedAugmentations.add(augment); } + public void setAugmentations(final Set augmentations) { + this.augmentations = augmentations; + } + public List getKeyDefinition() { return keyDefinition; } @@ -250,7 +288,12 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde addedUnknownNodes.add(unknownNode); } - private final class ListSchemaNodeImpl implements ListSchemaNode { + public void setUnknownNodes(List unknownNodes) { + this.unknownNodes = unknownNodes; + } + + + public final class ListSchemaNodeImpl implements ListSchemaNode { private final QName qname; private SchemaPath path; private String description; @@ -444,6 +487,10 @@ public final class ListSchemaNodeBuilder extends AbstractDataNodeContainerBuilde } } + public ListSchemaNodeBuilder toBuilder() { + return ListSchemaNodeBuilder.this; + } + @Override public int hashCode() { final int prime = 31;