X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fbuilder%2Fimpl%2FUnionTypeBuilder.java;h=cfb8cc9ede9990f4ccbdb4264a8ac87815d575dd;hb=42abb28b99a02f9580f4676ce5c315628e5bcd24;hp=1edf0b8543551bedc4479bc359611fa762a0439b;hpb=e9aa787d49d8592310d0c6e38cb8d611e96c679b;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UnionTypeBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UnionTypeBuilder.java index 1edf0b8543..cfb8cc9ede 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UnionTypeBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/UnionTypeBuilder.java @@ -7,15 +7,21 @@ */ package org.opendaylight.yangtools.yang.parser.builder.impl; -import java.util.*; - +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.*; -import org.opendaylight.yangtools.yang.model.api.type.*; +import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.opendaylight.yangtools.yang.model.api.Status; +import org.opendaylight.yangtools.yang.model.api.TypeDefinition; +import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint; +import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint; +import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint; import org.opendaylight.yangtools.yang.model.util.BaseTypes; import org.opendaylight.yangtools.yang.model.util.UnionType; -import org.opendaylight.yangtools.yang.parser.builder.api.AbstractTypeAwareBuilder; import org.opendaylight.yangtools.yang.parser.builder.api.TypeDefinitionBuilder; +import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder; +import org.opendaylight.yangtools.yang.parser.builder.util.AbstractTypeAwareBuilder; import org.opendaylight.yangtools.yang.parser.util.YangParseException; /** @@ -23,20 +29,34 @@ import org.opendaylight.yangtools.yang.parser.util.YangParseException; * TypeDefinition object (resolved type) or in form of TypeDefinitionBuilder. * When build is called, types in builder form will be built and add to resolved * types. + * + * @deprecated Pre-Beryllium implementation, scheduled for removal. */ +@Deprecated public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements TypeDefinitionBuilder { + private static final SchemaPath SCHEMA_PATH = SchemaPath.create(true, BaseTypes.UNION_QNAME); private static final String NAME = "union"; - private static final QName QNAME = BaseTypes.constructQName(NAME); private final List> types; private final List typedefs; private UnionType instance; private boolean isBuilt; + private final List baseTypesQNames = new ArrayList<>(); + public UnionTypeBuilder(final String moduleName, final int line) { - super(moduleName, line, BaseTypes.constructQName(NAME)); - types = new ArrayList>(); - typedefs = new ArrayList(); + super(moduleName, line, BaseTypes.UNION_QNAME); + types = new ArrayList<>(); + typedefs = new ArrayList<>(); + } + + public List getBaseTypeQNames() { + return baseTypesQNames; + } + + @Override + public void setTypeQName(final QName qname) { + baseTypesQNames.add(qname); } public List> getTypes() { @@ -44,7 +64,7 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements } @Override - public void setQName(QName qname) { + public void setQName(final QName qname) { throw new UnsupportedOperationException("Can not set qname to union type"); } @@ -75,10 +95,10 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public UnionType build() { if (!isBuilt) { - instance = new UnionType(types); for (TypeDefinitionBuilder tdb : typedefs) { types.add(tdb.build()); } + instance = UnionType.create(types); isBuilt = true; } return instance; @@ -86,17 +106,17 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public void setDescription(final String description) { - throw new YangParseException(moduleName, line, "Can not set description to " + NAME); + throw new YangParseException(getModuleName(), getLine(), "Can not set description to " + NAME); } @Override public void setReference(final String reference) { - throw new YangParseException(moduleName, line, "Can not set reference to " + NAME); + throw new YangParseException(getModuleName(), getLine(), "Can not set reference to " + NAME); } @Override public void setStatus(final Status status) { - throw new YangParseException(moduleName, line, "Can not set status to " + NAME); + throw new YangParseException(getModuleName(), getLine(), "Can not set status to " + NAME); } @Override @@ -106,7 +126,7 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public void setAddedByUses(final boolean addedByUses) { - throw new YangParseException(moduleName, line, "Union type can not be added by uses."); + throw new YangParseException(getModuleName(), getLine(), "Union type can not be added by uses."); } @Override @@ -116,12 +136,12 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public SchemaPath getPath() { - return BaseTypes.schemaPath(QNAME); + return SCHEMA_PATH; } @Override - public void setPath(SchemaPath path) { - throw new YangParseException(moduleName, line, "Can not set path to " + NAME); + public void setPath(final SchemaPath path) { + throw new YangParseException(getModuleName(), getLine(), "Can not set path to " + NAME); } @Override @@ -145,8 +165,8 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements } @Override - public void setRanges(List ranges) { - throw new YangParseException(moduleName, line, "Can not set ranges to " + NAME); + public void setRanges(final List ranges) { + throw new YangParseException(getModuleName(), getLine(), "Can not set ranges to " + NAME); } @Override @@ -155,8 +175,8 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements } @Override - public void setLengths(List lengths) { - throw new YangParseException(moduleName, line, "Can not set lengths to " + NAME); + public void setLengths(final List lengths) { + throw new YangParseException(getModuleName(), getLine(), "Can not set lengths to " + NAME); } @Override @@ -165,8 +185,8 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements } @Override - public void setPatterns(List patterns) { - throw new YangParseException(moduleName, line, "Can not set patterns to " + NAME); + public void setPatterns(final List patterns) { + throw new YangParseException(getModuleName(), getLine(), "Can not set patterns to " + NAME); } @Override @@ -175,8 +195,8 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements } @Override - public void setFractionDigits(Integer fractionDigits) { - throw new YangParseException(moduleName, line, "Can not set fraction digits to " + NAME); + public void setFractionDigits(final Integer fractionDigits) { + throw new YangParseException(getModuleName(), getLine(), "Can not set fraction digits to " + NAME); } @Override @@ -190,8 +210,8 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements } @Override - public void setDefaultValue(Object defaultValue) { - throw new YangParseException(moduleName, line, "Can not set default value to " + NAME); + public void setDefaultValue(final Object defaultValue) { + throw new YangParseException(getModuleName(), getLine(), "Can not set default value to " + NAME); } @Override @@ -200,8 +220,8 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements } @Override - public void setUnits(String units) { - throw new YangParseException(moduleName, line, "Can not set units to " + NAME); + public void setUnits(final String units) { + throw new YangParseException(getModuleName(), getLine(), "Can not set units to " + NAME); } @Override