BUG-2453 Remove custom hashcode/equals from Enum type 98/19798/3
authorMaros Marsalek <mmarsale@cisco.com>
Thu, 7 May 2015 12:12:17 +0000 (14:12 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Thu, 14 May 2015 06:58:42 +0000 (06:58 +0000)
Custom hashcode and equals made it impossible to match Enum types based on
packageName and name.

Change-Id: I0f5f326cba5073e08b6d2b1d5ff6d5c19f08bf68
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
code-generator/binding-generator-util/src/main/java/org/opendaylight/yangtools/binding/generator/util/generated/type/builder/EnumerationBuilderImpl.java
code-generator/binding-generator-util/src/test/java/org/opendaylight/yangtools/binding/generator/util/generated/type/builder/EnumerationBuilderImplTest.java

index cb7f50549e537e6a24f11e5407f35082b8f970ae..cec633ae04493ea69ec703c7fc5a3cd8de55c0b6 100644 (file)
@@ -89,54 +89,6 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
                 description, reference, moduleName, schemaPath);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see java.lang.Object#hashCode()
-     */
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((name == null) ? 0 : name.hashCode());
-        result = prime * result + ((packageName == null) ? 0 : packageName.hashCode());
-        return result;
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
-    @Override
-    public boolean equals(final Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (getClass() != obj.getClass()) {
-            return false;
-        }
-        EnumerationBuilderImpl other = (EnumerationBuilderImpl) obj;
-        if (name == null) {
-            if (other.name != null) {
-                return false;
-            }
-        } else if (!name.equals(other.name)) {
-            return false;
-        }
-        if (packageName == null) {
-            if (other.packageName != null) {
-                return false;
-            }
-        } else if (!packageName.equals(other.packageName)) {
-            return false;
-        }
-        return true;
-    }
-
     /*
      * (non-Javadoc)
      *
@@ -285,11 +237,9 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
 
     }
 
-    private static final class EnumerationImpl implements Enumeration {
+    private static final class EnumerationImpl extends AbstractBaseType implements Enumeration {
 
         private final Type definingType;
-        private final String packageName;
-        private final String name;
         private final String description;
         private final String reference;
         private final String moduleName;
@@ -300,11 +250,9 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
         public EnumerationImpl(final Type definingType, final List<AnnotationTypeBuilder> annotationBuilders,
                 final String packageName, final String name, final List<Pair> values, final String description,
                 final String reference, final String moduleName, final Iterable<QName> schemaPath) {
-            super();
+            super(packageName, name);
             this.definingType = definingType;
-            this.packageName = packageName;
             this.values = values;
-            this.name = name;
             this.description = description;
             this.moduleName = moduleName;
             this.schemaPath = schemaPath;
@@ -322,21 +270,6 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
             return definingType;
         }
 
-        @Override
-        public String getPackageName() {
-            return packageName;
-        }
-
-        @Override
-        public String getName() {
-            return name;
-        }
-
-        @Override
-        public String getFullyQualifiedName() {
-            return packageName + "." + name;
-        }
-
         @Override
         public List<Pair> getValues() {
             return values;
@@ -352,7 +285,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
             StringBuilder builder = new StringBuilder();
             builder.append("public enum");
             builder.append(" ");
-            builder.append(name);
+            builder.append(getName());
             builder.append(" {");
             builder.append("\n");
 
@@ -375,63 +308,6 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
             return builder.toString();
         }
 
-        /*
-         * (non-Javadoc)
-         *
-         * @see java.lang.Object#hashCode()
-         */
-        @Override
-        public int hashCode() {
-            final int prime = 31;
-            int result = 1;
-            result = prime * result + ((name == null) ? 0 : name.hashCode());
-            result = prime * result + ((packageName == null) ? 0 : packageName.hashCode());
-            result = prime * result + ((values == null) ? 0 : values.hashCode());
-
-            return result;
-        }
-
-        /*
-         * (non-Javadoc)
-         *
-         * @see java.lang.Object#equals(java.lang.Object)
-         */
-        @Override
-        public boolean equals(final Object obj) {
-            if (this == obj) {
-                return true;
-            }
-            if (obj == null) {
-                return false;
-            }
-            if (getClass() != obj.getClass()) {
-                return false;
-            }
-            EnumerationImpl other = (EnumerationImpl) obj;
-            if (name == null) {
-                if (other.name != null) {
-                    return false;
-                }
-            } else if (!name.equals(other.name)) {
-                return false;
-            }
-            if (packageName == null) {
-                if (other.packageName != null) {
-                    return false;
-                }
-            } else if (!packageName.equals(other.packageName)) {
-                return false;
-            }
-            if (values == null) {
-                if (other.values != null) {
-                    return false;
-                }
-            } else if (!values.equals(other.values)) {
-                return false;
-            }
-            return true;
-        }
-
         /*
          * (non-Javadoc)
          *
@@ -441,7 +317,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
         public String toString() {
             StringBuilder builder = new StringBuilder();
             builder.append("Enumeration [packageName=");
-            builder.append(packageName);
+            builder.append(getPackageName());
             if (definingType != null) {
                 builder.append(", definingType=");
                 builder.append(definingType.getPackageName());
@@ -451,7 +327,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
                 builder.append(", definingType= null");
             }
             builder.append(", name=");
-            builder.append(name);
+            builder.append(getName());
             builder.append(", values=");
             builder.append(values);
             builder.append("]");
index f866ad8e347b14e56b5694374f9203e649ed2850..eb5bd65f5184ae3e7cd229937db883601d5c0dc0 100644 (file)
@@ -119,7 +119,8 @@ public class EnumerationBuilderImplTest {
         EnumerationBuilderImpl enumerationBuilderSame1 = new EnumerationBuilderImpl(packageName, name);
         Enumeration enumerationSame1 = enumerationBuilderSame1.toInstance(enumerationBuilderSame1);
         enumerationBuilderSame1.addValue(valueName, 14, valueDescription);
-        assertNotEquals(enumeration, enumerationSame1);
+        // Enums are equal thanks to same package name and local name
+        assertEquals(enumeration, enumerationSame1);
     }
 
     @Test