|
|
@@ -20,17 +20,24 @@ import org.eclipse.emf.ecore.EClass;
|
|
|
import org.eclipse.emf.ecore.InternalEObject;
|
|
|
import org.eclipse.emf.ecore.impl.ENotificationImpl;
|
|
|
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
|
|
|
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
|
|
|
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
|
|
|
+import org.eclipse.emf.ecore.util.EcoreUtil;
|
|
|
import org.eclipse.emf.ecore.util.InternalEList;
|
|
|
+import org.yakindu.sct.model.sgraph.NamedElement;
|
|
|
import org.yakindu.sct.model.sgraph.Declaration;
|
|
|
import org.yakindu.sct.model.sgraph.ExpressionElement;
|
|
|
import org.yakindu.sct.model.sgraph.Reaction;
|
|
|
import org.yakindu.sct.model.sgraph.ReactiveElement;
|
|
|
import org.yakindu.sct.model.sgraph.Region;
|
|
|
+import org.yakindu.sct.model.sgraph.RegularState;
|
|
|
import org.yakindu.sct.model.sgraph.SGraphPackage;
|
|
|
import org.yakindu.sct.model.sgraph.Scope;
|
|
|
import org.yakindu.sct.model.sgraph.ScopedElement;
|
|
|
import org.yakindu.sct.model.sgraph.State;
|
|
|
import org.yakindu.sct.model.sgraph.Statechart;
|
|
|
+import org.yakindu.sct.model.sgraph.Transition;
|
|
|
+import org.yakindu.sct.model.sgraph.Vertex;
|
|
|
|
|
|
/**
|
|
|
* <!-- begin-user-doc --> An implementation of the model object '
|
|
|
@@ -38,11 +45,14 @@ import org.yakindu.sct.model.sgraph.Statechart;
|
|
|
* <p>
|
|
|
* The following features are implemented:
|
|
|
* <ul>
|
|
|
- * <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getExpression <em>Expression</em>}</li>
|
|
|
* <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getReactions <em>Reactions</em>}</li>
|
|
|
* <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getLocalReactions <em>Local Reactions</em>}</li>
|
|
|
* <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getScopes <em>Scopes</em>}</li>
|
|
|
* <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getNamespace <em>Namespace</em>}</li>
|
|
|
+ * <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getName <em>Name</em>}</li>
|
|
|
+ * <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getParentRegion <em>Parent Region</em>}</li>
|
|
|
+ * <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getIncomingTransitions <em>Incoming Transitions</em>}</li>
|
|
|
+ * <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getOutgoingTransitions <em>Outgoing Transitions</em>}</li>
|
|
|
* <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getSubRegions <em>Sub Regions</em>}</li>
|
|
|
* <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#isOrthogonal <em>Orthogonal</em>}</li>
|
|
|
* <li>{@link org.yakindu.sct.model.sgraph.impl.StateImpl#getSubstatechart <em>Substatechart</em>}</li>
|
|
|
@@ -56,7 +66,7 @@ import org.yakindu.sct.model.sgraph.Statechart;
|
|
|
*
|
|
|
* @generated
|
|
|
*/
|
|
|
-public class StateImpl extends VertexImpl implements State {
|
|
|
+public class StateImpl extends ExpressionElementImpl implements State {
|
|
|
/**
|
|
|
* <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
* @generated
|
|
|
@@ -64,49 +74,71 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
public static final String copyright = "Copyright (c) 2011 committers of YAKINDU and others.\r\nAll rights reserved. This program and the accompanying materials\r\nare made available under the terms of the Eclipse Public License v1.0\r\nwhich accompanies this distribution, and is available at\r\nhttp://www.eclipse.org/legal/epl-v10.html\r\nContributors:\r\ncommitters of YAKINDU - initial API and implementation\r\n";
|
|
|
|
|
|
/**
|
|
|
- * The default value of the '{@link #getExpression() <em>Expression</em>}' attribute.
|
|
|
+ * The cached value of the '{@link #getScopes() <em>Scopes</em>}' containment reference list.
|
|
|
* <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
- * @see #getExpression()
|
|
|
+ * @see #getScopes()
|
|
|
* @generated
|
|
|
* @ordered
|
|
|
*/
|
|
|
- protected static final String EXPRESSION_EDEFAULT = null;
|
|
|
+ protected EList<Scope> scopes;
|
|
|
|
|
|
/**
|
|
|
- * The cached value of the '{@link #getExpression() <em>Expression</em>}' attribute.
|
|
|
+ * The default value of the '{@link #getNamespace() <em>Namespace</em>}' attribute.
|
|
|
* <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
- * @see #getExpression()
|
|
|
+ * @see #getNamespace()
|
|
|
* @generated
|
|
|
* @ordered
|
|
|
*/
|
|
|
- protected String expression = EXPRESSION_EDEFAULT;
|
|
|
+ protected static final String NAMESPACE_EDEFAULT = null;
|
|
|
|
|
|
/**
|
|
|
- * The cached value of the '{@link #getScopes() <em>Scopes</em>}' containment reference list.
|
|
|
+ * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' attribute.
|
|
|
* <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
- * @see #getScopes()
|
|
|
+ * @see #getNamespace()
|
|
|
* @generated
|
|
|
* @ordered
|
|
|
*/
|
|
|
- protected EList<Scope> scopes;
|
|
|
+ protected String namespace = NAMESPACE_EDEFAULT;
|
|
|
|
|
|
/**
|
|
|
- * The default value of the '{@link #getNamespace() <em>Namespace</em>}' attribute.
|
|
|
- * <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
- * @see #getNamespace()
|
|
|
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @see #getName()
|
|
|
* @generated
|
|
|
* @ordered
|
|
|
*/
|
|
|
- protected static final String NAMESPACE_EDEFAULT = null;
|
|
|
+ protected static final String NAME_EDEFAULT = null;
|
|
|
|
|
|
/**
|
|
|
- * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' attribute.
|
|
|
- * <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
- * @see #getNamespace()
|
|
|
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @see #getName()
|
|
|
* @generated
|
|
|
* @ordered
|
|
|
*/
|
|
|
- protected String namespace = NAMESPACE_EDEFAULT;
|
|
|
+ protected String name = NAME_EDEFAULT;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * The cached value of the '{@link #getIncomingTransitions() <em>Incoming Transitions</em>}' reference list.
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @see #getIncomingTransitions()
|
|
|
+ * @generated
|
|
|
+ * @ordered
|
|
|
+ */
|
|
|
+ protected EList<Transition> incomingTransitions;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * The cached value of the '{@link #getOutgoingTransitions() <em>Outgoing Transitions</em>}' containment reference list.
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @see #getOutgoingTransitions()
|
|
|
+ * @generated
|
|
|
+ * @ordered
|
|
|
+ */
|
|
|
+ protected EList<Transition> outgoingTransitions;
|
|
|
|
|
|
/**
|
|
|
* The cached value of the '{@link #getSubRegions() <em>Sub Regions</em>}' containment reference list.
|
|
|
@@ -209,25 +241,6 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
return SGraphPackage.Literals.STATE;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- public String getExpression() {
|
|
|
- return expression;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
- * @generated
|
|
|
- */
|
|
|
- public void setExpression(String newExpression) {
|
|
|
- String oldExpression = expression;
|
|
|
- expression = newExpression;
|
|
|
- if (eNotificationRequired())
|
|
|
- eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.STATE__EXPRESSION, oldExpression, expression));
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
*
|
|
|
@@ -289,6 +302,92 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.STATE__NAMESPACE, oldNamespace, namespace));
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @generated
|
|
|
+ */
|
|
|
+ public String getName() {
|
|
|
+ return name;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @generated
|
|
|
+ */
|
|
|
+ public void setName(String newName) {
|
|
|
+ String oldName = name;
|
|
|
+ name = newName;
|
|
|
+ if (eNotificationRequired())
|
|
|
+ eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.STATE__NAME, oldName, name));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @generated
|
|
|
+ */
|
|
|
+ public Region getParentRegion() {
|
|
|
+ if (eContainerFeatureID() != SGraphPackage.STATE__PARENT_REGION) return null;
|
|
|
+ return (Region)eContainer();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @generated
|
|
|
+ */
|
|
|
+ public NotificationChain basicSetParentRegion(Region newParentRegion, NotificationChain msgs) {
|
|
|
+ msgs = eBasicSetContainer((InternalEObject)newParentRegion, SGraphPackage.STATE__PARENT_REGION, msgs);
|
|
|
+ return msgs;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @generated
|
|
|
+ */
|
|
|
+ public void setParentRegion(Region newParentRegion) {
|
|
|
+ if (newParentRegion != eInternalContainer() || (eContainerFeatureID() != SGraphPackage.STATE__PARENT_REGION && newParentRegion != null)) {
|
|
|
+ if (EcoreUtil.isAncestor(this, newParentRegion))
|
|
|
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
|
|
|
+ NotificationChain msgs = null;
|
|
|
+ if (eInternalContainer() != null)
|
|
|
+ msgs = eBasicRemoveFromContainer(msgs);
|
|
|
+ if (newParentRegion != null)
|
|
|
+ msgs = ((InternalEObject)newParentRegion).eInverseAdd(this, SGraphPackage.REGION__VERTICES, Region.class, msgs);
|
|
|
+ msgs = basicSetParentRegion(newParentRegion, msgs);
|
|
|
+ if (msgs != null) msgs.dispatch();
|
|
|
+ }
|
|
|
+ else if (eNotificationRequired())
|
|
|
+ eNotify(new ENotificationImpl(this, Notification.SET, SGraphPackage.STATE__PARENT_REGION, newParentRegion, newParentRegion));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @generated
|
|
|
+ */
|
|
|
+ public EList<Transition> getIncomingTransitions() {
|
|
|
+ if (incomingTransitions == null) {
|
|
|
+ incomingTransitions = new EObjectWithInverseResolvingEList<Transition>(Transition.class, this, SGraphPackage.STATE__INCOMING_TRANSITIONS, SGraphPackage.TRANSITION__TARGET);
|
|
|
+ }
|
|
|
+ return incomingTransitions;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @generated
|
|
|
+ */
|
|
|
+ public EList<Transition> getOutgoingTransitions() {
|
|
|
+ if (outgoingTransitions == null) {
|
|
|
+ outgoingTransitions = new EObjectContainmentWithInverseEList<Transition>(Transition.class, this, SGraphPackage.STATE__OUTGOING_TRANSITIONS, SGraphPackage.TRANSITION__SOURCE);
|
|
|
+ }
|
|
|
+ return outgoingTransitions;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
* @generated
|
|
|
@@ -408,6 +507,27 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @generated
|
|
|
+ */
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ @Override
|
|
|
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
|
|
|
+ switch (featureID) {
|
|
|
+ case SGraphPackage.STATE__PARENT_REGION:
|
|
|
+ if (eInternalContainer() != null)
|
|
|
+ msgs = eBasicRemoveFromContainer(msgs);
|
|
|
+ return basicSetParentRegion((Region)otherEnd, msgs);
|
|
|
+ case SGraphPackage.STATE__INCOMING_TRANSITIONS:
|
|
|
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncomingTransitions()).basicAdd(otherEnd, msgs);
|
|
|
+ case SGraphPackage.STATE__OUTGOING_TRANSITIONS:
|
|
|
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutgoingTransitions()).basicAdd(otherEnd, msgs);
|
|
|
+ }
|
|
|
+ return super.eInverseAdd(otherEnd, featureID, msgs);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
* @generated
|
|
|
@@ -418,12 +538,32 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
switch (featureID) {
|
|
|
case SGraphPackage.STATE__SCOPES:
|
|
|
return ((InternalEList<?>)getScopes()).basicRemove(otherEnd, msgs);
|
|
|
+ case SGraphPackage.STATE__PARENT_REGION:
|
|
|
+ return basicSetParentRegion(null, msgs);
|
|
|
+ case SGraphPackage.STATE__INCOMING_TRANSITIONS:
|
|
|
+ return ((InternalEList<?>)getIncomingTransitions()).basicRemove(otherEnd, msgs);
|
|
|
+ case SGraphPackage.STATE__OUTGOING_TRANSITIONS:
|
|
|
+ return ((InternalEList<?>)getOutgoingTransitions()).basicRemove(otherEnd, msgs);
|
|
|
case SGraphPackage.STATE__SUB_REGIONS:
|
|
|
return ((InternalEList<?>)getSubRegions()).basicRemove(otherEnd, msgs);
|
|
|
}
|
|
|
return super.eInverseRemove(otherEnd, featureID, msgs);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * <!-- begin-user-doc -->
|
|
|
+ * <!-- end-user-doc -->
|
|
|
+ * @generated
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
|
|
|
+ switch (eContainerFeatureID()) {
|
|
|
+ case SGraphPackage.STATE__PARENT_REGION:
|
|
|
+ return eInternalContainer().eInverseRemove(this, SGraphPackage.REGION__VERTICES, Region.class, msgs);
|
|
|
+ }
|
|
|
+ return super.eBasicRemoveFromContainerFeature(msgs);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* <!-- begin-user-doc --> <!-- end-user-doc -->
|
|
|
* @generated
|
|
|
@@ -431,8 +571,6 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
@Override
|
|
|
public Object eGet(int featureID, boolean resolve, boolean coreType) {
|
|
|
switch (featureID) {
|
|
|
- case SGraphPackage.STATE__EXPRESSION:
|
|
|
- return getExpression();
|
|
|
case SGraphPackage.STATE__REACTIONS:
|
|
|
return getReactions();
|
|
|
case SGraphPackage.STATE__LOCAL_REACTIONS:
|
|
|
@@ -441,6 +579,14 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
return getScopes();
|
|
|
case SGraphPackage.STATE__NAMESPACE:
|
|
|
return getNamespace();
|
|
|
+ case SGraphPackage.STATE__NAME:
|
|
|
+ return getName();
|
|
|
+ case SGraphPackage.STATE__PARENT_REGION:
|
|
|
+ return getParentRegion();
|
|
|
+ case SGraphPackage.STATE__INCOMING_TRANSITIONS:
|
|
|
+ return getIncomingTransitions();
|
|
|
+ case SGraphPackage.STATE__OUTGOING_TRANSITIONS:
|
|
|
+ return getOutgoingTransitions();
|
|
|
case SGraphPackage.STATE__SUB_REGIONS:
|
|
|
return getSubRegions();
|
|
|
case SGraphPackage.STATE__ORTHOGONAL:
|
|
|
@@ -470,9 +616,6 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
@Override
|
|
|
public void eSet(int featureID, Object newValue) {
|
|
|
switch (featureID) {
|
|
|
- case SGraphPackage.STATE__EXPRESSION:
|
|
|
- setExpression((String)newValue);
|
|
|
- return;
|
|
|
case SGraphPackage.STATE__SCOPES:
|
|
|
getScopes().clear();
|
|
|
getScopes().addAll((Collection<? extends Scope>)newValue);
|
|
|
@@ -480,6 +623,20 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
case SGraphPackage.STATE__NAMESPACE:
|
|
|
setNamespace((String)newValue);
|
|
|
return;
|
|
|
+ case SGraphPackage.STATE__NAME:
|
|
|
+ setName((String)newValue);
|
|
|
+ return;
|
|
|
+ case SGraphPackage.STATE__PARENT_REGION:
|
|
|
+ setParentRegion((Region)newValue);
|
|
|
+ return;
|
|
|
+ case SGraphPackage.STATE__INCOMING_TRANSITIONS:
|
|
|
+ getIncomingTransitions().clear();
|
|
|
+ getIncomingTransitions().addAll((Collection<? extends Transition>)newValue);
|
|
|
+ return;
|
|
|
+ case SGraphPackage.STATE__OUTGOING_TRANSITIONS:
|
|
|
+ getOutgoingTransitions().clear();
|
|
|
+ getOutgoingTransitions().addAll((Collection<? extends Transition>)newValue);
|
|
|
+ return;
|
|
|
case SGraphPackage.STATE__SUB_REGIONS:
|
|
|
getSubRegions().clear();
|
|
|
getSubRegions().addAll((Collection<? extends Region>)newValue);
|
|
|
@@ -501,15 +658,24 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
@Override
|
|
|
public void eUnset(int featureID) {
|
|
|
switch (featureID) {
|
|
|
- case SGraphPackage.STATE__EXPRESSION:
|
|
|
- setExpression(EXPRESSION_EDEFAULT);
|
|
|
- return;
|
|
|
case SGraphPackage.STATE__SCOPES:
|
|
|
getScopes().clear();
|
|
|
return;
|
|
|
case SGraphPackage.STATE__NAMESPACE:
|
|
|
setNamespace(NAMESPACE_EDEFAULT);
|
|
|
return;
|
|
|
+ case SGraphPackage.STATE__NAME:
|
|
|
+ setName(NAME_EDEFAULT);
|
|
|
+ return;
|
|
|
+ case SGraphPackage.STATE__PARENT_REGION:
|
|
|
+ setParentRegion((Region)null);
|
|
|
+ return;
|
|
|
+ case SGraphPackage.STATE__INCOMING_TRANSITIONS:
|
|
|
+ getIncomingTransitions().clear();
|
|
|
+ return;
|
|
|
+ case SGraphPackage.STATE__OUTGOING_TRANSITIONS:
|
|
|
+ getOutgoingTransitions().clear();
|
|
|
+ return;
|
|
|
case SGraphPackage.STATE__SUB_REGIONS:
|
|
|
getSubRegions().clear();
|
|
|
return;
|
|
|
@@ -530,8 +696,6 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
@Override
|
|
|
public boolean eIsSet(int featureID) {
|
|
|
switch (featureID) {
|
|
|
- case SGraphPackage.STATE__EXPRESSION:
|
|
|
- return EXPRESSION_EDEFAULT == null ? expression != null : !EXPRESSION_EDEFAULT.equals(expression);
|
|
|
case SGraphPackage.STATE__REACTIONS:
|
|
|
return !getReactions().isEmpty();
|
|
|
case SGraphPackage.STATE__LOCAL_REACTIONS:
|
|
|
@@ -540,6 +704,14 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
return scopes != null && !scopes.isEmpty();
|
|
|
case SGraphPackage.STATE__NAMESPACE:
|
|
|
return NAMESPACE_EDEFAULT == null ? namespace != null : !NAMESPACE_EDEFAULT.equals(namespace);
|
|
|
+ case SGraphPackage.STATE__NAME:
|
|
|
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
|
|
|
+ case SGraphPackage.STATE__PARENT_REGION:
|
|
|
+ return getParentRegion() != null;
|
|
|
+ case SGraphPackage.STATE__INCOMING_TRANSITIONS:
|
|
|
+ return incomingTransitions != null && !incomingTransitions.isEmpty();
|
|
|
+ case SGraphPackage.STATE__OUTGOING_TRANSITIONS:
|
|
|
+ return outgoingTransitions != null && !outgoingTransitions.isEmpty();
|
|
|
case SGraphPackage.STATE__SUB_REGIONS:
|
|
|
return subRegions != null && !subRegions.isEmpty();
|
|
|
case SGraphPackage.STATE__ORTHOGONAL:
|
|
|
@@ -566,12 +738,6 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
*/
|
|
|
@Override
|
|
|
public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
|
|
|
- if (baseClass == ExpressionElement.class) {
|
|
|
- switch (derivedFeatureID) {
|
|
|
- case SGraphPackage.STATE__EXPRESSION: return SGraphPackage.EXPRESSION_ELEMENT__EXPRESSION;
|
|
|
- default: return -1;
|
|
|
- }
|
|
|
- }
|
|
|
if (baseClass == ReactiveElement.class) {
|
|
|
switch (derivedFeatureID) {
|
|
|
case SGraphPackage.STATE__REACTIONS: return SGraphPackage.REACTIVE_ELEMENT__REACTIONS;
|
|
|
@@ -586,6 +752,25 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
default: return -1;
|
|
|
}
|
|
|
}
|
|
|
+ if (baseClass == NamedElement.class) {
|
|
|
+ switch (derivedFeatureID) {
|
|
|
+ case SGraphPackage.STATE__NAME: return SGraphPackage.NAMED_ELEMENT__NAME;
|
|
|
+ default: return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (baseClass == Vertex.class) {
|
|
|
+ switch (derivedFeatureID) {
|
|
|
+ case SGraphPackage.STATE__PARENT_REGION: return SGraphPackage.VERTEX__PARENT_REGION;
|
|
|
+ case SGraphPackage.STATE__INCOMING_TRANSITIONS: return SGraphPackage.VERTEX__INCOMING_TRANSITIONS;
|
|
|
+ case SGraphPackage.STATE__OUTGOING_TRANSITIONS: return SGraphPackage.VERTEX__OUTGOING_TRANSITIONS;
|
|
|
+ default: return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (baseClass == RegularState.class) {
|
|
|
+ switch (derivedFeatureID) {
|
|
|
+ default: return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
|
|
|
}
|
|
|
|
|
|
@@ -595,12 +780,6 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
*/
|
|
|
@Override
|
|
|
public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
|
|
|
- if (baseClass == ExpressionElement.class) {
|
|
|
- switch (baseFeatureID) {
|
|
|
- case SGraphPackage.EXPRESSION_ELEMENT__EXPRESSION: return SGraphPackage.STATE__EXPRESSION;
|
|
|
- default: return -1;
|
|
|
- }
|
|
|
- }
|
|
|
if (baseClass == ReactiveElement.class) {
|
|
|
switch (baseFeatureID) {
|
|
|
case SGraphPackage.REACTIVE_ELEMENT__REACTIONS: return SGraphPackage.STATE__REACTIONS;
|
|
|
@@ -615,6 +794,25 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
default: return -1;
|
|
|
}
|
|
|
}
|
|
|
+ if (baseClass == NamedElement.class) {
|
|
|
+ switch (baseFeatureID) {
|
|
|
+ case SGraphPackage.NAMED_ELEMENT__NAME: return SGraphPackage.STATE__NAME;
|
|
|
+ default: return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (baseClass == Vertex.class) {
|
|
|
+ switch (baseFeatureID) {
|
|
|
+ case SGraphPackage.VERTEX__PARENT_REGION: return SGraphPackage.STATE__PARENT_REGION;
|
|
|
+ case SGraphPackage.VERTEX__INCOMING_TRANSITIONS: return SGraphPackage.STATE__INCOMING_TRANSITIONS;
|
|
|
+ case SGraphPackage.VERTEX__OUTGOING_TRANSITIONS: return SGraphPackage.STATE__OUTGOING_TRANSITIONS;
|
|
|
+ default: return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (baseClass == RegularState.class) {
|
|
|
+ switch (baseFeatureID) {
|
|
|
+ default: return -1;
|
|
|
+ }
|
|
|
+ }
|
|
|
return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
|
|
|
}
|
|
|
|
|
|
@@ -627,10 +825,10 @@ public class StateImpl extends VertexImpl implements State {
|
|
|
if (eIsProxy()) return super.toString();
|
|
|
|
|
|
StringBuffer result = new StringBuffer(super.toString());
|
|
|
- result.append(" (expression: ");
|
|
|
- result.append(expression);
|
|
|
- result.append(", namespace: ");
|
|
|
+ result.append(" (namespace: ");
|
|
|
result.append(namespace);
|
|
|
+ result.append(", name: ");
|
|
|
+ result.append(name);
|
|
|
result.append(", substatechartId: ");
|
|
|
result.append(substatechartId);
|
|
|
result.append(')');
|