You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/02/21 07:42:02 UTC
svn commit: r379374 [2/2] -
/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleComponentImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleComponentImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleComponentImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleComponentImpl.java Mon Feb 20 22:41:58 2006
@@ -16,32 +16,15 @@
*/
package org.apache.tuscany.model.assembly.impl;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.model.assembly.Aggregate;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.ComponentImplementation;
-import org.apache.tuscany.model.assembly.ConfiguredProperty;
-import org.apache.tuscany.model.assembly.ConfiguredReference;
-import org.apache.tuscany.model.assembly.ConfiguredService;
import org.apache.tuscany.model.assembly.Module;
import org.apache.tuscany.model.assembly.ModuleComponent;
/**
- * An implementation of the model object '<em><b>Module Component</b></em>'.
+ * An implementation of ModuleComponent.
*/
-public class ModuleComponentImpl extends org.apache.tuscany.model.assembly.sdo.impl.ModuleComponentImpl implements ModuleComponent {
- private List<ConfiguredReference> configuredReferences = new ArrayList<ConfiguredReference>();
- private Map<String, ConfiguredReference> configuredReferencesMap = new HashMap<String, ConfiguredReference>();
- private List<ConfiguredService> configuredServices = new ArrayList<ConfiguredService>();
- private Map<String, ConfiguredService> configuredServicesMap = new HashMap<String, ConfiguredService>();
- private List<ConfiguredProperty> configuredProperties = new ArrayList<ConfiguredProperty>();
- private Map<String, ConfiguredProperty> configuredPropertiesMap = new HashMap<String, ConfiguredProperty>();
- private ComponentImplementation configuredImplementation;
+public class ModuleComponentImpl extends ComponentImpl implements ModuleComponent {
+
+ private String uri;
/**
* Constructor
@@ -50,114 +33,33 @@
}
/**
- * @see org.apache.tuscany.model.assembly.Part#getAggregate()
- */
- public Aggregate getAggregate() {
- return (Aggregate) super.getContainer();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getComponentImplementation()
- */
- public ComponentImplementation getComponentImplementation() {
- return configuredImplementation;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#setComponentImplementation(org.apache.tuscany.model.assembly.ComponentImplementation)
+ * @see org.apache.tuscany.model.assembly.ModuleComponent#setModuleImplementation(org.apache.tuscany.model.assembly.Module)
*/
- public void setComponentImplementation(ComponentImplementation value) {
- configuredImplementation = value;
+ public void setModuleImplementation(Module module) {
+ checkNotFrozen();
+ super.setComponentImplementation(module);
}
-
+
/**
* @see org.apache.tuscany.model.assembly.ModuleComponent#getModuleImplementation()
*/
public Module getModuleImplementation() {
- return (Module) getComponentImplementation();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.ModuleComponent#setModuleImplementation(org.apache.tuscany.model.assembly.Module)
- */
- public void setModuleImplementation(Module module) {
- setComponentImplementation(module);
+ return (Module)super.getComponentImplementation();
}
/**
* @see org.apache.tuscany.model.assembly.ModuleComponent#getURI()
*/
public String getURI() {
- return super.getUri();
+ return uri;
}
/**
* @see org.apache.tuscany.model.assembly.ModuleComponent#setURI(java.lang.String)
*/
public void setURI(String value) {
- super.setUri(value);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredProperties()
- */
- public List<ConfiguredProperty> getConfiguredProperties() {
- return configuredProperties;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredProperty(java.lang.String)
- */
- public ConfiguredProperty getConfiguredProperty(String name) {
- return configuredPropertiesMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredReferences()
- */
- public List<ConfiguredReference> getConfiguredReferences() {
- return configuredReferences;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredReference(java.lang.String)
- */
- public ConfiguredReference getConfiguredReference(String name) {
- return configuredReferencesMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredServices()
- */
- public List<ConfiguredService> getConfiguredServices() {
- return configuredServices;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredService(java.lang.String)
- */
- public ConfiguredService getConfiguredService(String name) {
- return configuredServicesMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
- */
- public void initialize(AssemblyModelContext modelContext) {
- //FIXME Populate lists and maps
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
- */
- public void freeze() {
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
- */
- public boolean accept(AssemblyModelVisitor visitor) {
- return AssemblyModelVisitorHelperImpl.accept(this, visitor);
+ checkNotFrozen();
+ uri=value;
}
-} //ModuleComponentImpl
+}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java Mon Feb 20 22:41:58 2006
@@ -16,31 +16,12 @@
*/
package org.apache.tuscany.model.assembly.impl;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.Component;
-import org.apache.tuscany.model.assembly.ConfiguredService;
-import org.apache.tuscany.model.assembly.EntryPoint;
-import org.apache.tuscany.model.assembly.ExternalService;
import org.apache.tuscany.model.assembly.ModuleFragment;
-import org.apache.tuscany.model.assembly.Part;
-import org.apache.tuscany.model.assembly.ServiceURI;
-import org.apache.tuscany.model.assembly.sdo.impl.ModuleFragmentElementImpl;
/**
- * An implementation of the model object '<em><b>Module</b></em>'.
+ * An implementation of ModuleFragment.
*/
-public class ModuleFragmentImpl extends ModuleFragmentElementImpl implements ModuleFragment {
- private Map<String, Component> componentsMap;
- private Map<String, EntryPoint> entryPointsMap;
- private Map<String, ExternalService> externalServicesMap;
- private List<Part> parts;
+public class ModuleFragmentImpl extends AggregateImpl implements ModuleFragment {
/**
* Constructor
@@ -48,158 +29,4 @@
protected ModuleFragmentImpl() {
}
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ModuleFragmentElementImpl#getName()
- */
- public String getName() {
- return super.getName();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ModuleFragmentElementImpl#setName(java.lang.String)
- */
- public void setName(String newName) {
- super.setName(newName);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getComponents()
- */
- public List<Component> getComponents() {
- return super.getComponents();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getComponent(java.lang.String)
- */
- public Component getComponent(String name) {
- return componentsMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoints()
- */
- public List<EntryPoint> getEntryPoints() {
- return super.getEntryPoints();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoint(java.lang.String)
- */
- public EntryPoint getEntryPoint(String name) {
- return entryPointsMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getExternalServices()
- */
- public List<ExternalService> getExternalServices() {
- return super.getExternalServices();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getExternalService(java.lang.String)
- */
- public ExternalService getExternalService(String name) {
- return externalServicesMap.get(name);
- }
-
- /**
- * @return Returns the componentsMap.
- */
- protected Map<String, Component> getComponentsMap() {
- return componentsMap;
- }
-
- /**
- * @return Returns the externalServicesMap.
- */
- protected Map<String, ExternalService> getExternalServicesMap() {
- return externalServicesMap;
- }
-
- /**
- * @return Returns the entryPointsMap.
- */
- protected Map<String, EntryPoint> getEntryPointsMap() {
- return entryPointsMap;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getParts()
- */
- public List<Part> getParts() {
- return parts;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getConfiguredService(org.apache.tuscany.model.assembly.ServiceURI)
- */
- public ConfiguredService getConfiguredService(ServiceURI address) {
- String partName = address.getPartName();
- String serviceName = address.getServiceName();
- Component component = getComponent(partName);
- if (component != null) {
- if (serviceName != null) {
- return component.getConfiguredService(serviceName);
- } else {
- if (!component.getConfiguredServices().isEmpty()) {
- return component.getConfiguredServices().get(0);
- } else {
- return null;
- }
- }
-
- } else {
- ExternalService externalService = getExternalService(partName);
- if (externalService != null) {
- return externalService.getConfiguredService();
- } else {
- return null;
- }
- }
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
- */
- public void initialize(AssemblyModelContext modelContext) {
- // Populate maps of components, entry points and external services
- componentsMap = new HashMap<String, Component>();
- for (Iterator<Component> i = getComponents().iterator(); i.hasNext();) {
- Component component = i.next();
- componentsMap.put(component.getName(), component);
- component.initialize(modelContext);
- }
- entryPointsMap = new HashMap<String, EntryPoint>();
- for (Iterator<EntryPoint> i = getEntryPoints().iterator(); i.hasNext();) {
- EntryPoint entryPoint = i.next();
- entryPointsMap.put(entryPoint.getName(), entryPoint);
- entryPoint.initialize(modelContext);
- }
- externalServicesMap = new HashMap<String, ExternalService>();
- for (Iterator<ExternalService> i = getExternalServices().iterator(); i.hasNext();) {
- ExternalService externalService = i.next();
- externalServicesMap.put(externalService.getName(), externalService);
- externalService.initialize(modelContext);
- }
- parts = new ArrayList<Part>();
- parts.addAll(getEntryPoints());
- parts.addAll(getComponents());
- parts.addAll(getExternalServices());
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
- */
- public void freeze() {
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
- */
- public boolean accept(AssemblyModelVisitor visitor) {
- return AssemblyModelVisitorHelperImpl.accept(this, visitor);
- }
-
-} //ModuleImpl
+}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java Mon Feb 20 22:41:58 2006
@@ -17,46 +17,31 @@
package org.apache.tuscany.model.assembly.impl;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import commonj.sdo.DataObject;
-import commonj.sdo.Property;
-import commonj.sdo.Sequence;
-import org.eclipse.emf.ecore.sdo.EDataObject;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.osoa.sca.model.ModuleWire;
-import org.osoa.sca.model.ReferenceValues;
-
import org.apache.tuscany.model.assembly.AssemblyFactory;
import org.apache.tuscany.model.assembly.AssemblyModelContext;
import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.Component;
import org.apache.tuscany.model.assembly.ComponentType;
-import org.apache.tuscany.model.assembly.ConfiguredReference;
-import org.apache.tuscany.model.assembly.ConfiguredService;
import org.apache.tuscany.model.assembly.EntryPoint;
import org.apache.tuscany.model.assembly.ExternalService;
-import org.apache.tuscany.model.assembly.Interface;
import org.apache.tuscany.model.assembly.Module;
import org.apache.tuscany.model.assembly.ModuleFragment;
-import org.apache.tuscany.model.assembly.Part;
import org.apache.tuscany.model.assembly.Reference;
import org.apache.tuscany.model.assembly.Service;
-import org.apache.tuscany.model.assembly.ServiceURI;
+import org.apache.tuscany.model.assembly.ServiceContract;
/**
- * An implementation of the model object '<em><b>Module</b></em>'.
+ * An implementation of Module.
*/
-public class ModuleImpl extends org.apache.tuscany.model.assembly.sdo.impl.ModuleImpl implements Module {
+public class ModuleImpl extends AggregateImpl implements Module {
+
private List<ModuleFragment> moduleFragments = new ArrayList<ModuleFragment>();
private Map<String, ModuleFragment> moduleFragmentsMap;
- private Map<String, Component> componentsMap;
- private Map<String, EntryPoint> entryPointsMap;
- private Map<String, ExternalService> externalServicesMap;
- private List<Part> parts;
private ComponentType componentType;
private Object runtimeConfiguration;
@@ -65,96 +50,20 @@
*/
protected ModuleImpl() {
}
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ModuleFragmentElementImpl#getName()
- */
- public String getName() {
- return super.getName();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ModuleFragmentElementImpl#setName(java.lang.String)
- */
- public void setName(String newName) {
- super.setName(newName);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getComponents()
- */
- public List<Component> getComponents() {
- return super.getComponents();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getComponent(java.lang.String)
- */
- public Component getComponent(String name) {
- return componentsMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoints()
- */
- public List<EntryPoint> getEntryPoints() {
- return super.getEntryPoints();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoint(java.lang.String)
- */
- public EntryPoint getEntryPoint(String name) {
- return entryPointsMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getExternalServices()
- */
- public List<ExternalService> getExternalServices() {
- return super.getExternalServices();
- }
-
+
/**
- * @see org.apache.tuscany.model.assembly.Aggregate#getExternalService(java.lang.String)
+ * @see org.apache.tuscany.model.assembly.ComponentImplementation#getComponentType()
*/
- public ExternalService getExternalService(String name) {
- return externalServicesMap.get(name);
+ public ComponentType getComponentType() {
+ return componentType;
}
-
+
/**
- * @see org.apache.tuscany.model.assembly.Aggregate#getParts()
+ * @see org.apache.tuscany.model.assembly.ComponentImplementation#setComponentType(org.apache.tuscany.model.assembly.ComponentType)
*/
- public List<Part> getParts() {
- return parts;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getConfiguredService(org.apache.tuscany.model.assembly.ServiceURI)
- */
- public ConfiguredService getConfiguredService(ServiceURI address) {
- String partName = address.getPartName();
- String serviceName = address.getServiceName();
- Component component = getComponent(partName);
- if (component != null) {
- if (serviceName != null) {
- return component.getConfiguredService(serviceName);
- } else {
- if (!component.getConfiguredServices().isEmpty()) {
- return component.getConfiguredServices().get(0);
- } else {
- return null;
- }
- }
-
- } else {
- ExternalService externalService = getExternalService(partName);
- if (externalService != null) {
- return externalService.getConfiguredService();
- } else {
- return null;
- }
- }
+ public void setComponentType(ComponentType componentType) {
+ checkNotFrozen();
+ this.componentType=componentType;
}
/**
@@ -168,6 +77,7 @@
* @see org.apache.tuscany.model.assembly.Module#getModuleFragment(java.lang.String)
*/
public ModuleFragment getModuleFragment(String name) {
+ checkInitialized();
return moduleFragmentsMap.get(name);
}
@@ -175,262 +85,227 @@
* @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
*/
public void initialize(AssemblyModelContext modelContext) {
- // Populate maps of components, entry points and external services
- componentsMap = new HashMap<String, Component>();
- for (Iterator<Component> i = getComponents().iterator(); i.hasNext();) {
- Component component = i.next();
- componentsMap.put(component.getName(), component);
- component.initialize(modelContext);
- }
- entryPointsMap = new HashMap<String, EntryPoint>();
- for (Iterator<EntryPoint> i = getEntryPoints().iterator(); i.hasNext();) {
- EntryPoint entryPoint = i.next();
- entryPointsMap.put(entryPoint.getName(), entryPoint);
- entryPoint.initialize(modelContext);
- }
- externalServicesMap = new HashMap<String, ExternalService>();
- for (Iterator<ExternalService> i = getExternalServices().iterator(); i.hasNext();) {
- ExternalService externalService = i.next();
- externalServicesMap.put(externalService.getName(), externalService);
- externalService.initialize(modelContext);
- }
+ if (isInitialized())
+ return;
+
+ // Populate map of module fragments
moduleFragmentsMap = new HashMap<String, ModuleFragment>();
- for (Iterator<ModuleFragment> i = getModuleFragments().iterator(); i.hasNext();) {
- ModuleFragmentImpl moduleFragment = (ModuleFragmentImpl) i.next();
+ for (ModuleFragment moduleFragment : moduleFragments) {
moduleFragmentsMap.put(moduleFragment.getName(), moduleFragment);
- componentsMap.putAll(moduleFragment.getComponentsMap());
- entryPointsMap.putAll(moduleFragment.getEntryPointsMap());
- externalServicesMap.putAll(moduleFragment.getExternalServicesMap());
- }
- parts = new ArrayList<Part>();
- parts.addAll(getEntryPoints());
- parts.addAll(getComponents());
- parts.addAll(getExternalServices());
+
+ // Add all components, entry points and external services from the module fragments
+ getComponents().addAll(moduleFragment.getComponents());
+ getEntryPoints().addAll(moduleFragment.getEntryPoints());
+ getExternalServices().addAll(moduleFragment.getExternalServices());
+ }
+
+ // Initialize the aggregate
+ super.initialize(modelContext);
//FIXME derive the module properties from the overridable properties of the components in the module
// Derive the component type from the entry points and external services in the module
- if (componentType == null) {
+ if (componentType==null) {
AssemblyFactory factory = modelContext.getAssemblyFactory();
componentType = factory.createComponentType();
- for (Iterator<EntryPoint> i = getEntryPoints().iterator(); i.hasNext();) {
- EntryPoint entryPoint = i.next();
+ for (EntryPoint entryPoint : getEntryPoints()) {
Service service = factory.createService();
service.setName(entryPoint.getName());
- Interface iface = entryPoint.getInterfaceContract();
- if (iface != null)
- service.setInterfaceContract((Interface) EcoreUtil.copy((EDataObject) iface));
+ ServiceContract serviceContract = entryPoint.getConfiguredService().getService().getServiceContract();
+ if (serviceContract != null)
+ service.setServiceContract(serviceContract);
componentType.getServices().add(service);
}
for (Iterator<ExternalService> i = getExternalServices().iterator(); i.hasNext();) {
ExternalService externalService = i.next();
Reference reference = factory.createReference();
reference.setName(externalService.getName());
- Interface iface = externalService.getInterfaceContract();
- if (iface != null)
- reference.setInterfaceContract((Interface) EcoreUtil.copy((EDataObject) iface));
+ ServiceContract serviceContract = externalService.getConfiguredService().getService().getServiceContract();
+ if (serviceContract != null)
+ reference.setServiceContract(serviceContract);
componentType.getReferences().add(reference);
}
- componentType.initialize(modelContext);
- }
-
- // Resolve the references and the wires
- AssemblyFactory factory = modelContext.getAssemblyFactory();
-
- // Resolve entry point references
- for (Iterator<EntryPoint> i = entryPointsMap.values().iterator(); i.hasNext();) {
- EntryPoint entryPoint = i.next();
- ConfiguredReference configuredReference = entryPoint.getConfiguredReference();
- for (Iterator<DataObject> r = ((org.osoa.sca.model.EntryPoint) entryPoint).getReferences().iterator(); r.hasNext();) {
- DataObject targetURIElement = r.next();
- ConfiguredService configuredService = resolveURIElement(factory, targetURIElement);
- if (configuredService != null) {
- if (!configuredReference.getReference().isMultiplicityN() && !configuredReference.getConfiguredServices().isEmpty()) {
- // FIXME shouldn't we be throwing an exception here
- // log.error("Attempting to wire multiple targets to reference " + configuredReference.getReference().getName());
- } else {
- configuredReference.getConfiguredServices().add(configuredService);
- }
- }
- }
- }
-
- // Resolve component references
- for (Iterator<Component> i = componentsMap.values().iterator(); i.hasNext();) {
- Component component = i.next();
- ReferenceValues referenceValues = ((org.osoa.sca.model.Component) component).getReferenceValues();
- if (referenceValues == null)
- continue;
- Sequence sequence = referenceValues.getAny();
- for (int p = 0, n = sequence.size(); p < n; p++) {
- Property property = sequence.getProperty(p);
- DataObject targetURIElement = (DataObject) sequence.getValue(p);
-
- // Get the named reference
- ConfiguredReference configuredReference = component.getConfiguredReference(property.getName());
- if (configuredReference != null) {
- ConfiguredService configuredService = resolveURIElement(factory, targetURIElement);
- if (configuredService != null) {
- if (!configuredReference.getReference().isMultiplicityN() && !configuredReference.getConfiguredServices().isEmpty()) {
- // FIXME shouldn't we be throwing an exception here
- // log.error("Attempting to wire multiple targets to reference " + configuredReference.getReference().getName());
- } else {
- configuredReference.getConfiguredServices().add(configuredService);
- }
- }
- } else {
- // FIXME shouldn't we be throwing an exception here
- // log.error("Undefined reference " + property.getName());
- }
- }
- }
-
- // Resolve wires from this module and its module fragments
- resolveWires(factory, getWires());
- for (Iterator<ModuleFragment> i = getModuleFragments().iterator(); i.hasNext();) {
- ModuleFragment moduleFragment = i.next();
- resolveWires(factory, ((org.osoa.sca.model.ModuleFragment) moduleFragment).getWires());
}
- }
+ componentType.initialize(modelContext);
- /**
- * Resolve a target URI
- *
- * @param factory
- * @param targetURIElement
- */
- private ConfiguredService resolveURIElement(AssemblyFactory factory, DataObject targetURIElement) {
- Sequence sequence = targetURIElement.getSequence(0);
- String targetURI = (String) sequence.getValue(0);
- ServiceURI serviceURI = factory.createServiceURI(null, targetURI);
- ConfiguredService configuredService = getConfiguredService(serviceURI);
- if (configuredService == null) {
- // FIXME shouldn't we be throwing an exception here
- // log.error("Cannot find service for " + targetURI);
- }
- return configuredService;
- }
-
- /**
- * Resolve the given wires
- *
- * @param factory
- * @param wires
- */
- private void resolveWires(AssemblyFactory factory, List<ModuleWire> wires) {
-
- // Loop through the wires
- for (Iterator<ModuleWire> i = wires.iterator(); i.hasNext();) {
- ModuleWire wire = i.next();
-
- // Get the source reference
- ServiceURI sourceURI = factory.createServiceURI(null, wire.getSourceUri());
- ConfiguredReference configuredReference = null;
- String partName = sourceURI.getPartName();
- String referenceName = sourceURI.getServiceName();
- if (referenceName != null) {
- Component component = getComponent(partName);
- if (component != null) {
- configuredReference = component.getConfiguredReference(referenceName);
- }
- } else {
- EntryPoint entryPoint = getEntryPoint(partName);
- if (entryPoint != null) {
- configuredReference = entryPoint.getConfiguredReference();
- }
- }
- if (configuredReference == null) {
- // FIXME shouldn't we be throwing an exception here
- // log.error("Cannot find wire source " + sourceURI);
- } else {
-
- // Resolve the target service endpoint
- ServiceURI targetURI = factory.createServiceURI(null, wire.getTargetUri());
- ConfiguredService configuredService = getConfiguredService(targetURI);
- if (configuredService != null) {
-
- // Wire the reference to the target
- if (configuredReference.getReference().isMultiplicityN()) {
- configuredReference.getConfiguredServices().add(configuredService);
- } else {
- configuredReference.getConfiguredServices().clear();
- configuredReference.getConfiguredServices().add(configuredService);
- }
- } else {
- // FIXME shouldn't we be throwing an exception here
- // log.error("Cannot find service for " + targetURI.getAddress());
- }
- }
- }
- }
+ //FIXME add wiring later
+//
+// // Resolve the references and the wires
+// AssemblyFactory factory = modelContext.getAssemblyFactory();
+//
+// // Resolve entry point references
+// for (Iterator<EntryPoint> i = entryPointsMap.values().iterator(); i.hasNext();) {
+// EntryPoint entryPoint = i.next();
+// ConfiguredReference configuredReference = entryPoint.getConfiguredReference();
+// for (Iterator<DataObject> r = ((org.osoa.sca.model.EntryPoint) entryPoint).getReferences().iterator(); r.hasNext();) {
+// DataObject targetURIElement = r.next();
+// ConfiguredService configuredService = resolveURIElement(factory, targetURIElement);
+// if (configuredService != null) {
+// if (!configuredReference.getReference().isMultiplicityN() && !configuredReference.getTargetConfiguredServices().isEmpty()) {
+// // FIXME shouldn't we be throwing an exception here
+// // log.error("Attempting to wire multiple targets to reference " + configuredReference.getReference().getName());
+// } else {
+// configuredReference.getTargetConfiguredServices().add(configuredService);
+// }
+// }
+// }
+// }
+//
+// // Resolve component references
+// for (Iterator<Component> i = componentsMap.values().iterator(); i.hasNext();) {
+// Component component = i.next();
+// ReferenceValues referenceValues = ((org.osoa.sca.model.Component) component).getReferenceValues();
+// if (referenceValues == null)
+// continue;
+// Sequence sequence = referenceValues.getAny();
+// for (int p = 0, n = sequence.size(); p < n; p++) {
+// Property property = sequence.getProperty(p);
+// DataObject targetURIElement = (DataObject) sequence.getValue(p);
+//
+// // Get the named reference
+// ConfiguredReference configuredReference = component.getConfiguredReference(property.getName());
+// if (configuredReference != null) {
+// ConfiguredService configuredService = resolveURIElement(factory, targetURIElement);
+// if (configuredService != null) {
+// if (!configuredReference.getReference().isMultiplicityN() && !configuredReference.getTargetConfiguredServices().isEmpty()) {
+// // FIXME shouldn't we be throwing an exception here
+// // log.error("Attempting to wire multiple targets to reference " + configuredReference.getReference().getName());
+// } else {
+// configuredReference.getTargetConfiguredServices().add(configuredService);
+// }
+// }
+// } else {
+// // FIXME shouldn't we be throwing an exception here
+// // log.error("Undefined reference " + property.getName());
+// }
+// }
+// }
+//
+// // Resolve wires from this module and its module fragments
+// resolveWires(factory, getWires());
+// for (Iterator<ModuleFragment> i = getModuleFragments().iterator(); i.hasNext();) {
+// ModuleFragment moduleFragment = i.next();
+// resolveWires(factory, ((org.osoa.sca.model.ModuleFragment) moduleFragment).getWires());
+// }
+ }
+
+// /**
+// * Resolve a target URI
+// *
+// * @param factory
+// * @param targetURIElement
+// */
+// private ConfiguredService resolveURIElement(AssemblyFactory factory, DataObject targetURIElement) {
+// Sequence sequence = targetURIElement.getSequence(0);
+// String targetURI = (String) sequence.getValue(0);
+// ServiceURI serviceURI = factory.createServiceURI(null, targetURI);
+// ConfiguredService configuredService = getConfiguredService(serviceURI);
+// if (configuredService == null) {
+// // FIXME shouldn't we be throwing an exception here
+// // log.error("Cannot find service for " + targetURI);
+// }
+// return configuredService;
+// }
+//
+// /**
+// * Resolve the given wires
+// *
+// * @param factory
+// * @param wires
+// */
+// private void resolveWires(AssemblyFactory factory, List<ModuleWire> wires) {
+//
+// // Loop through the wires
+// for (Iterator<ModuleWire> i = wires.iterator(); i.hasNext();) {
+// ModuleWire wire = i.next();
+//
+// // Get the source reference
+// ServiceURI sourceURI = factory.createServiceURI(null, wire.getSourceUri());
+// ConfiguredReference configuredReference = null;
+// String partName = sourceURI.getPartName();
+// String referenceName = sourceURI.getServiceName();
+// if (referenceName != null) {
+// Component component = getComponent(partName);
+// if (component != null) {
+// configuredReference = component.getConfiguredReference(referenceName);
+// }
+// } else {
+// EntryPoint entryPoint = getEntryPoint(partName);
+// if (entryPoint != null) {
+// configuredReference = entryPoint.getConfiguredReference();
+// }
+// }
+// if (configuredReference == null) {
+// // FIXME shouldn't we be throwing an exception here
+// // log.error("Cannot find wire source " + sourceURI);
+// } else {
+//
+// // Resolve the target service endpoint
+// ServiceURI targetURI = factory.createServiceURI(null, wire.getTargetUri());
+// ConfiguredService configuredService = getConfiguredService(targetURI);
+// if (configuredService != null) {
+//
+// // Wire the reference to the target
+// if (configuredReference.getReference().isMultiplicityN()) {
+// configuredReference.getTargetConfiguredServices().add(configuredService);
+// } else {
+// configuredReference.getTargetConfiguredServices().clear();
+// configuredReference.getTargetConfiguredServices().add(configuredService);
+// }
+// } else {
+// // FIXME shouldn't we be throwing an exception here
+// // log.error("Cannot find service for " + targetURI.getAddress());
+// }
+// }
+// }
+// }
/**
* @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
*/
public void freeze() {
+ if (isFrozen())
+ return;
+ super.freeze();
+
+ // Freeze component type and module fragments
+ if (componentType!=null)
+ componentType.freeze();
+ moduleFragments=Collections.unmodifiableList(moduleFragments);
+ freeze(moduleFragments);
}
/**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
- */
- public boolean accept(AssemblyModelVisitor visitor) {
- return AssemblyModelVisitorHelperImpl.accept(this, visitor);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.ConfiguredRuntimeObject#getRuntimeConfiguration()
+ * @see org.apache.tuscany.model.assembly.RuntimeConfigurationHolder#getRuntimeConfiguration()
*/
public Object getRuntimeConfiguration() {
return runtimeConfiguration;
}
/**
- * @see org.apache.tuscany.model.assembly.ConfiguredRuntimeObject#setRuntimeConfiguration(java.lang.Object)
+ * @see org.apache.tuscany.model.assembly.RuntimeConfigurationHolder#setRuntimeConfiguration(java.lang.Object)
*/
public void setRuntimeConfiguration(Object configuration) {
+ checkNotFrozen();
this.runtimeConfiguration = configuration;
}
/**
- * @see org.apache.tuscany.model.assembly.ComponentType#getProperties()
- */
- public List<org.apache.tuscany.model.assembly.Property> getProperties() {
- return componentType.getProperties();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.ComponentType#getProperty(java.lang.String)
- */
- public org.apache.tuscany.model.assembly.Property getProperty(String name) {
- return componentType.getProperty(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.ComponentType#getReference(java.lang.String)
+ * @see org.apache.tuscany.model.assembly.impl.AggregateImpl#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
*/
- public Reference getReference(String name) {
- return componentType.getReference(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.ComponentType#getReferences()
- */
- public List<Reference> getReferences() {
- return componentType.getReferences();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.ComponentType#getService(java.lang.String)
- */
- public Service getService(String name) {
- return componentType.getService(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.ComponentType#getServices()
- */
- public List<Service> getServices() {
- return componentType.getServices();
+ public boolean accept(AssemblyModelVisitor visitor) {
+ if (!super.accept(visitor))
+ return false;
+
+ if (componentType!=null) {
+ if (!componentType.accept(visitor))
+ return false;
+ }
+
+ if (!accept(moduleFragments, visitor))
+ return false;
+
+ return true;
}
-
-} //ModuleImpl
+
+}
Added: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java?rev=379374&view=auto
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java (added)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java Mon Feb 20 22:41:58 2006
@@ -0,0 +1,106 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.model.assembly.impl;
+
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
+import org.apache.tuscany.model.assembly.Port;
+import org.apache.tuscany.model.assembly.ServiceContract;
+
+/**
+ * An implementation of Port.
+ */
+public abstract class PortImpl extends AssemblyModelObjectImpl implements Port {
+
+ private ServiceContract serviceContract;
+ private String name;
+
+ /**
+ * Constructor
+ */
+ protected PortImpl() {
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.Port#getName()
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.Port#setName(java.lang.String)
+ */
+ public void setName(String value) {
+ checkNotFrozen();
+ name=value;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.Port#getServiceContract()
+ */
+ public ServiceContract getServiceContract() {
+ return serviceContract;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.Port#setServiceContract(org.apache.tuscany.model.assembly.ServiceContract)
+ */
+ public void setServiceContract(ServiceContract value) {
+ checkNotFrozen();
+ serviceContract=value;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.impl.AssemblyModelObjectImpl#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
+ */
+ public void initialize(AssemblyModelContext modelContext) {
+ if (isInitialized())
+ return;
+ super.initialize(modelContext);
+
+ if (serviceContract!=null)
+ serviceContract.initialize(modelContext);
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.impl.AssemblyModelObjectImpl#freeze()
+ */
+ public void freeze() {
+ if (isFrozen())
+ return;
+ super.freeze();
+
+ if (serviceContract!=null)
+ serviceContract.freeze();
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.impl.AssemblyModelObjectImpl#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
+ */
+ public boolean accept(AssemblyModelVisitor visitor) {
+ if (!super.accept(visitor))
+ return false;
+
+ if (serviceContract!=null) {
+ if (!serviceContract.accept(visitor))
+ return false;
+ }
+
+ return true;
+ }
+}
Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PortImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PropertyImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PropertyImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PropertyImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/PropertyImpl.java Mon Feb 20 22:41:58 2006
@@ -16,14 +16,19 @@
*/
package org.apache.tuscany.model.assembly.impl;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
import org.apache.tuscany.model.assembly.Property;
/**
- * An implementation of the model object '<em><b>Property</b></em>'.
+ * An implementation of Property.
*/
-public class PropertyImpl extends org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl implements Property {
+public class PropertyImpl extends ExtensibleImpl implements Property {
+
+ private Object defaultValue;
+ private String name;
+ private boolean many;
+ private boolean required;
+ private Class type;
+
/**
* Constructor
*/
@@ -31,89 +36,77 @@
}
/**
- * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#getName()
+ * @see org.apache.tuscany.model.assembly.Property#getDefaultValue()
*/
- public String getName() {
- return super.getName();
+ public Object getDefaultValue() {
+ return defaultValue;
}
/**
- * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#setName(java.lang.String)
+ * @see org.apache.tuscany.model.assembly.Property#getName()
*/
- public void setName(String newName) {
- super.setName(newName);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#getDefault()
- */
- public String getDefault() {
- return super.getDefault();
+ public String getName() {
+ return name;
}
/**
- * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#setDefault(java.lang.String)
+ * @see org.apache.tuscany.model.assembly.Property#getType()
*/
- public void setDefault(String newDefault) {
- super.setDefault(newDefault);
+ public Class getType() {
+ return type;
}
/**
- * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#isMany()
+ * @see org.apache.tuscany.model.assembly.Property#isMany()
*/
public boolean isMany() {
- return super.isMany();
+ return many;
}
/**
- * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#setMany(boolean)
- */
- public void setMany(boolean newMany) {
- super.setMany(newMany);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#isRequired()
+ * @see org.apache.tuscany.model.assembly.Property#isRequired()
*/
public boolean isRequired() {
- return super.isRequired();
+ return required;
}
/**
- * @see org.apache.tuscany.model.assembly.sdo.impl.PropertyImpl#setRequired(boolean)
+ * @see org.apache.tuscany.model.assembly.Property#setDefaultValue(java.lang.Object)
*/
- public void setRequired(boolean newRequired) {
- super.setRequired(newRequired);
+ public void setDefaultValue(Object value) {
+ defaultValue=value;
}
/**
- * @see org.apache.tuscany.model.assembly.Property#getType_()
+ * @see org.apache.tuscany.model.assembly.Property#setMany(boolean)
*/
- public Object getType_() {
- return super.getType_();
- }
-
- public void setType(Object value) {
- super.setType(value);
+ public void setMany(boolean value) {
+ checkNotFrozen();
+ many=value;
}
/**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
+ * @see org.apache.tuscany.model.assembly.Property#setName(java.lang.String)
*/
- public void initialize(AssemblyModelContext modelContext) {
+ public void setName(String value) {
+ checkNotFrozen();
+ name=value;
}
/**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
+ * @see org.apache.tuscany.model.assembly.Property#setRequired(boolean)
*/
- public void freeze() {
+ public void setRequired(boolean value) {
+ checkNotFrozen();
+ required=value;
}
/**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
+ * @see org.apache.tuscany.model.assembly.Property#setType(java.lang.Class)
*/
- public boolean accept(AssemblyModelVisitor visitor) {
- return AssemblyModelVisitorHelperImpl.accept(this, visitor);
+ public void setType(Class value) {
+ checkNotFrozen();
+ type=value;
}
-
-} //PropertyImpl
+
+}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ReferenceImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ReferenceImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ReferenceImpl.java Mon Feb 20 22:41:58 2006
@@ -16,92 +16,35 @@
*/
package org.apache.tuscany.model.assembly.impl;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.Interface;
+import org.apache.tuscany.model.assembly.Multiplicity;
import org.apache.tuscany.model.assembly.Reference;
/**
- * An implementation of the model object '<em><b>Reference</b></em>'.
+ * An implementation of Reference.
*/
-public class ReferenceImpl extends org.apache.tuscany.model.assembly.sdo.impl.ReferenceImpl implements Reference {
+public class ReferenceImpl extends PortImpl implements Reference {
+
+ private Multiplicity multiplicity;
+
/**
* Constructor
*/
protected ReferenceImpl() {
}
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ReferenceImpl#getName()
- */
- public String getName() {
- return super.getName();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ReferenceImpl#setName(java.lang.String)
- */
- public void setName(String newName) {
- super.setName(newName);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ReferenceImpl#getMultiplicity()
- */
- public String getMultiplicity() {
- return super.getMultiplicity();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ReferenceImpl#setMultiplicity(java.lang.String)
- */
- public void setMultiplicity(String newMultiplicity) {
- super.setMultiplicity(newMultiplicity);
- }
-
+
/**
- * @see org.apache.tuscany.model.assembly.Reference#isMultiplicityN()
+ * @see org.apache.tuscany.model.assembly.Reference#getMultiplicity()
*/
- public boolean isMultiplicityN() {
- String multiplicity = super.getMultiplicity();
- return "0..n".equals(multiplicity) || "1..n".equals(multiplicity);
+ public Multiplicity getMultiplicity() {
+ return multiplicity;
}
-
- /**
- * @see org.apache.tuscany.model.assembly.Port#getInterfaceContract()
- */
- public Interface getInterfaceContract() {
- return (Interface) super.getInterface();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Port#setInterfaceContract(org.apache.tuscany.model.assembly.Interface)
- */
- public void setInterfaceContract(Interface value) {
- super.setInterface((org.osoa.sca.model.Interface) value);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
- */
- public void initialize(AssemblyModelContext modelContext) {
- // Initialize the interface
- Interface iface = getInterfaceContract();
- if (iface != null)
- iface.initialize(modelContext);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
- */
- public void freeze() {
- }
-
+
/**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
+ * @see org.apache.tuscany.model.assembly.Reference#setMultiplicity(org.apache.tuscany.model.assembly.Multiplicity)
*/
- public boolean accept(AssemblyModelVisitor visitor) {
- return AssemblyModelVisitorHelperImpl.accept(this, visitor);
+ public void setMultiplicity(Multiplicity multiplicity) {
+ checkNotFrozen();
+ this.multiplicity=multiplicity;
}
-} //ReferenceImpl
+}
Added: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java?rev=379374&view=auto
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java (added)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java Mon Feb 20 22:41:58 2006
@@ -0,0 +1,81 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.model.assembly.impl;
+
+import org.apache.tuscany.model.assembly.Scope;
+import org.apache.tuscany.model.assembly.ServiceContract;
+
+/**
+ * An implementation of ServiceContract.
+ */
+public class ServiceContractImpl extends ExtensibleImpl implements ServiceContract {
+
+ private Class interface_;
+ private Class callbackInterface;
+ private Scope scope;
+
+ /**
+ * Constructor
+ */
+ protected ServiceContractImpl() {
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.ServiceContract#getCallbackInterface()
+ */
+ public Class getCallbackInterface() {
+ return callbackInterface;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.ServiceContract#getInterface()
+ */
+ public Class getInterface() {
+ return interface_;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.ServiceContract#getScope()
+ */
+ public Scope getScope() {
+ return scope;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.ServiceContract#setCallbackInterface(java.lang.Class)
+ */
+ public void setCallbackInterface(Class value) {
+ checkNotFrozen();
+ callbackInterface=value;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.ServiceContract#setInterface(java.lang.Class)
+ */
+ public void setInterface(Class value) {
+ checkNotFrozen();
+ interface_=value;
+ }
+
+ /**
+ * @see org.apache.tuscany.model.assembly.ServiceContract#setScope(org.apache.tuscany.model.assembly.Scope)
+ */
+ public void setScope(Scope scope) {
+ checkNotFrozen();
+ this.scope=scope;
+ }
+}
Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceContractImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceImpl.java Mon Feb 20 22:41:58 2006
@@ -16,69 +16,17 @@
*/
package org.apache.tuscany.model.assembly.impl;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.Interface;
import org.apache.tuscany.model.assembly.Service;
/**
- * An implementation of the model object '<em><b>Service</b></em>'.
+ * An implementation of Service.
*/
-public class ServiceImpl extends org.apache.tuscany.model.assembly.sdo.impl.ServiceImpl implements Service {
+public class ServiceImpl extends PortImpl implements Service {
+
/**
* Constructor
*/
protected ServiceImpl() {
}
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ServiceImpl#getName()
- */
- public String getName() {
- return super.getName();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ServiceImpl#setName(java.lang.String)
- */
- public void setName(String newName) {
- super.setName(newName);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Port#getInterfaceContract()
- */
- public Interface getInterfaceContract() {
- return (Interface) getInterface();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Port#setInterfaceContract(org.apache.tuscany.model.assembly.Interface)
- */
- public void setInterfaceContract(Interface value) {
- setInterface((org.osoa.sca.model.Interface) value);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
- */
- public void initialize(AssemblyModelContext modelContext) {
- Interface iface = getInterfaceContract();
- if (iface != null)
- iface.initialize(modelContext);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
- */
- public void freeze() {
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
- */
- public boolean accept(AssemblyModelVisitor visitor) {
- return AssemblyModelVisitorHelperImpl.accept(this, visitor);
- }
-
-} //ServiceImpl
+}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java Mon Feb 20 22:41:58 2006
@@ -22,11 +22,12 @@
import org.apache.tuscany.model.assembly.ConfiguredReference;
import org.apache.tuscany.model.assembly.ConfiguredService;
import org.apache.tuscany.model.assembly.ModuleComponent;
-import org.apache.tuscany.model.assembly.Part;
+import org.apache.tuscany.model.assembly.AggregatePart;
import org.apache.tuscany.model.assembly.Service;
import org.apache.tuscany.model.assembly.ServiceURI;
/**
+ * An implementation of ServiceURI.
*/
public class ServiceURIImpl implements ServiceURI {
@@ -48,29 +49,29 @@
* Constructor
*
* @param moduleComponent
- * @param portEndpoint
+ * @param configuredPort
*/
- protected ServiceURIImpl(ModuleComponent moduleComponent, ConfiguredPort portEndpoint) {
+ protected ServiceURIImpl(ModuleComponent moduleComponent, ConfiguredPort configuredPort) {
if (moduleComponent != null)
moduleComponentName = moduleComponent.getName();
else
moduleComponentName = "";
- if (portEndpoint instanceof ConfiguredService) {
- ConfiguredService serviceEndpoint = (ConfiguredService) portEndpoint;
- partName = serviceEndpoint.getPart().getName();
- Service service = serviceEndpoint.getService();
+ if (configuredPort instanceof ConfiguredService) {
+ ConfiguredService configuredService = (ConfiguredService) configuredPort;
+ partName = configuredService.getAggregatePart().getName();
+ Service service = configuredService.getService();
if (service != null) {
- serviceName = serviceEndpoint.getService().getName();
+ serviceName = configuredService.getService().getName();
address = "sca:///" + moduleComponentName + '/' + partName + '/' + serviceName;
} else {
address = "sca:///" + moduleComponentName + '/' + partName;
}
- } else if (portEndpoint instanceof ConfiguredReference) {
- ConfiguredReference referenceValue = (ConfiguredReference) portEndpoint;
- Part part = referenceValue.getPart();
+ } else if (configuredPort instanceof ConfiguredReference) {
+ ConfiguredReference configuredReference = (ConfiguredReference) configuredPort;
+ AggregatePart part = configuredReference.getAggregatePart();
partName = part.getName();
- serviceName = "reference." + referenceValue.getReference().getName();
+ serviceName = "reference." + configuredReference.getReference().getName();
address = "sca:///" + moduleComponentName + '/' + partName + '/' + serviceName;
}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SimpleComponentImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SimpleComponentImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SimpleComponentImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SimpleComponentImpl.java Mon Feb 20 22:41:58 2006
@@ -16,40 +16,12 @@
*/
package org.apache.tuscany.model.assembly.impl;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import commonj.sdo.DataObject;
-import commonj.sdo.Sequence;
-import org.osoa.sca.model.Implementation;
-
-import org.apache.tuscany.model.assembly.Aggregate;
-import org.apache.tuscany.model.assembly.AssemblyFactory;
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.ComponentImplementation;
-import org.apache.tuscany.model.assembly.ConfiguredProperty;
-import org.apache.tuscany.model.assembly.ConfiguredReference;
-import org.apache.tuscany.model.assembly.ConfiguredService;
-import org.apache.tuscany.model.assembly.Property;
-import org.apache.tuscany.model.assembly.Reference;
-import org.apache.tuscany.model.assembly.Service;
import org.apache.tuscany.model.assembly.SimpleComponent;
-import org.apache.tuscany.model.assembly.sdo.impl.ComponentImpl;
/**
- * An implementation of the model object '<em><b>Component</b></em>'.
+ * An implementation of SimpleComponent.
*/
public class SimpleComponentImpl extends ComponentImpl implements SimpleComponent {
- private List<ConfiguredReference> configuredReferences;
- private Map<String, ConfiguredReference> configuredReferencesMap;
- private List<ConfiguredService> configuredServices;
- private Map<String, ConfiguredService> configuredServicesMap;
- private List<ConfiguredProperty> configuredProperties;
- private Map<String, ConfiguredProperty> configuredPropertiesMap;
/**
* Constructor
@@ -57,171 +29,4 @@
protected SimpleComponentImpl() {
}
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ComponentImpl#getName()
- */
- public String getName() {
- return super.getName();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.ComponentImpl#setName(java.lang.String)
- */
- public void setName(String newName) {
- super.setName(newName);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getComponentImplementation()
- */
- public ComponentImplementation getComponentImplementation() {
- return (ComponentImplementation) super.getImplementation();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#setComponentImplementation(org.apache.tuscany.model.assembly.ComponentImplementation)
- */
- public void setComponentImplementation(ComponentImplementation value) {
- super.setImplementation((Implementation) value);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Part#getAggregate()
- */
- public Aggregate getAggregate() {
- return (Aggregate) super.getContainer();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredServices()
- */
- public List<ConfiguredService> getConfiguredServices() {
- return configuredServices;
- }
-
- public ConfiguredService getConfiguredService(String name) {
- return configuredServicesMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredReferences()
- */
- public List<ConfiguredReference> getConfiguredReferences() {
- return configuredReferences;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredReference(java.lang.String)
- */
- public ConfiguredReference getConfiguredReference(String name) {
- return configuredReferencesMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredProperties()
- */
- public List<ConfiguredProperty> getConfiguredProperties() {
- return configuredProperties;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Component#getConfiguredProperty(java.lang.String)
- */
- public ConfiguredProperty getConfiguredProperty(String name) {
- return configuredPropertiesMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
- */
- public void initialize(AssemblyModelContext modelContext) {
- AssemblyFactory factory = modelContext.getAssemblyFactory();
-
- // Initialize the implementation
- ComponentImplementation implementation = getComponentImplementation();
- if (implementation != null) {
- implementation.initialize(modelContext);
- }
-
- // Derive the service endpoints from the services on the component type
- configuredServices = new ArrayList<ConfiguredService>();
- configuredServicesMap = new HashMap<String, ConfiguredService>();
- configuredReferences = new ArrayList<ConfiguredReference>();
- configuredReferencesMap = new HashMap<String, ConfiguredReference>();
- configuredProperties = new ArrayList<ConfiguredProperty>();
- configuredPropertiesMap = new HashMap<String, ConfiguredProperty>();
- if (implementation != null) {
- for (Iterator<Service> i = implementation.getServices().iterator(); i.hasNext();) {
- Service service = i.next();
- ConfiguredService serviceEndpoint = factory.createConfiguredService();
- serviceEndpoint.setPort(service);
- serviceEndpoint.setPart(this);
- configuredServices.add(serviceEndpoint);
- configuredServicesMap.put(service.getName(), serviceEndpoint);
- serviceEndpoint.initialize(modelContext);
- }
-
- // Derive the reference values from the references on the component type
- for (Iterator<Reference> i = implementation.getReferences().iterator(); i.hasNext();) {
- Reference reference = i.next();
- ConfiguredReference referenceValue = factory.createConfiguredReference();
- referenceValue.setPort(reference);
- referenceValue.setPart(this);
- configuredReferences.add(referenceValue);
- configuredReferencesMap.put(reference.getName(), referenceValue);
- referenceValue.initialize(modelContext);
- }
-
- // Populate property values map
- if (super.getPropertyValues() != null) {
- Sequence sequence = super.getPropertyValues().getAny();
- for (int p = 0, n = sequence.size(); p < n; p++) {
-
- // Get each property value element
- commonj.sdo.Property propertyElementDef = sequence.getProperty(p);
- DataObject propertyElement = (DataObject) sequence.getValue(p);
-
- // Get the corresponding property definition
- String propertyName = propertyElementDef.getName();
- Property property = implementation.getProperty(propertyName);
- if (property == null) {
- throw new IllegalArgumentException("Undefined property " + propertyName);
- }
-
- // Create a property value object
- ConfiguredProperty propertyValue = factory.createConfiguredProperty();
- propertyValue.setComponent(this);
- propertyValue.setProperty(property);
-
- // Get the property value text and convert to the expected java type
- Sequence text = propertyElement.getSequence(0);
- if (text != null && text.size() != 0) {
- Object rawValue = text.getValue(0);
- propertyValue.setValue(rawValue);
- }
-
- // Add the property value object to the map
- configuredProperties.add(propertyValue);
- configuredPropertiesMap.put(propertyName, propertyValue);
- }
- }
- } else {
- // FIXME shouldn't we be throwing an exception here
- // log.error("Component " + getName() + " has no implementation");
- }
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
- */
- public void freeze() {
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
- */
- public boolean accept(AssemblyModelVisitor visitor) {
- return AssemblyModelVisitorHelperImpl.accept(this, visitor);
- }
-
-} //ComponentImpl
+}
Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SubsystemImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SubsystemImpl.java?rev=379374&r1=379373&r2=379374&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SubsystemImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/SubsystemImpl.java Mon Feb 20 22:41:58 2006
@@ -16,30 +16,14 @@
*/
package org.apache.tuscany.model.assembly.impl;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tuscany.model.assembly.AssemblyModelContext;
-import org.apache.tuscany.model.assembly.AssemblyModelVisitor;
-import org.apache.tuscany.model.assembly.Component;
-import org.apache.tuscany.model.assembly.ConfiguredService;
-import org.apache.tuscany.model.assembly.EntryPoint;
-import org.apache.tuscany.model.assembly.ExternalService;
-import org.apache.tuscany.model.assembly.Part;
-import org.apache.tuscany.model.assembly.ServiceURI;
import org.apache.tuscany.model.assembly.Subsystem;
/**
- * An implementation of the model object '<em><b>Subsystem</b></em>'.
+ * An implementation of Subsystem.
*/
-public class SubsystemImpl extends org.apache.tuscany.model.assembly.sdo.impl.SubsystemImpl implements Subsystem {
- private Map<String, Component> componentsMap;
- private Map<String, EntryPoint> entryPointsMap; // FIXME this is never initialized
- private Map<String, ExternalService> externalServicesMap; // FIXME this is never initialized
- private List<Part> parts;
+public class SubsystemImpl extends AggregateImpl implements Subsystem {
+
+ private String uri;
/**
* Constructor
@@ -48,127 +32,18 @@
}
/**
- * @see org.apache.tuscany.model.assembly.sdo.impl.SubsystemImpl#getName()
- */
- public String getName() {
- return super.getName();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.sdo.impl.SubsystemImpl#setName(java.lang.String)
- */
- public void setName(String newName) {
- super.setName(newName);
- }
-
- /**
* @see org.apache.tuscany.model.assembly.Subsystem#getURI()
*/
public String getURI() {
- return super.getUri();
+ return uri;
}
/**
* @see org.apache.tuscany.model.assembly.Subsystem#setURI(java.lang.String)
*/
public void setURI(String value) {
- super.setUri(value);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getComponents()
- */
- public List<Component> getComponents() {
- return super.getModuleComponents();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getComponent(java.lang.String)
- */
- public Component getComponent(String name) {
- return componentsMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoints()
- */
- public List<EntryPoint> getEntryPoints() {
- return super.getEntryPoints();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getEntryPoint(java.lang.String)
- */
- public EntryPoint getEntryPoint(String name) {
- return entryPointsMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getExternalServices()
- */
- public List<ExternalService> getExternalServices() {
- return super.getExternalServices();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getExternalService(java.lang.String)
- */
- public ExternalService getExternalService(String name) {
- return externalServicesMap.get(name);
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getParts()
- */
- public List<Part> getParts() {
- return parts;
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.Aggregate#getConfiguredService(org.apache.tuscany.model.assembly.ServiceURI)
- */
- public ConfiguredService getConfiguredService(ServiceURI address) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
- */
- public void initialize(AssemblyModelContext modelContext) {
- // Populate components, entry points and external services
- componentsMap = new HashMap<String, Component>();
- for (Iterator<Component> i = getComponents().iterator(); i.hasNext();) {
- Component component = i.next();
- componentsMap.put(component.getName(), component);
- component.initialize(modelContext);
- }
- for (Iterator<EntryPoint> i = getEntryPoints().iterator(); i.hasNext();) {
- EntryPoint entryPoint = i.next();
- entryPointsMap.put(entryPoint.getName(), entryPoint);
- entryPoint.initialize(modelContext);
- }
- for (Iterator<ExternalService> i = getExternalServices().iterator(); i.hasNext();) {
- ExternalService externalService = i.next();
- externalServicesMap.put(externalService.getName(), externalService);
- externalService.initialize(modelContext);
- }
- parts = new ArrayList<Part>();
- parts.addAll(getEntryPoints());
- parts.addAll(getComponents());
- parts.addAll(getExternalServices());
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#freeze()
- */
- public void freeze() {
- }
-
- /**
- * @see org.apache.tuscany.model.assembly.AssemblyModelObject#accept(org.apache.tuscany.model.assembly.AssemblyModelVisitor)
- */
- public boolean accept(AssemblyModelVisitor visitor) {
- return AssemblyModelVisitorHelperImpl.accept(this, visitor);
+ checkNotFrozen();
+ uri=value;
}
-} //SubsystemImpl
+}