+ private Component[] _systems;
+
+ public static RequiredInterfaceDescriptor[] filterRequiredServices(
+ ProvidedInterfaceDescriptor aProvided,
+ Collection<RequiredInterfaceDescriptor> aDescriptors) {
+ List<RequiredInterfaceDescriptor> required = new ArrayList<RequiredInterfaceDescriptor>();
+ for (RequiredInterfaceDescriptor descriptor : aDescriptors) {
+ if (descriptor.implementedBy(aProvided)) {
+ required.add(descriptor);
+ }
+ }
+ return required.toArray(new RequiredInterfaceDescriptor[0]);
+ }
+
+ public static ProvidedInterfaceDescriptor[] filterProvidedServices(
+ RequiredInterfaceDescriptor aRequired,
+ Collection<ProvidedInterfaceDescriptor> aProvided) {
+ List<ProvidedInterfaceDescriptor> provided = new ArrayList<ProvidedInterfaceDescriptor>();
+ for (ProvidedInterfaceDescriptor descriptor : aProvided) {
+ if (aRequired.implementedBy(descriptor)) {
+ provided.add(descriptor);
+ }
+ }
+ return provided.toArray(new ProvidedInterfaceDescriptor[0]);
+ }