Use Objects.equals() in yang-model-util
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / ExtendedType.java
index 3000c78e9fc98befdcf1b033cda1c3dbf09ea00f..875f463a8f0826f5e29f93cb43b6175fb22b43d3 100644 (file)
@@ -7,11 +7,10 @@
  */
 package org.opendaylight.yangtools.yang.model.util;
 
-import java.net.URI;
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
 import java.util.Collections;
-import java.util.Date;
 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;
@@ -20,9 +19,6 @@ 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 com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
 /**
  * Extended Type represents YANG type derived from other type.
  *
@@ -41,27 +37,28 @@ public class ExtendedType implements TypeDefinition<TypeDefinition<?>> {
     private final String reference;
     private final List<UnknownSchemaNode> unknownSchemaNodes;
 
-    private List<RangeConstraint> ranges = Collections.emptyList();
-    private List<LengthConstraint> lengths = Collections.emptyList();
-    private List<PatternConstraint> patterns = Collections.emptyList();
-    private Integer fractionDigits = null;
-
     private final Status status;
     private final String units;
     private final Object defaultValue;
     private final boolean addedByUses;
 
+    private List<RangeConstraint> ranges = Collections.emptyList();
+    private List<LengthConstraint> lengths = Collections.emptyList();
+    private List<PatternConstraint> patterns = Collections.emptyList();
+    private Integer fractionDigits = null;
+
     /**
-    *
-    * Creates Builder for extended / derived type.
-    *
-    * @param typeName QName of derived type
-    * @param baseType Base type of derived type
-    * @param description Description of type
-    * @param reference Reference of Type
-    * @param path Schema path to type definition.
-    */
-    public static final Builder builder(final QName typeName,final TypeDefinition<?> baseType,final Optional<String> description,final Optional<String> reference,final SchemaPath path) {
+     *
+     * Creates Builder for extended / derived type.
+     *
+     * @param typeName QName of derived type
+     * @param baseType Base type of derived type
+     * @param description Description of type
+     * @param reference Reference of Type
+     * @param path Schema path to type definition.
+     */
+    public static final Builder builder(final QName typeName, final TypeDefinition<?> baseType,
+            final Optional<String> description, final Optional<String> reference, final SchemaPath path) {
         return new Builder(typeName, baseType, description.or(""), reference.or(""), path);
     }
 
@@ -86,27 +83,6 @@ public class ExtendedType implements TypeDefinition<TypeDefinition<?>> {
         private Integer fractionDigits = null;
 
         /**
-         *
-         * @param actualPath
-         * @param namespace
-         * @param revision
-         * @param typeName
-         * @param baseType
-         * @param description
-         * @param reference
-         *
-         * @deprecated Use {@link ExtendedType#builder(QName, TypeDefinition, Optional, Optional, SchemaPath)} instead.
-         */
-        @Deprecated
-        public Builder(final List<String> actualPath, final URI namespace,
-                final Date revision, final QName typeName,
-                final TypeDefinition<?> baseType, final String description,
-                final String reference) {
-            this(typeName,baseType,description,reference,BaseTypes.schemaPath(actualPath, namespace, revision));
-        }
-
-        /**
-         *
          * Creates Builder for extended / derived type.
          *
          * @param typeName QName of derived type
@@ -114,11 +90,8 @@ public class ExtendedType implements TypeDefinition<TypeDefinition<?>> {
          * @param description Description of type
          * @param reference Reference of Type
          * @param path Schema path to type definition.
-         *
-         * @deprecated Use {@link ExtendedType#builder(QName, TypeDefinition, Optional, Optional, SchemaPath)} instead.
          */
-        @Deprecated
-        public Builder(final QName typeName, final TypeDefinition<?> baseType,
+        protected Builder(final QName typeName, final TypeDefinition<?> baseType,
                 final String description, final String reference,
                 final SchemaPath path) {
             this.typeName = Preconditions.checkNotNull(typeName, "type name must not be null.");
@@ -150,7 +123,11 @@ public class ExtendedType implements TypeDefinition<TypeDefinition<?>> {
 
         public Builder unknownSchemaNodes(
                 final List<UnknownSchemaNode> unknownSchemaNodes) {
-            this.unknownSchemaNodes = unknownSchemaNodes;
+            if (unknownSchemaNodes.isEmpty()) {
+                this.unknownSchemaNodes = Collections.emptyList();
+            } else {
+                this.unknownSchemaNodes = unknownSchemaNodes;
+            }
             return this;
         }
 
@@ -265,8 +242,9 @@ public class ExtendedType implements TypeDefinition<TypeDefinition<?>> {
         if (path != null ? !path.equals(that.path) : that.path != null) {
             return false;
         }
-        if (typeName != null ? !typeName.equals(that.typeName) : that.typeName != null)
+        if (typeName != null ? !typeName.equals(that.typeName) : that.typeName != null) {
             return false;
+        }
 
         return true;
     }