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%2FGroupingBuilderImpl.java;h=cc7a05cd04b30ca0f683ff76cfc1319a48a84bb2;hb=e9ca35a2cd3c7b3e19c56d8496bfedd09fc1ce54;hp=19c94a3f3365bc059674c574f19e061161e2138f;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/GroupingBuilderImpl.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/GroupingBuilderImpl.java index 19c94a3f33..cc7a05cd04 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/GroupingBuilderImpl.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/GroupingBuilderImpl.java @@ -28,59 +28,72 @@ import org.opendaylight.controller.yang.parser.builder.api.GroupingBuilder; import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionBuilder; import org.opendaylight.controller.yang.parser.builder.api.UsesNodeBuilder; -public class GroupingBuilderImpl implements GroupingBuilder { +public final class GroupingBuilderImpl implements GroupingBuilder { + private boolean isBuilt; private final GroupingDefinitionImpl instance; private final int line; + private final QName qname; private SchemaPath schemaPath; + private String description; + private String reference; + private Status status; private final Set childNodes = new HashSet(); private final Set groupings = new HashSet(); private final Set addedTypedefs = new HashSet(); private final Set usesNodes = new HashSet(); private final List addedUnknownNodes = new ArrayList(); - GroupingBuilderImpl(final QName qname, final int line) { + public GroupingBuilderImpl(final QName qname, final int line) { + this.qname = qname; this.instance = new GroupingDefinitionImpl(qname); this.line = line; } @Override public GroupingDefinition build() { - instance.setPath(schemaPath); + if (!isBuilt) { + instance.setPath(schemaPath); + instance.setDescription(description); + instance.setReference(reference); + instance.setStatus(status); + + // CHILD NODES + final Map childs = new HashMap(); + for (DataSchemaNodeBuilder node : childNodes) { + childs.put(node.getQName(), node.build()); + } + instance.setChildNodes(childs); - // 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 usesNodeDefs = new HashSet(); + for (UsesNodeBuilder builder : usesNodes) { + usesNodeDefs.add(builder.build()); + } + instance.setUses(usesNodeDefs); - // USES - final Set usesNodeDefs = new HashSet(); - for (UsesNodeBuilder builder : usesNodes) { - usesNodeDefs.add(builder.build()); - } - instance.setUses(usesNodeDefs); + // 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()); + isBuilt = true; } - instance.setUnknownSchemaNodes(unknownNodes); return instance; } @@ -90,12 +103,14 @@ public class GroupingBuilderImpl implements GroupingBuilder { return line; } - /** - * Always returns null. - */ @Override public QName getQName() { - return null; + return qname; + } + + @Override + public Set getTypedefs() { + return addedTypedefs; } @Override @@ -113,26 +128,41 @@ public class GroupingBuilderImpl implements GroupingBuilder { this.schemaPath = schemaPath; } + @Override + public String getDescription() { + return description; + } + @Override public void setDescription(final String description) { - instance.setDescription(description); + this.description = description; + } + + @Override + public String getReference() { + return reference; } @Override public void setReference(final String reference) { - instance.setReference(reference); + this.reference = reference; + } + + @Override + public Status getStatus() { + return status; } @Override public void setStatus(final Status status) { - instance.setStatus(status); + this.status = status; } @Override public DataSchemaNodeBuilder getChildNode(String name) { DataSchemaNodeBuilder result = null; - for(DataSchemaNodeBuilder node : childNodes) { - if(node.getQName().getLocalName().equals(name)) { + for (DataSchemaNodeBuilder node : childNodes) { + if (node.getQName().getLocalName().equals(name)) { result = node; break; } @@ -150,22 +180,37 @@ public class GroupingBuilderImpl implements GroupingBuilder { return childNodes; } + @Override + public Set getGroupings() { + return groupings; + } + @Override public void addGrouping(final GroupingBuilder grouping) { groupings.add(grouping); } + @Override + public Set getUses() { + return usesNodes; + } + @Override public void addUsesNode(final UsesNodeBuilder usesBuilder) { usesNodes.add(usesBuilder); } + @Override + public List getUnknownNodes() { + return addedUnknownNodes; + } + @Override public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) { addedUnknownNodes.add(unknownNode); } - private static class GroupingDefinitionImpl implements GroupingDefinition { + private final class GroupingDefinitionImpl implements GroupingDefinition { private final QName qname; private SchemaPath path; private String description; @@ -264,7 +309,7 @@ public class GroupingBuilderImpl implements GroupingBuilder { } private void setUnknownSchemaNodes(List unknownNodes) { - if(unknownNodes != null) { + if (unknownNodes != null) { this.unknownNodes = unknownNodes; } }