- public String toString() {
- StringBuffer buf = new StringBuffer();
- buf.append(getName());
- buf.append(":");
- for (Class intf: _interfaces) {
- buf.append(" " + intf.getName());
- }
- return buf.toString();
+ public boolean covers(ProvidedInterface aInterface) {
+ // TODO do more than just equals.
+ if ( !(aInterface instanceof DefaultProvidedInterface)) {
+ return false;
+ }
+ return getEqualsRepresentation().equals(((DefaultProvidedInterface)aInterface).getEqualsRepresentation());
+ }
+
+
+ private String getEqualsRepresentation() {
+ List<String> result = new ArrayList<String>();
+ for (Class cls: interfaces) {
+ result.add(cls.getName());
+ }
+ Collections.sort(result);
+ String value = "";
+ for (String str: result) {
+ value += ":" + str;
+ }
+ return value;