1 package org.wamblee.system;
3 public class DefaultRequiredServiceDescriptor extends AbstractServiceDescriptor
4 implements RequiredServiceDescriptor {
6 public DefaultRequiredServiceDescriptor(String aName, Class aInterface) {
7 super(aName, aInterface);
10 public DefaultRequiredServiceDescriptor(String aName, Class[] aInterfaces) {
11 super(aName, aInterfaces);
15 public boolean implementedBy(ProvidedServiceDescriptor aDescriptor) {
16 Class[] provided = aDescriptor.getInterfaceTypes();
17 for (Class required : getInterfaceTypes()) {
18 if ( !serviceProvided(required, provided)) {
22 // all required interfaces are provided.
27 * Check if the required interface is implemented by one of the provided interfaces.
28 * @param aRequired required interface
29 * @param aProvided Provided interfaces.
32 private boolean serviceProvided(Class aRequired, Class[] aProvided) {
33 for (Class provided: aProvided) {
35 provided.asSubclass(aRequired);
37 } catch (ClassCastException e) {
38 // No match, try the next one.