Author: rfeng
Date: Wed Mar 17 01:40:44 2010
New Revision: 924089

URL: http://svn.apache.org/viewvc?rev=924089&view=rev
Log:
Fix the equals and hashCode to avoid componentType conflicts

Modified:
    
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java
    
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ImplementationImpl.java
    
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/OSGiImplementationImpl.java
    
tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
    
tuscany/sca-java-2.x/trunk/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java
    
tuscany/sca-java-2.x/trunk/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/impl/WidgetImplementationImpl.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java?rev=924089&r1=924088&r2=924089&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentTypeImpl.java
 Wed Mar 17 01:40:44 2010
@@ -128,27 +128,6 @@ public class ComponentTypeImpl extends E
         return service;
     }  
 
-    @Override
-    public int hashCode() {
-        return String.valueOf(getURI()).hashCode();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (obj == this) {
-            return true;
-        } else {
-            if (obj instanceof ComponentType) {
-                if (getURI() != null) {
-                    return getURI().equals(((ComponentType)obj).getURI());
-                } else {
-                    return ((ComponentType)obj).getURI() == null;
-                }
-            } else {
-                return false;
-            }
-        }
-    }
 
     public List<Intent> getRequiredIntents() {
         return requiredIntents;
@@ -164,4 +143,34 @@ public class ComponentTypeImpl extends E
 
     public void setExtensionType(ExtensionType type) {
     }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((uri == null) ? 0 : uri.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        ComponentTypeImpl other = (ComponentTypeImpl)obj;
+        if (uri == null) {
+            if (other.uri != null) {
+                return false;
+            }
+        } else if (!uri.equals(other.uri)) {
+            return false;
+        }
+        return true;
+    }
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ImplementationImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ImplementationImpl.java?rev=924089&r1=924088&r2=924089&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ImplementationImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ImplementationImpl.java
 Wed Mar 17 01:40:44 2010
@@ -73,4 +73,16 @@ public abstract class ImplementationImpl
         }
         return impl;
     }
+
+    // Override the ComponentTypeImpl.hashCode()
+    @Override
+    public int hashCode() {
+        return System.identityHashCode(this);
+    }
+
+    // Override the ComponentTypeImpl.equals()
+    @Override
+    public boolean equals(Object obj) {
+        return this == obj;
+    }
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/OSGiImplementationImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/OSGiImplementationImpl.java?rev=924089&r1=924088&r2=924089&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/OSGiImplementationImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/implementation-osgi/src/main/java/org/apache/tuscany/sca/implementation/osgi/impl/OSGiImplementationImpl.java
 Wed Mar 17 01:40:44 2010
@@ -75,27 +75,6 @@ public class OSGiImplementationImpl exte
         }
     }
 
-    private boolean areEqual(Object obj1, Object obj2) {
-        if (obj1 == obj2)
-            return true;
-        if (obj1 == null || obj2 == null)
-            return false;
-        return obj1.equals(obj2);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-
-        if (!(obj instanceof OSGiImplementationImpl))
-            return super.equals(obj);
-        OSGiImplementationImpl impl = (OSGiImplementationImpl)obj;
-        if (!areEqual(bundleSymbolicName, impl.bundleSymbolicName))
-            return false;
-        if (!areEqual(bundleVersion, impl.bundleVersion))
-            return false;
-        return super.equals(obj);
-    }
-
     public void setBundleSymbolicName(String bundleSymbolicName) {
         this.bundleSymbolicName = bundleSymbolicName;
     }
@@ -104,4 +83,42 @@ public class OSGiImplementationImpl exte
         this.bundleVersion = bundleVersion;
     }
 
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = super.hashCode();
+        result = prime * result + ((bundleSymbolicName == null) ? 0 : 
bundleSymbolicName.hashCode());
+        result = prime * result + ((bundleVersion == null) ? 0 : 
bundleVersion.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (!super.equals(obj)) {
+            return false;
+        }
+        if (!(obj instanceof OSGiImplementationImpl)) {
+            return false;
+        }
+        OSGiImplementationImpl other = (OSGiImplementationImpl)obj;
+        if (bundleSymbolicName == null) {
+            if (other.bundleSymbolicName != null) {
+                return false;
+            }
+        } else if (!bundleSymbolicName.equals(other.bundleSymbolicName)) {
+            return false;
+        }
+        if (bundleVersion == null) {
+            if (other.bundleVersion != null) {
+                return false;
+            }
+        } else if (!bundleVersion.equals(other.bundleVersion)) {
+            return false;
+        }
+        return true;
+    }
+
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java?rev=924089&r1=924088&r2=924089&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
 Wed Mar 17 01:40:44 2010
