summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/interface-java/src/main
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-08-11 05:14:38 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-08-11 05:14:38 +0000
commit9ddddc3a89771fccd40bd6a7d4e5a3357dae10ab (patch)
tree078a26d3f9f4c4fc0e62759bfc57bd50bac46163 /java/sca/modules/interface-java/src/main
parentda54af6fa3cbdc88a5c07451697e071710a500ad (diff)
Remove hashCode and equals methods in base OperationImpl and InterfaceImpl to improve performance
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@802989 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/interface-java/src/main')
-rw-r--r--java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java50
1 files changed, 36 insertions, 14 deletions
diff --git a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java
index 294127910f..9f0071410e 100644
--- a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java
+++ b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceImpl.java
@@ -69,6 +69,9 @@ public class JavaInterfaceImpl extends InterfaceImpl implements JavaInterface {
public void setJavaClass(Class<?> javaClass) {
this.javaClass = javaClass;
+ if (javaClass != null) {
+ this.className = javaClass.getName();
+ }
}
public Class<?> getCallbackClass() {
@@ -85,28 +88,47 @@ public class JavaInterfaceImpl extends InterfaceImpl implements JavaInterface {
}
@Override
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+
+ @Override
public int hashCode() {
- return String.valueOf(getName()).hashCode();
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((className == null) ? 0 : className.hashCode());
+ return result;
}
-
+
@Override
public boolean equals(Object obj) {
- if (obj == this) {
+ if (this == obj)
return true;
- } else if (obj instanceof JavaInterface) {
- if (getName() != null) {
- return getName().equals(((JavaInterface)obj).getName());
- } else {
- return ((JavaInterface)obj).getName() == null;
- }
- } else {
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
return false;
+ JavaInterfaceImpl other = (JavaInterfaceImpl)obj;
+ if (isUnresolved() || other.isUnresolved()) {
+ if (className == null) {
+ if (other.className != null)
+ return false;
+ } else if (!className.equals(other.className))
+ return false;
+ } else {
+ if (javaClass == null) {
+ if (other.javaClass != null)
+ return false;
+ } else if (!javaClass.equals(other.javaClass))
+ return false;
+ if (callbackClass == null) {
+ if (other.callbackClass != null)
+ return false;
+ } else if (!callbackClass.equals(other.callbackClass))
+ return false;
}
- }
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
+ return true;
}
}