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=f46ebeb970b079c56d8ebed201f605ab0c1b8ef9;hb=79682669e4e54af1fa2f98aafbdebba55ff184f9;hp=49f39d1dfc10f80d2ab0392c0031e08de10368eb;hpb=9150be094b25f000a71898b6976a1a9359cfdf50;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 49f39d1dfc..f46ebeb970 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 @@ -11,17 +11,18 @@ 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.SchemaPath; import org.opendaylight.yangtools.yang.model.api.Status; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; -import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; 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; /** @@ -31,15 +32,14 @@ import org.opendaylight.yangtools.yang.parser.util.YangParseException; * types. */ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements TypeDefinitionBuilder { - private final static String NAME = "union"; + 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 SchemaPath path; - public UnionTypeBuilder(final String moduleName, final int line) { super(moduleName, line, BaseTypes.constructQName(NAME)); types = new ArrayList>(); @@ -50,13 +50,18 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements return types; } + @Override + public void setQName(final QName qname) { + throw new UnsupportedOperationException("Can not set qname to union type"); + } + @Override public TypeDefinition getType() { return null; } public List getTypedefs() { - return Collections.unmodifiableList(typedefs); + return typedefs; } @Override @@ -77,33 +82,28 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public UnionType build() { if (!isBuilt) { - instance = new UnionType(path, types); for (TypeDefinitionBuilder tdb : typedefs) { types.add(tdb.build()); } + instance = UnionType.create(types); isBuilt = true; } return instance; } - @Override - public void setPath(final SchemaPath schemaPath) { - this.path = schemaPath; - } - @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 @@ -113,12 +113,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."); - } - - @Override - public List getUnknownNodes() { - return Collections.emptyList(); + throw new YangParseException(getModuleName(), getLine(), "Union type can not be added by uses."); } @Override @@ -128,7 +123,12 @@ public final class UnionTypeBuilder extends AbstractTypeAwareBuilder implements @Override public SchemaPath getPath() { - return path; + return SchemaPath.create(true, QNAME); + } + + @Override + public void setPath(final SchemaPath path) { + throw new YangParseException(getModuleName(), getLine(), "Can not set path to " + NAME); } @Override @@ -152,8 +152,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 @@ -162,8 +162,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 @@ -172,8 +172,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 @@ -182,12 +182,12 @@ 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 - public List getUnknownNodeBuilders() { + public List getUnknownNodes() { return Collections.emptyList(); } @@ -197,8 +197,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 @@ -207,15 +207,18 @@ 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 public String toString() { - final StringBuilder result = new StringBuilder(UnionTypeBuilder.class.getSimpleName() + "["); - result.append(", types=" + types); - result.append(", typedefs=" + typedefs); + final StringBuilder result = new StringBuilder(UnionTypeBuilder.class.getSimpleName()); + result.append("["); + result.append("types="); + result.append(types); + result.append(", typedefs="); + result.append(typedefs); result.append("]"); return result.toString(); }