X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2FCompositeSystem.java;h=24547a9373078878880130b8463646312e87c682;hb=6f277575685808a5c5a76555dd3e839dc5255031;hp=db94f738c7051b397f30ae380afbf1d22a085e9e;hpb=fd4cca82a8da5d7e347a1ae40f25db245f0ad235;p=utils diff --git a/system/general/src/main/java/org/wamblee/system/CompositeSystem.java b/system/general/src/main/java/org/wamblee/system/CompositeSystem.java index db94f738..24547a93 100644 --- a/system/general/src/main/java/org/wamblee/system/CompositeSystem.java +++ b/system/general/src/main/java/org/wamblee/system/CompositeSystem.java @@ -14,11 +14,11 @@ import sun.util.LocaleServiceProviderPool.LocalizedObjectGetter; * * @author Erik Brakkee */ -public class CompositeSystem extends AbstractSubSystem { +public class CompositeSystem extends AbstractComponent { private static final Log LOG = LogFactory.getLog(CompositeSystem.class); - private SubSystem[] _systems; + private Component[] _systems; /** * Construcst the composite system. @@ -28,8 +28,8 @@ public class CompositeSystem extends AbstractSubSystem { * @param aProvided Provided services of the system. * @param aRequired Required services by the system. */ - public CompositeSystem(String aName, ServiceRegistry aRegistry, SubSystem[] aSystems, - ServiceDescriptor[] aProvided, ServiceDescriptor[] aRequired) { + public CompositeSystem(String aName, ServiceRegistry aRegistry, Component[] aSystems, + InterfaceDescriptor[] aProvided, InterfaceDescriptor[] aRequired) { super(aName, aRegistry, aProvided, aRequired); _systems = aSystems; validate(); @@ -42,24 +42,24 @@ public class CompositeSystem extends AbstractSubSystem { * Also logs a warning in case of superfluous requirements. */ private void validate() { - List provided = new ArrayList(); - for (SubSystem system : _systems) { + List provided = new ArrayList(); + for (Component system : _systems) { provided.addAll(Arrays.asList(system.getProvidedServices())); } - List required = new ArrayList(); - for (SubSystem system : _systems) { + List required = new ArrayList(); + for (Component system : _systems) { required.addAll(Arrays.asList(system.getRequiredServices())); } - for (ServiceDescriptor service : getProvidedServices()) { + for (InterfaceDescriptor service : getProvidedServices()) { if (!(provided.contains(service))) { throw new SystemAssemblyException(getName() + ": Service '" + service + "' is not provided by any of the subsystems"); } } - for (ServiceDescriptor service : getRequiredServices()) { + for (InterfaceDescriptor service : getRequiredServices()) { if (!(required.contains(service))) { info("Service '" + service @@ -67,27 +67,27 @@ public class CompositeSystem extends AbstractSubSystem { } } - List reallyRequired = new ArrayList( + List reallyRequired = new ArrayList( required); - for (ServiceDescriptor service : provided) { + for (InterfaceDescriptor service : provided) { reallyRequired.remove(service); } - for (ServiceDescriptor service: getRequiredServices()) { + for (InterfaceDescriptor service: getRequiredServices()) { reallyRequired.remove(service); } - for (ServiceDescriptor service: reallyRequired) { + for (InterfaceDescriptor service: reallyRequired) { throw new SystemAssemblyException(getName() + ": " + "Service '" + service + "' is not provided internally and is not indicated as required for this sub system"); } } @Override protected void doStart(String aContext, Service[] aRequiredServices) { - List descriptors = new ArrayList(); + List descriptors = new ArrayList(); for (Service service : aRequiredServices) { descriptors.add(service.getDescriptor()); } SystemAssembler assembler = new SystemAssembler(aContext + "." + getName(), _systems, - descriptors.toArray(new ProvidedServiceDescriptor[0])); + descriptors.toArray(new ProvidedInterfaceDescriptor[0])); assembler.start(getRegistry(), aRequiredServices); }