private String _context;
private Component[] _systems;
- public static RequiredInterfaceDescriptor[] filterRequiredServices(
- ProvidedInterfaceDescriptor aProvided,
- Collection<RequiredInterfaceDescriptor> aDescriptors) {
- List<RequiredInterfaceDescriptor> required = new ArrayList<RequiredInterfaceDescriptor>();
- for (RequiredInterfaceDescriptor descriptor : aDescriptors) {
+ public static RequiredInterface[] filterRequiredServices(
+ ProvidedInterface aProvided,
+ Collection<RequiredInterface> aDescriptors) {
+ List<RequiredInterface> required = new ArrayList<RequiredInterface>();
+ for (RequiredInterface descriptor : aDescriptors) {
if (descriptor.implementedBy(aProvided)) {
required.add(descriptor);
}
}
- return required.toArray(new RequiredInterfaceDescriptor[0]);
+ return required.toArray(new RequiredInterface[0]);
}
- public static ProvidedInterfaceDescriptor[] filterProvidedServices(
- RequiredInterfaceDescriptor aRequired,
- Collection<ProvidedInterfaceDescriptor> aProvided) {
- List<ProvidedInterfaceDescriptor> provided = new ArrayList<ProvidedInterfaceDescriptor>();
- for (ProvidedInterfaceDescriptor descriptor : aProvided) {
+ public static ProvidedInterface[] filterProvidedServices(
+ RequiredInterface aRequired,
+ Collection<ProvidedInterface> aProvided) {
+ List<ProvidedInterface> provided = new ArrayList<ProvidedInterface>();
+ for (ProvidedInterface descriptor : aProvided) {
if (aRequired.implementedBy(descriptor)) {
provided.add(descriptor);
}
}
- return provided.toArray(new ProvidedInterfaceDescriptor[0]);
+ return provided.toArray(new ProvidedInterface[0]);
}
/**
* that this assembler manages.
*/
public SystemAssembler(Component[] aSystems,
- ProvidedInterfaceDescriptor[] aAvailableServices) {
+ ProvidedInterface[] aAvailableServices) {
this(ROOT_CONTEXT_NAME, aSystems, aAvailableServices);
}
* that this assembler manages.
*/
public SystemAssembler(String aContext, Component[] aSystems,
- ProvidedInterfaceDescriptor[] aAvailableServices) {
+ ProvidedInterface[] aAvailableServices) {
_context = aContext;
_systems = aSystems;
validate(aAvailableServices);
* Determines if the systems are ordered appropriately so that all
* dependencies are met.
*/
- private void validate(ProvidedInterfaceDescriptor[] aDescriptors)
+ private void validate(ProvidedInterface[] aDescriptors)
throws SystemAssemblyException {
- List<ProvidedInterfaceDescriptor> allProvided = new ArrayList<ProvidedInterfaceDescriptor>();
- for (ProvidedInterfaceDescriptor descriptor : aDescriptors) {
+ List<ProvidedInterface> allProvided = new ArrayList<ProvidedInterface>();
+ for (ProvidedInterface descriptor : aDescriptors) {
allProvided.add(descriptor);
}
for (Component system : _systems) {
// Check if all required services are already provided by earlier
// systems.
- RequiredInterfaceDescriptor[] required = system.getRequiredServices();
+ RequiredInterface[] required = system.getRequiredServices();
- for (RequiredInterfaceDescriptor descriptor : required) {
- ProvidedInterfaceDescriptor[] filtered = filterProvidedServices(
+ for (RequiredInterface descriptor : required) {
+ ProvidedInterface[] filtered = filterProvidedServices(
descriptor, allProvided);
if (filtered.length == 0) {
}
// add all provided services
- ProvidedInterfaceDescriptor[] provided = system.getProvidedServices();
+ ProvidedInterface[] provided = system.getProvidedServices();
allProvided.addAll(Arrays.asList(provided));
}
}
*/
public void start(ServiceRegistry aRegistry, Service[] aRequiredServices) {
LOG.info("Starting '" + _context + "'");
- Map<ProvidedInterfaceDescriptor, Service> allProvided = new HashMap<ProvidedInterfaceDescriptor, Service>();
+ Map<ProvidedInterface, Service> allProvided = new HashMap<ProvidedInterface, Service>();
for (Service service : aRequiredServices) {
allProvided.put(service.getDescriptor(), service);
// Compose a list of the required services required for the subsystem.
- RequiredInterfaceDescriptor[] descriptors = system
+ RequiredInterface[] descriptors = system
.getRequiredServices();
List<Service> services = new ArrayList<Service>();
- for (RequiredInterfaceDescriptor descriptor : descriptors) {
- ProvidedInterfaceDescriptor[] provided = filterProvidedServices(
+ for (RequiredInterface descriptor : descriptors) {
+ ProvidedInterface[] provided = filterProvidedServices(
descriptor, allProvided.keySet());
services.add(allProvided.get(provided[0]));
}