[maven-release-plugin] copy for tag wamblee-utils-0.2
[utils] / system / general / src / main / java / org / wamblee / system / core / DefaultRequiredInterface.java
index 7fc965308d4603e2386325c86c7f40c07e763c0d..4e0db74be375620f8f60dd5b383a2e1a5017de32 100644 (file)
@@ -17,6 +17,8 @@ package org.wamblee.system.core;
 
 import java.util.Arrays;
 
+import org.wamblee.reflection.ReflectionUtils;
+
 public class DefaultRequiredInterface implements RequiredInterface {
 
        private String _name;
@@ -74,6 +76,8 @@ public class DefaultRequiredInterface implements RequiredInterface {
        private boolean serviceProvided(Class aRequired, Class[] aProvided) { 
                for (Class provided: aProvided) {
                        try {
+                               provided = ReflectionUtils.wrapIfNeeded(provided);
+                               aRequired = ReflectionUtils.wrapIfNeeded(aRequired);
                                provided.asSubclass(aRequired);
                                return true; 
                        } catch (ClassCastException e) {
@@ -96,7 +100,13 @@ public class DefaultRequiredInterface implements RequiredInterface {
        }
        
        @Override
-       public boolean equals(Object obj) {
+       public boolean equals(Object obj) { 
+           return this == obj; 
+       }
+       
+       @Override
+       public boolean covers(RequiredInterface obj) {
+           // TODO do more than equals. 
                if ( !(obj instanceof DefaultRequiredInterface)) { 
                        return false; 
                }