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%2FRpcDefinitionBuilder.java;h=914ebc764474b43dfe4c48e91c4bc8124730903d;hb=1e9531138e44cd757ca27b0d86e98eccb22ccd82;hp=ac25f9bbffe7df7b3613d358c2caae17c4323234;hpb=aab7c08016dab70136793a108f7d7b8be3edc3c1;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/RpcDefinitionBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/RpcDefinitionBuilder.java index ac25f9bbff..914ebc7644 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/RpcDefinitionBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/RpcDefinitionBuilder.java @@ -26,8 +26,9 @@ import org.opendaylight.controller.yang.parser.builder.api.SchemaNodeBuilder; import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionAwareBuilder; import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionBuilder; -public class RpcDefinitionBuilder implements SchemaNodeBuilder, +public final class RpcDefinitionBuilder implements SchemaNodeBuilder, TypeDefinitionAwareBuilder { + private boolean isBuilt; private final RpcDefinitionImpl instance; private final int line; private final QName qname; @@ -46,34 +47,37 @@ public class RpcDefinitionBuilder implements SchemaNodeBuilder, @Override public RpcDefinition build() { - final ContainerSchemaNode input = inputBuilder.build(); - final ContainerSchemaNode output = outputBuilder.build(); - instance.setInput(input); - instance.setOutput(output); - - instance.setPath(schemaPath); + if (!isBuilt) { + final ContainerSchemaNode input = inputBuilder.build(); + final ContainerSchemaNode output = outputBuilder.build(); + instance.setInput(input); + instance.setOutput(output); + + instance.setPath(schemaPath); + + // 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); + // GROUPINGS + final Set groupings = new HashSet(); + for (GroupingBuilder entry : addedGroupings) { + groupings.add(entry.build()); + } + instance.setGroupings(groupings); - // GROUPINGS - final Set groupings = new HashSet(); - for (GroupingBuilder entry : addedGroupings) { - groupings.add(entry.build()); - } - instance.setGroupings(groupings); + // 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; } @@ -154,7 +158,7 @@ public class RpcDefinitionBuilder implements SchemaNodeBuilder, return true; } - private class RpcDefinitionImpl implements RpcDefinition { + private final class RpcDefinitionImpl implements RpcDefinition { private final QName qname; private SchemaPath path; private String description;