BUG-869: added proper handling of nullable parameter
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / UnknownType.java
index 748507f38a4953ad58c525688eb7c33c57abe5a9..f32c16f8bf9b7433d001d0c6c1b84ff0ac49cb7b 100644 (file)
@@ -19,13 +19,20 @@ import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.UnknownTypeDefinition;
 
+/**
+ * Utility implementation of unknown type definition.
+ *
+ * Unknown type definition is derived type, for
+ * which base built-in type is not yet known. This types
+ * are possible during parsing and resolving of YANG model
+ * without all requisites already processed.
+ */
 public final class UnknownType implements UnknownTypeDefinition {
 
     private final QName name;
     private final SchemaPath path;
     private final String description;
     private final String reference;
-    private final boolean referenceOnly;
     private final List<LengthConstraint> lengthStatements;
     private final List<PatternConstraint> patterns;
     private final List<RangeConstraint> rangeStatements;
@@ -54,26 +61,25 @@ public final class UnknownType implements UnknownTypeDefinition {
         private Status status = Status.CURRENT;
         private String units = "";
         private Object defaultValue = null;
-        private boolean referenceOnly = false;
 
         public Builder(final QName name, final String description, final String reference) {
             this.name = name;
-            this.path = BaseTypes.schemaPath(name);
+            this.path = SchemaPath.create(true, name);
             this.description = description;
             this.reference = reference;
         }
 
         public Builder(final QName name) {
             this.name = name;
-            this.path = BaseTypes.schemaPath(name);
+            this.path = SchemaPath.create(true, name);
         }
 
-        public Builder description(String description) {
+        public Builder description(final String description) {
             this.description = description;
             return this;
         }
 
-        public Builder reference(String reference) {
+        public Builder reference(final String reference) {
             this.reference = reference;
             return this;
         }
@@ -108,12 +114,12 @@ public final class UnknownType implements UnknownTypeDefinition {
             return this;
         }
 
-        public Builder status(Status status) {
+        public Builder status(final Status status) {
             this.status = status;
             return this;
         }
 
-        public Builder units(String units) {
+        public Builder units(final String units) {
             this.units = units;
             return this;
         }
@@ -126,15 +132,9 @@ public final class UnknownType implements UnknownTypeDefinition {
         public UnknownTypeDefinition build() {
             return new UnknownType(this);
         }
-
-        public void setReferenceOnly(boolean b) {
-            this.referenceOnly = b;
-
-        }
     }
 
-    private UnknownType(Builder builder) {
-        this.referenceOnly = builder.referenceOnly;
+    private UnknownType(final Builder builder) {
         this.name = builder.name;
         this.path = builder.path;
         this.description = builder.description;
@@ -152,7 +152,7 @@ public final class UnknownType implements UnknownTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see
      * org.opendaylight.yangtools.yang.model.api.TypeDefinition#getBaseType()
      */
@@ -163,7 +163,7 @@ public final class UnknownType implements UnknownTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.yangtools.yang.model.api.TypeDefinition#getUnits()
      */
     @Override
@@ -173,7 +173,7 @@ public final class UnknownType implements UnknownTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see
      * org.opendaylight.yangtools.yang.model.api.TypeDefinition#getDefaultValue
      * ()
@@ -185,7 +185,7 @@ public final class UnknownType implements UnknownTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getQName()
      */
     @Override
@@ -195,7 +195,7 @@ public final class UnknownType implements UnknownTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getPath()
      */
     @Override
@@ -205,7 +205,7 @@ public final class UnknownType implements UnknownTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see
      * org.opendaylight.yangtools.yang.model.api.SchemaNode#getDescription()
      */
@@ -216,7 +216,7 @@ public final class UnknownType implements UnknownTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getReference()
      */
     @Override
@@ -226,7 +226,7 @@ public final class UnknownType implements UnknownTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.yangtools.yang.model.api.SchemaNode#getStatus()
      */
     @Override
@@ -236,7 +236,7 @@ public final class UnknownType implements UnknownTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see
      * org.opendaylight.yangtools.yang.model.api.SchemaNode#getExtensionSchemaNodes
      * ()
@@ -248,58 +248,42 @@ public final class UnknownType implements UnknownTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.yangtools.yang.model.api.type.UnknownTypeDefinition
      * #getRangeStatements()
      */
     @Override
-    public List<RangeConstraint> getRangeStatements() {
+    public List<RangeConstraint> getRangeConstraints() {
         return rangeStatements;
     }
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.yangtools.yang.model.api.type.UnknownTypeDefinition
      * #getLengthStatements()
      */
     @Override
-    public List<LengthConstraint> getLengthStatements() {
+    public List<LengthConstraint> getLengthConstraints() {
         return lengthStatements;
     }
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.yangtools.yang.model.api.type.UnknownTypeDefinition
      * #getPatterns()
      */
     @Override
-    public List<PatternConstraint> getPatterns() {
+    public List<PatternConstraint> getPatternConstraints() {
         return patterns;
     }
 
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.opendaylight.yangtools.yang.model.api.type.UnknownTypeDefinition
-     * #getLengthConstraint()
-     */
-    @Override
-    public LengthConstraint getLengthConstraint() {
-        return lengthConstraint;
-    }
-
     @Override
     public Integer getFractionDigits() {
         return fractionDigits;
     }
 
-    @Override
-    public boolean isReferenceOnly() {
-        return referenceOnly;
-    }
-
     @Override
     public int hashCode() {
         final int prime = 31;
@@ -320,7 +304,7 @@ public final class UnknownType implements UnknownTypeDefinition {
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(final Object obj) {
         if (this == obj) {
             return true;
         }