BUG-865: deprecate pre-Beryllium parser elements
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / IdentityrefTypeBuilder.java
index 617368f9c73e1aca480865c1a85cad16ffebd04c..464e57abf9302be70ee0ea2778e2970cb4ff0481 100644 (file)
@@ -7,56 +7,59 @@
  */
 package org.opendaylight.yangtools.yang.parser.builder.impl;
 
+import com.google.common.base.Preconditions;
 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.YangNode;
 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.IdentityrefType;
-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;
 
 /**
  * Builder for YANG identityref type.
+ *
+ * @deprecated Pre-Beryllium implementation, scheduled for removal.
  */
+@Deprecated
 public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder implements TypeDefinitionBuilder {
     private static final String NAME = "identityref";
 
     private final String baseString;
-    private final SchemaPath schemaPath;
+    private SchemaPath schemaPath;
     private IdentitySchemaNodeBuilder baseIdentity;
 
     public IdentityrefTypeBuilder(final String moduleName, final int line, final String baseString,
             final SchemaPath schemaPath) {
         super(moduleName, line, BaseTypes.constructQName(NAME));
         this.baseString = baseString;
-        this.schemaPath = schemaPath;
+        this.schemaPath = Preconditions.checkNotNull(schemaPath, "Schema Path must not be null");
+
     }
 
     @Override
-    public void setQName(QName qname) {
+    public void setQName(final QName qname) {
         this.qname = qname;
     }
 
     @Override
-    public IdentityrefType build(YangNode parent) {
-        return new IdentityrefType(baseIdentity.build(parent), schemaPath);
+    public IdentityrefType build() {
+        return IdentityrefType.create(schemaPath, baseIdentity.build());
     }
 
     public String getBaseString() {
         return baseString;
     }
 
-    public void setBaseIdentity(IdentitySchemaNodeBuilder baseIdentity) {
+    public void setBaseIdentity(final IdentitySchemaNodeBuilder baseIdentity) {
         this.baseIdentity = baseIdentity;
     }
 
@@ -72,32 +75,27 @@ public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder imple
 
     @Override
     public void setType(final TypeDefinition<?> type) {
-        throw new YangParseException(moduleName, line, "Can not set type to " + NAME);
+        throw new YangParseException(getModuleName(), getLine(), "Can not set type to " + NAME);
     }
 
     @Override
     public void setTypedef(final TypeDefinitionBuilder tdb) {
-        throw new YangParseException(moduleName, line, "Can not set type to " + NAME);
-    }
-
-    @Override
-    public void setPath(final SchemaPath schemaPath) {
-        throw new YangParseException(moduleName, line, "Can not set path to " + NAME);
+        throw new YangParseException(getModuleName(), getLine(), "Can not set type to " + NAME);
     }
 
     @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
@@ -107,22 +105,17 @@ public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder imple
 
     @Override
     public void setAddedByUses(final boolean addedByUses) {
-        throw new YangParseException(moduleName, line, "Identityref type can not be added by uses.");
-    }
-
-    @Override
-    public List<UnknownSchemaNode> getUnknownNodes() {
-        return Collections.emptyList();
+        throw new YangParseException(getModuleName(), getLine(), "Identityref type can not be added by uses.");
     }
 
     @Override
     public void addUnknownNodeBuilder(final UnknownSchemaNodeBuilder unknownNode) {
-        throw new YangParseException(moduleName, line, "Can not add unknown node to " + NAME);
+        throw new YangParseException(getModuleName(), getLine(), "Can not add unknown node to " + NAME);
     }
 
     @Override
     public QName getQName() {
-        return null;
+        return qname;
     }
 
     @Override
@@ -130,6 +123,11 @@ public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder imple
         return schemaPath;
     }
 
+    @Override
+    public void setPath(final SchemaPath path) {
+        this.schemaPath = path;
+    }
+
     @Override
     public String getDescription() {
         return null;
@@ -151,8 +149,8 @@ public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder imple
     }
 
     @Override
-    public void setRanges(List<RangeConstraint> ranges) {
-        throw new YangParseException(moduleName, line, "Can not set ranges to " + NAME);
+    public void setRanges(final List<RangeConstraint> ranges) {
+        throw new YangParseException(getModuleName(), getLine(), "Can not set ranges to " + NAME);
     }
 
     @Override
@@ -161,8 +159,8 @@ public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder imple
     }
 
     @Override
-    public void setLengths(List<LengthConstraint> lengths) {
-        throw new YangParseException(moduleName, line, "Can not set lengths to " + NAME);
+    public void setLengths(final List<LengthConstraint> lengths) {
+        throw new YangParseException(getModuleName(), getLine(), "Can not set lengths to " + NAME);
     }
 
     @Override
@@ -171,8 +169,8 @@ public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder imple
     }
 
     @Override
-    public void setPatterns(List<PatternConstraint> patterns) {
-        throw new YangParseException(moduleName, line, "Can not set patterns to " + NAME);
+    public void setPatterns(final List<PatternConstraint> patterns) {
+        throw new YangParseException(getModuleName(), getLine(), "Can not set patterns to " + NAME);
     }
 
     @Override
@@ -181,12 +179,12 @@ public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder imple
     }
 
     @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<UnknownSchemaNodeBuilder> getUnknownNodeBuilders() {
+    public List<UnknownSchemaNodeBuilder> getUnknownNodes() {
         return Collections.emptyList();
     }
 
@@ -196,23 +194,24 @@ public final class IdentityrefTypeBuilder extends AbstractTypeAwareBuilder imple
     }
 
     @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
     public String getUnits() {
         return null;
     }
-
     @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(IdentityrefTypeBuilder.class.getSimpleName());
+        result.append("[qName=");
+        result.append(qname);
         result.append("[");
         result.append(", base=");
         result.append(baseIdentity);