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%2FUnionTypeBuilder.java;h=61aec1a8c95702f36787f1770791467f36ad3082;hb=1e9531138e44cd757ca27b0d86e98eccb22ccd82;hp=a184e23e1b84f6dea74e814801aea5660a1a7d0a;hpb=b823e1cd8fb5f3dd2767ca365f59c7790d46c6ff;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 a184e23e1b..61aec1a8c9 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 @@ -7,10 +7,8 @@ */ package org.opendaylight.controller.yang.parser.builder.impl; -import java.net.URI; import java.util.ArrayList; import java.util.Collections; -import java.util.Date; import java.util.List; import org.opendaylight.controller.yang.common.QName; @@ -22,8 +20,8 @@ import org.opendaylight.controller.yang.model.api.type.PatternConstraint; import org.opendaylight.controller.yang.model.api.type.RangeConstraint; import org.opendaylight.controller.yang.model.util.UnionType; import org.opendaylight.controller.yang.parser.builder.api.AbstractTypeAwareBuilder; -import org.opendaylight.controller.yang.parser.builder.api.Builder; import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionBuilder; +import org.opendaylight.controller.yang.parser.util.YangParseException; /** * Builder for YANG union type. User can add type to this union as @@ -31,31 +29,22 @@ import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionBuilder * When build is called, types in builder form will be built and add to resolved * types. */ -public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements - TypeDefinitionBuilder, Builder { - private final static String CLASS_NAME = UnionTypeBuilder.class - .getSimpleName(); +public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements + TypeDefinitionBuilder { + private final static String NAME = "union"; private final int line; private final List> types; private final List typedefs; - private final UnionType instance; - private boolean built; + private UnionType instance; + private boolean isBuilt; - private final List actualPath; - private final URI namespace; - private final Date revision; + private SchemaPath path; - public UnionTypeBuilder(final List actualPath, final URI namespace, - final Date revision, final int line) { + public UnionTypeBuilder(final int line) { this.line = line; types = new ArrayList>(); typedefs = new ArrayList(); - instance = new UnionType(actualPath, namespace, revision, types); - - this.actualPath = actualPath; - this.namespace = namespace; - this.revision = revision; } @Override @@ -93,43 +82,40 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public UnionType build() { - if (built) { - return instance; - } else { + if (!isBuilt) { + instance = new UnionType(path, types); for (TypeDefinitionBuilder tdb : typedefs) { types.add(tdb.build()); } - built = true; - return instance; + isBuilt = true; } + return instance; } @Override public void setPath(final SchemaPath schemaPath) { - throw new IllegalStateException("Can not set path to " + CLASS_NAME); + this.path = schemaPath; } @Override public void setDescription(final String description) { - throw new IllegalStateException("Can not set description to " - + CLASS_NAME); + throw new YangParseException(line, "Can not set description to " + NAME); } @Override public void setReference(final String reference) { - throw new IllegalStateException("Can not set reference to " - + CLASS_NAME); + throw new YangParseException(line, "Can not set reference to " + NAME); } @Override public void setStatus(final Status status) { - throw new IllegalStateException("Can not set status to " + CLASS_NAME); + throw new YangParseException(line, "Can not set status to " + NAME); } @Override public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) { - throw new IllegalStateException("Can not add unknown node to " - + CLASS_NAME); + throw new YangParseException(line, "Can not add unknown node to " + + NAME); } @Override @@ -164,8 +150,7 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public void setRanges(List ranges) { - throw new IllegalStateException("Can not set ranges to " - + UnionTypeBuilder.class.getSimpleName()); + throw new YangParseException(line, "Can not set ranges to " + NAME); } @Override @@ -175,8 +160,7 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public void setLengths(List lengths) { - throw new IllegalStateException("Can not set lengths to " - + UnionTypeBuilder.class.getSimpleName()); + throw new YangParseException(line, "Can not set lengths to " + NAME); } @Override @@ -186,8 +170,7 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public void setPatterns(List patterns) { - throw new IllegalStateException("Can not set patterns to " - + UnionTypeBuilder.class.getSimpleName()); + throw new YangParseException(line, "Can not set patterns to " + NAME); } @Override @@ -197,8 +180,8 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public void setFractionDigits(Integer fractionDigits) { - throw new IllegalStateException("Can not set fraction digits to " - + UnionTypeBuilder.class.getSimpleName()); + throw new YangParseException(line, "Can not set fraction digits to " + + NAME); } @Override @@ -213,8 +196,8 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public void setDefaultValue(Object defaultValue) { - throw new IllegalStateException("Can not set default value to " - + UnionTypeBuilder.class.getSimpleName()); + throw new YangParseException(line, "Can not set default value to " + + NAME); } @Override @@ -224,20 +207,7 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public void setUnits(String units) { - throw new IllegalStateException("Can not set units to " - + UnionTypeBuilder.class.getSimpleName()); - } - - public List getActualPath() { - return actualPath; - } - - public URI getNamespace() { - return namespace; - } - - public Date getRevision() { - return revision; + throw new YangParseException(line, "Can not set units to " + NAME); } @Override