import java.util.Arrays;
+import org.hibernate.annotations.common.reflection.ReflectionUtil;
+import org.wamblee.reflection.ReflectionUtils;
+
public class DefaultRequiredInterface implements RequiredInterface {
private String _name;
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) {
@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;
}