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=33a51d6cd322d1201e0caf0452c0d1f79a97655b;hb=934490635d3a1c4ebd27703d33f382ae7d676a4f;hp=811b77566836b0f95ad9844562117bc239b569a1;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/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 811b775668..33a51d6cd3 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,16 +7,14 @@ */ 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; import org.opendaylight.controller.yang.model.api.SchemaPath; import org.opendaylight.controller.yang.model.api.Status; import org.opendaylight.controller.yang.model.api.TypeDefinition; +import org.opendaylight.controller.yang.model.api.UnknownSchemaNode; import org.opendaylight.controller.yang.model.api.type.LengthConstraint; import org.opendaylight.controller.yang.model.api.type.PatternConstraint; import org.opendaylight.controller.yang.model.api.type.RangeConstraint; @@ -31,36 +29,22 @@ import org.opendaylight.controller.yang.parser.util.YangParseException; * When build is called, types in builder form will be built and add to resolved * types. */ -public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements - TypeDefinitionBuilder { +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) { - this.line = line; + public UnionTypeBuilder(final int line) { + super(line, null); types = new ArrayList>(); typedefs = new ArrayList(); - instance = new UnionType(actualPath, namespace, revision, types); - - this.actualPath = actualPath; - this.namespace = namespace; - this.revision = revision; } - @Override - public int getLine() { - return line; - } public List> getTypes() { return types; @@ -86,26 +70,25 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements } @Override - public void setType(final TypeDefinitionBuilder tdb) { + public void setTypedef(final TypeDefinitionBuilder tdb) { typedefs.add(tdb); } @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 YangParseException(line, "Can not set path to " + NAME); + this.path = schemaPath; } @Override @@ -124,19 +107,28 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements } @Override - public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) { - throw new YangParseException(line, "Can not add unknown node to " - + NAME); + public boolean isAddedByUses() { + return false; } @Override - public QName getQName() { - return null; + public void setAddedByUses(final boolean addedByUses) { + throw new YangParseException(line, "Union type can not be added by uses."); + } + + @Override + public List getUnknownNodes() { + return Collections.emptyList(); + } + + @Override + public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) { + // not yet supported } @Override public SchemaPath getPath() { - return null; + return path; } @Override @@ -191,12 +183,11 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public void setFractionDigits(Integer fractionDigits) { - throw new YangParseException(line, "Can not set fraction digits to " - + NAME); + throw new YangParseException(line, "Can not set fraction digits to " + NAME); } @Override - public List getUnknownNodes() { + public List getUnknownNodeBuilders() { return Collections.emptyList(); } @@ -207,8 +198,7 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public void setDefaultValue(Object defaultValue) { - throw new YangParseException(line, "Can not set default value to " - + NAME); + throw new YangParseException(line, "Can not set default value to " + NAME); } @Override @@ -221,22 +211,9 @@ public class UnionTypeBuilder extends AbstractTypeAwareBuilder implements throw new YangParseException(line, "Can not set units to " + NAME); } - public List getActualPath() { - return actualPath; - } - - public URI getNamespace() { - return namespace; - } - - public Date getRevision() { - return revision; - } - @Override public String toString() { - final StringBuilder result = new StringBuilder( - UnionTypeBuilder.class.getSimpleName() + "["); + final StringBuilder result = new StringBuilder(UnionTypeBuilder.class.getSimpleName() + "["); result.append(", types=" + types); result.append(", typedefs=" + typedefs); result.append("]");