X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FUnionTypeBuilder.java;h=a184e23e1b84f6dea74e814801aea5660a1a7d0a;hb=5210b75cabf6d3fff0b399d34fe3939da29fedd6;hp=fd9a3aabc84cc5d10b7d1d41cca9a4b5787de809;hpb=d941fb0c4ad0bc4d7cf5e938c0c122eb61a378ac;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/UnionTypeBuilder.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/UnionTypeBuilder.java index fd9a3aabc8..a184e23e1b 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/UnionTypeBuilder.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/builder/impl/UnionTypeBuilder.java @@ -33,10 +33,14 @@ import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionBuilder */ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements TypeDefinitionBuilder, Builder { + private final static String CLASS_NAME = UnionTypeBuilder.class + .getSimpleName(); + private final int line; private final List> types; private final List typedefs; private final UnionType instance; + private boolean built; private final List actualPath; private final URI namespace; @@ -89,40 +93,43 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public UnionType build() { - for (TypeDefinitionBuilder tdb : typedefs) { - types.add(tdb.build()); + if (built) { + return instance; + } else { + for (TypeDefinitionBuilder tdb : typedefs) { + types.add(tdb.build()); + } + built = true; + return instance; } - return instance; } @Override public void setPath(final SchemaPath schemaPath) { - throw new IllegalStateException("Can not set path to " - + UnionTypeBuilder.class.getSimpleName()); + throw new IllegalStateException("Can not set path to " + CLASS_NAME); } @Override public void setDescription(final String description) { throw new IllegalStateException("Can not set description to " - + UnionTypeBuilder.class.getSimpleName()); + + CLASS_NAME); } @Override public void setReference(final String reference) { throw new IllegalStateException("Can not set reference to " - + UnionTypeBuilder.class.getSimpleName()); + + CLASS_NAME); } @Override public void setStatus(final Status status) { - throw new IllegalStateException("Can not set status to " - + UnionTypeBuilder.class.getSimpleName()); + throw new IllegalStateException("Can not set status to " + CLASS_NAME); } @Override public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) { throw new IllegalStateException("Can not add unknown node to " - + UnionTypeBuilder.class.getSimpleName()); + + CLASS_NAME); } @Override