git://wamblee.org
/
utils
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
(no commit message)
[utils]
/
system
/
general
/
src
/
main
/
java
/
org
/
wamblee
/
system
/
core
/
DefaultRequiredInterface.java
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 e028342e9d2fa98528ec04e7ccc2dfd90ce59e39..4e0db74be375620f8f60dd5b383a2e1a5017de32 100644
(file)
--- 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,8
@@
package org.wamblee.system.core;
import java.util.Arrays;
import java.util.Arrays;
+import org.wamblee.reflection.ReflectionUtils;
+
public class DefaultRequiredInterface implements RequiredInterface {
private String _name;
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 {
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) {
provided.asSubclass(aRequired);
return true;
} catch (ClassCastException e) {
@@
-90,19
+94,19
@@
public class DefaultRequiredInterface implements RequiredInterface {
@Override
public void setProvider(ProvidedInterface aProvider) {
@Override
public void setProvider(ProvidedInterface aProvider) {
+ assert aProvider != null;
+ assert implementedBy(aProvider);
_provider = aProvider;
}
_provider = aProvider;
}
-
+
@Override
@Override
- public <T> T getImplementation(Class<T> aClass) {
- if ( _provider == null ) {
- return null;
- }
- return (T)_provider.getImplementation();
+ public boolean equals(Object obj) {
+ return this == obj;
}
@Override
}
@Override
- public boolean equals(Object obj) {
+ public boolean covers(RequiredInterface obj) {
+ // TODO do more than equals.
if ( !(obj instanceof DefaultRequiredInterface)) {
return false;
}
if ( !(obj instanceof DefaultRequiredInterface)) {
return false;
}
@@
-129,6
+133,7
@@
public class DefaultRequiredInterface implements RequiredInterface {
@Override
public String toString() {
StringBuffer buf = new StringBuffer();
@Override
public String toString() {
StringBuffer buf = new StringBuffer();
+ buf.append("." + getName() + ":");
for (Class intf: _required) {
buf.append("." + intf.getName());
}
for (Class intf: _required) {
buf.append("." + intf.getName());
}