/** * */ package se.sics.kompics.ide.model.ast; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.jdt.core.dom.ASTNode; import se.sics.kompics.model.kompicsComponents.Handler; import se.sics.kompics.model.kompicsComponents.KompicsComponentsFactory; import se.sics.kompics.model.kompicsComponents.KompicsComponentsPackage; import se.sics.kompics.model.kompicsComponents.Port; import se.sics.kompics.model.kompicsComponents.Subscription; /** * The <code>ASTSubscription</code> . * * @author Lars Kroll <lkr@lars-kroll.com> * @version $Id: $ * */ public class ASTSubscription extends ASTModelObject { private KompicsComponentsFactory factory = KompicsComponentsFactory.eINSTANCE; private Subscription model; private ASTHandler handler; private ASTPort port; public ASTSubscription(String id, Subscription model, ASTNode node) { super(id, node, model.eClass()); this.model = model; } @Override public EObject getEObject() { return this.model; } public Subscription getModel() { return this.model; } public void setModel(Subscription model) { this.model = model; } /** * @return the handler */ public ASTHandler getHandler() { return handler; } /** * @param handler the handler to set */ public void setHandler(ASTHandler handler) { this.handler = handler; } /** * @return the port */ public ASTPort getPort() { return port; } /** * @param port the port to set */ public void setPort(ASTPort port) { this.port = port; } @Override public void addToModel(EObject obj, int environmentModifier) { int classifID = obj.eClass().getClassifierID(); if (classifID == KompicsComponentsPackage.PORT) { model.setPort((Port) obj); } else if (classifID == KompicsComponentsPackage.HANDLER) { model.setHandler((Handler) obj); } } ASTSubscription copy(ASTPort p) { Subscription s = factory.createSubscription(); s.setHandler(model.getHandler()); s.setPort(p.getModel()); String sID = "Subscription:(" + p.getId() + "," + handler.getId() + ")"; ASTSubscription asts = new ASTSubscription(sID, s, this.getNode()); asts.setHandler(handler); asts.setPort(p); asts.setBinding(getBinding()); asts.setLocationBinding(getLocationBinding()); return asts; } }