@@ -225,4 +225,34 @@ public class SpringImplementation extend
     public void setClassLoader(ClassLoader classLoader) {
        this.classLoader = classLoader;
     }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = super.hashCode();
+        result = prime * result + ((location == null) ? 0 : 
location.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (!super.equals(obj)) {
+            return false;
+        }
+        if (!(obj instanceof SpringImplementation)) {
+            return false;
+        }
+        SpringImplementation other = (SpringImplementation)obj;
+        if (location == null) {
+            if (other.location != null) {
+                return false;
+            }
+        } else if (!location.equals(other.location)) {
+            return false;
+        }
+        return true;
+    }
 }
\ No newline at end of file

Modified: 
tuscany/sca-java-2.x/trunk/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java?rev=924089&r1=924088&r2=924089&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/implementation-web/src/main/java/org/apache/tuscany/sca/implementation/web/impl/WebImplementationImpl.java
 Wed Mar 17 01:40:44 2010
@@ -38,8 +38,6 @@ class WebImplementationImpl extends Impl
 
     private List<Property> properties = new ArrayList<Property>();
     private List<Reference> references = new ArrayList<Reference>();
-    private String uri;
-    private boolean unresolved;
 
     private String webURI;
     private boolean jsClient = true;
@@ -64,22 +62,6 @@ class WebImplementationImpl extends Impl
         return references;
     }
 
-    public String getURI() {
-        return uri;
-    }
-
-    public void setURI(String uri) {
-        this.uri = uri;
-    }
-
-    public boolean isUnresolved() {
-        return unresolved;
-    }
-
-    public void setUnresolved(boolean unresolved) {
-        this.unresolved = unresolved;
-    }
-
     public String getWebURI() {
         return webURI;
     }
@@ -141,4 +123,34 @@ class WebImplementationImpl extends Impl
         this.jsClient = jsClient;
     }
 
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = super.hashCode();
+        result = prime * result + ((webURI == null) ? 0 : webURI.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (!super.equals(obj)) {
+            return false;
+        }
+        if (!(obj instanceof WebImplementationImpl)) {
+            return false;
+        }
+        WebImplementationImpl other = (WebImplementationImpl)obj;
+        if (webURI == null) {
+            if (other.webURI != null) {
+                return false;
+            }
+        } else if (!webURI.equals(other.webURI)) {
+            return false;
+        }
+        return true;
+    }
+
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/impl/WidgetImplementationImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/impl/WidgetImplementationImpl.java?rev=924089&r1=924088&r2=924089&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/impl/WidgetImplementationImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/impl/WidgetImplementationImpl.java
 Wed Mar 17 01:40:44 2010
@@ -80,16 +80,6 @@ public class WidgetImplementationImpl ex
         return TYPE;
     }
     
-    @Override
-    public String getURI() {
-        return location;
-    }
-
-    @Override
-    public void setURI(String uri) {
-        this.location = uri;
-    }
-    
     public String getLocation() {
         return location;
     }
@@ -111,4 +101,34 @@ public class WidgetImplementationImpl ex
     public String toString() {
         return "Widget : " + getLocation(); 
     }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = super.hashCode();
+        result = prime * result + ((location == null) ? 0 : 
location.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (!super.equals(obj)) {
+            return false;
+        }
+        if (!(obj instanceof WidgetImplementationImpl)) {
+            return false;
+        }
+        WidgetImplementationImpl other = (WidgetImplementationImpl)obj;
+        if (location == null) {
+            if (other.location != null) {
+                return false;
+            }
+        } else if (!location.equals(other.location)) {
+            return false;
+        }
+        return true;
+    }
 }


Reply via email to