X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fcore%2FDefaultRequiredInterface.java;h=2983ca6f4796007a95241e4b6a807c0dc94eb8c5;hb=d3f458acc63a8754f4104d0623f8b4af6b708168;hp=5e9f8bb60dda715ef632f6d58029f88353e89fc4;hpb=0ef16bd1ab00860f90da1198589b3c777561691d;p=utils diff --git a/system/general/src/main/java/org/wamblee/system/core/DefaultRequiredInterface.java b/system/general/src/main/java/org/wamblee/system/core/DefaultRequiredInterface.java index 5e9f8bb6..2983ca6f 100644 --- a/system/general/src/main/java/org/wamblee/system/core/DefaultRequiredInterface.java +++ b/system/general/src/main/java/org/wamblee/system/core/DefaultRequiredInterface.java @@ -17,6 +17,9 @@ package org.wamblee.system.core; import java.util.Arrays; +import org.hibernate.annotations.common.reflection.ReflectionUtil; +import org.wamblee.reflection.ReflectionUtils; + public class DefaultRequiredInterface implements RequiredInterface { private String _name; @@ -74,6 +77,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) { @@ -90,11 +95,19 @@ public class DefaultRequiredInterface implements RequiredInterface { @Override public void setProvider(ProvidedInterface aProvider) { + assert aProvider != null; + assert implementedBy(aProvider); _provider = aProvider; } @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; }