Skip to content
Snippets Groups Projects
Commit 74423c63 authored by Simon Spinner's avatar Simon Spinner
Browse files

Exchanges definitions in ApplicationScope.

parent 497c31e2
No related branches found
No related tags found
No related merge requests found
......@@ -4,7 +4,13 @@ import java.util.List;
import org.eclipse.emf.ecore.resource.Resource;
import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ControlFlowVariable;
import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.InfluencingParameter;
import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.AssemblyContext;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.BasicComponent;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.ComposedProvidingRequiringEntity;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.Interface;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.InterfaceProvidingRole;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.InterfaceRequiringRole;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.ProvidingDelegationConnector;
......@@ -12,10 +18,13 @@ import edu.kit.ipd.descartes.mm.applicationlevel.repository.Repository;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.RepositoryFactory;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.RequiringDelegationConnector;
import edu.kit.ipd.descartes.mm.applicationlevel.repository.SubSystem;
import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ResourceDemand;
import edu.kit.ipd.descartes.mm.applicationlevel.servicebehavior.ResponseTime;
import edu.kit.ipd.descartes.mm.applicationlevel.system.System;
import edu.kit.ipd.descartes.mm.deployment.Deployment;
import edu.kit.ipd.descartes.mm.deployment.DeploymentFactory;
import edu.kit.ipd.descartes.mm.resourcelandscape.DistributedDataCenter;
import edu.kit.ipd.descartes.mm.resourcelandscape.RuntimeEnvironment;
import edu.kit.ipd.descartes.mm.resourcetype.ResourceTypeRepository;
import edu.kit.ipd.descartes.mm.resourcetype.ResourcetypeFactory;
import tools.descartes.prisma.core.MessageBus;
......@@ -25,6 +34,7 @@ import tools.descartes.prisma.core.Transaction;
import tools.descartes.prisma.core.adapter.ModelSkeletonAdapter;
import tools.descartes.prisma.core.adapter.ObjectMatcher;
import tools.descartes.prisma.core.agent.AgentController;
import tools.descartes.prisma.model.sensor.Sensor;
import tools.descartes.prisma.model.skeleton.ModelSkeleton;
public class ApplicationScope extends AgentScope {
......@@ -51,6 +61,50 @@ public class ApplicationScope extends AgentScope {
return getName() + ".RuntimeEnvironment";
}
public String getInterfaceExchange() {
return getName() + ".Interface";
}
public String getBasicComponentExchange() {
return getName() + ".BasicComponent";
}
public String getComposedProvidingRequiringEntityExchange() {
return getName() + ".ComposedProvidingRequiringEntity";
}
public String getAssemblyContextExchange() {
return getName() + ".AssemblyContext";
}
public String getResponseTimeExchange() {
return getName() + ".ResponseTime";
}
public String getControlFlowVariableExchange() {
return getName() + ".ControlFlowVariable";
}
public String getResourceDemandExchange() {
return getName() + ".ResourceDemand";
}
public String getRelationshipExchange() {
return getName() + ".Relationship";
}
public String getInfluencingParameterExchange() {
return getName() + ".InfluencingParameter";
}
public String getApplicationSensorExchange() {
return getName() + ".ApplicationSensor";
}
public String getExternalComposedProvidingRequiringEntityExchange() {
return getName() + ".ExternalComposedProvidingRequiringEntity";
}
public Repository getComponentRepository() {
if (componentRepository == null) {
componentRepository = (Repository) getModelRepository().getResource(getComponentRepositoryPath()).getContents()
......@@ -258,7 +312,36 @@ public class ApplicationScope extends AgentScope {
protected void createMessageExchanges() {
super.createMessageExchanges();
getMessageBus().createExchange(getRuntimeEnvironmentExchange(), ExchangeType.TOPIC);
declareNotification(new NotificationDefinition(RuntimeEnvironment.class, getRuntimeEnvironmentExchange(),
ExchangeType.TOPIC));
declareNotification(new NotificationDefinition(Interface.class, getInterfaceExchange(), ExchangeType.TOPIC));
declareNotification(
new NotificationDefinition(BasicComponent.class, getBasicComponentExchange(), ExchangeType.TOPIC));
declareNotification(new NotificationDefinition(ComposedProvidingRequiringEntity.class,
getComposedProvidingRequiringEntityExchange(), ExchangeType.TOPIC));
declareNotification(
new NotificationDefinition(AssemblyContext.class, getAssemblyContextExchange(), ExchangeType.TOPIC));
declareNotification(
new NotificationDefinition(ResponseTime.class, getResponseTimeExchange(), ExchangeType.TOPIC));
declareNotification(new NotificationDefinition(ControlFlowVariable.class, getControlFlowVariableExchange(), ExchangeType.TOPIC));
declareNotification(
new NotificationDefinition(ResourceDemand.class, getResourceDemandExchange(), ExchangeType.TOPIC));
declareNotification(
new NotificationDefinition(Relationship.class, getRelationshipExchange(), ExchangeType.TOPIC));
declareNotification(new NotificationDefinition(InfluencingParameter.class, getResourceDemandExchange(),
ExchangeType.TOPIC));
declareNotification(
new NotificationDefinition(Sensor.class, getApplicationSensorExchange(), ExchangeType.TOPIC));
declareNotification(new NotificationDefinition(ComposedProvidingRequiringEntity.class,
getExternalComposedProvidingRequiringEntityExchange(), ExchangeType.DIRECT));
declareDelegation(getResponseTimeExchange());
declareDelegation(getControlFlowVariableExchange());
declareDelegation(getResourceDemandExchange());
declareDelegation(getInfluencingParameterExchange());
declareDelegation(getRelationshipExchange());
declareDelegation(getApplicationSensorExchange());
declareDelegation(getExternalComposedProvidingRequiringEntityExchange());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment