Просмотр исходного кода

removed dependencies to region / state

Andreas Mülder 12 лет назад
Родитель
Сommit
3b555ddd5d

+ 2 - 2
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/debugmodel/SCTDebugElement.java

@@ -17,8 +17,8 @@ import java.util.List;
 import org.eclipse.debug.core.model.DebugElement;
 import org.eclipse.debug.core.model.IDebugTarget;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.yakindu.base.base.NamedElement;
-import org.yakindu.sct.model.sgraph.Statechart;
 
 /**
  * 
@@ -46,7 +46,7 @@ public class SCTDebugElement extends DebugElement {
 		List<String> qfnFragments = new ArrayList<String>();
 		qfnFragments.add(element.getName());
 		EObject current = element;
-		while (!(current.eContainer() instanceof Statechart)) {
+		while (!(current.eContainer() != EcoreUtil.getRootContainer(current))) {
 			current = current.eContainer();
 			if (current instanceof NamedElement) {
 				String name = ((NamedElement) current).getName();

+ 2 - 2
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/debugmodel/SCTDebugTarget.java

@@ -101,7 +101,7 @@ public class SCTDebugTarget extends SCTDebugElement implements IDebugTarget {
 		Iterator<SCTDebugThread> iterator = threads.iterator();
 		while (iterator.hasNext()) {
 			SCTDebugThread next = iterator.next();
-			if (!activeRegions.contains(next.getRegion())) {
+			if (!activeRegions.contains(next.getElement())) {
 				iterator.remove();
 			}
 		}
@@ -109,7 +109,7 @@ public class SCTDebugTarget extends SCTDebugElement implements IDebugTarget {
 		for (Region region : activeRegions) {
 			boolean found = false;
 			for (SCTDebugThread thread : threads) {
-				if (thread.getRegion() == region) {
+				if (thread.getElement() == region) {
 					found = true;
 				}
 			}

+ 15 - 12
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/debugmodel/SCTDebugThread.java

@@ -19,7 +19,7 @@ import org.eclipse.debug.core.model.IBreakpoint;
 import org.eclipse.debug.core.model.IStackFrame;
 import org.eclipse.debug.core.model.IThread;
 import org.eclipse.emf.ecore.EObject;
-import org.yakindu.sct.model.sgraph.Region;
+import org.yakindu.base.base.NamedElement;
 import org.yakindu.sct.model.sgraph.RegularState;
 import org.yakindu.sct.model.sgraph.Vertex;
 import org.yakindu.sct.simulation.core.engine.ISimulationEngine;
@@ -31,16 +31,19 @@ import org.yakindu.sct.simulation.core.engine.ISimulationEngine;
  */
 public class SCTDebugThread extends SCTDebugElement implements IThread {
 
-	private final Region region;
-	private List<SCTStackFrame> stateStack;
+	private final NamedElement element;
+	protected List<SCTStackFrame> stateStack;
 	private Vertex lastActiveState;
 	private ISimulationEngine container;
 
-	public SCTDebugThread(SCTDebugTarget target, ISimulationEngine container, String resourceString, Region region) {
+	public SCTDebugThread(SCTDebugTarget target, ISimulationEngine container, String resourceString,
+			NamedElement element) {
 		super(target, resourceString);
-		Assert.isNotNull(region);
+		Assert.isNotNull(element);
 		this.container = container;
-		this.region = region;
+		this.element = element;
+		// TODO
+		stateStack = new ArrayList<SCTStackFrame>();
 	}
 
 	public int getPriority() throws DebugException {
@@ -51,7 +54,7 @@ public class SCTDebugThread extends SCTDebugElement implements IThread {
 		List<RegularState> activeLeafStates = container.getExecutionContext().getActiveStates();
 		Vertex activeState = null;
 		for (Vertex vertex : activeLeafStates) {
-			if (vertex.getParentRegion() == region) {
+			if (vertex.getParentRegion() == element) {
 				activeState = vertex;
 				break;
 			}
@@ -76,7 +79,7 @@ public class SCTDebugThread extends SCTDebugElement implements IThread {
 	}
 
 	public String getName() throws DebugException {
-		return fullQfn(region);
+		return fullQfn(element);
 	}
 
 	public IBreakpoint[] getBreakpoints() {
@@ -146,10 +149,10 @@ public class SCTDebugThread extends SCTDebugElement implements IThread {
 	}
 
 	public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
-		if(adapter == ISimulationEngine.class)
+		if (adapter == ISimulationEngine.class)
 			return container;
 		if (adapter == EObject.class)
-			return region;
+			return element;
 		return super.getAdapter(adapter);
 	}
 
@@ -157,8 +160,8 @@ public class SCTDebugThread extends SCTDebugElement implements IThread {
 		return (SCTDebugTarget) super.getDebugTarget();
 	}
 
-	public Region getRegion() {
-		return region;
+	public NamedElement getElement() {
+		return element;
 	}
 
 }

+ 9 - 10
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/debugmodel/SCTStackFrame.java

@@ -17,7 +17,7 @@ import org.eclipse.debug.core.model.IRegisterGroup;
 import org.eclipse.debug.core.model.IStackFrame;
 import org.eclipse.debug.core.model.IVariable;
 import org.eclipse.emf.ecore.EObject;
-import org.yakindu.sct.model.sgraph.Vertex;
+import org.yakindu.base.base.NamedElement;
 
 /**
  * 
@@ -27,13 +27,12 @@ import org.yakindu.sct.model.sgraph.Vertex;
 public class SCTStackFrame extends SCTDebugElement implements IStackFrame {
 
 	private final SCTDebugThread thread;
-	// the active state that is entered
-	private final Vertex state;
+	private final NamedElement element;
 
-	public SCTStackFrame(SCTDebugThread thread, Vertex state, String resourceString) {
+	public SCTStackFrame(SCTDebugThread thread, NamedElement element, String resourceString) {
 		super(thread.getDebugTarget(), resourceString);
 		this.thread = thread;
-		this.state = state;
+		this.element = element;
 	}
 
 	public String getModelIdentifier() {
@@ -129,7 +128,7 @@ public class SCTStackFrame extends SCTDebugElement implements IStackFrame {
 	}
 
 	public String getName() throws DebugException {
-		return fullQfn(state);
+		return fullQfn(element);
 
 	}
 
@@ -150,17 +149,17 @@ public class SCTStackFrame extends SCTDebugElement implements IStackFrame {
 	}
 
 	public String getResourceString() {
-		return state.eResource().getURI().toPlatformString(true);
+		return element.eResource().getURI().toPlatformString(true);
 	}
 
 	public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) {
 		if (adapter == EObject.class)
-			return state;
+			return element;
 		return super.getAdapter(adapter);
 	}
 
-	public Vertex getState() {
-		return state;
+	public NamedElement getState() {
+		return element;
 	}
 
 }