Added some validations for (local) mode labels
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml
index e56b838..3c26639 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml
+++ b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml
@@ -2998,6 +2998,18 @@
</eAnnotations>
<eParameters name="context" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
</eOperations>
+ <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" unique="false">
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="label1" lowerBound="1"
eType="#//ModeLabel"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="label2" lowerBound="1"
@@ -4302,6 +4314,28 @@
<details key="body" value="<%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _xblockexpression = null;
{
	final <%org.eclipse.app4mc.amalthea.model.IExecutable%> exe = this.getContainingExecutable();
	<%org.eclipse.emf.common.util.EList%><<%java.lang.String%>> _xifexpression = null;
	if ((exe instanceof <%org.eclipse.app4mc.amalthea.model.INamed%>))
	{
		_xifexpression = ((<%org.eclipse.app4mc.amalthea.model.INamed%>)exe).getQualifiedNameSegments();
	}
	else
	{
		_xifexpression = <%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.<<%java.lang.String%>>newBasicEList();
	}
	_xblockexpression = _xifexpression;
}
return _xblockexpression;"/>
</eAnnotations>
</eOperations>
+ <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" unique="false">
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
+ <eOperations name="isEnum" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="<%org.eclipse.app4mc.amalthea.model.Mode%> _mode = this.getMode();
return (_mode instanceof <%org.eclipse.app4mc.amalthea.model.EnumMode%>);"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isNumeric" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="<%org.eclipse.app4mc.amalthea.model.Mode%> _mode = this.getMode();
return (_mode instanceof <%org.eclipse.app4mc.amalthea.model.NumericMode%>);"/>
+ </eAnnotations>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="containingExecutable" eType="#//IExecutable"
changeable="false" eOpposite="#//IExecutable/localLabels">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4313,6 +4347,18 @@
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LocalModeValue" abstract="true">
+ <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" unique="false">
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//LocalModeLabel"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="valueSource" lowerBound="1"
eType="#//ILocalModeValueSource" containment="true" resolveProxies="false"/>
@@ -4323,24 +4369,95 @@
eType="#//RelationalOperator"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ILocalModeValueSource" abstract="true"
- interface="true"/>
+ interface="true">
+ <eOperations name="isEnum" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return false;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isNumeric" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return false;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMode" unique="false" eType="#//Mode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return null;"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeLiteralConst" eSuperTypes="#//ILocalModeValueSource">
+ <eOperations name="isEnum" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return true;"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMode" unique="false" eType="#//Mode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="<%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _value = this.getValue();
<%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = null;
if (_value!=null)
{
	_containingMode=_value.getContainingMode();
}
return _containingMode;"/>
+ </eAnnotations>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//ModeLiteral"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="IntegerConst" eSuperTypes="#//ILocalModeValueSource">
+ <eOperations name="isNumeric" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return true;"/>
+ </eAnnotations>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeLabelRef" eSuperTypes="#//ILocalModeValueSource">
+ <eOperations name="isEnum" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return this.getValue().isEnum();"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isNumeric" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return this.getValue().isNumeric();"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMode" unique="false" eType="#//Mode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="<%org.eclipse.app4mc.amalthea.model.ModeLabel%> _value = this.getValue();
<%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null;
if (_value!=null)
{
	_mode=_value.getMode();
}
return _mode;"/>
+ </eAnnotations>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//ModeLabel"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="LocalModeLabelRef" eSuperTypes="#//ILocalModeValueSource">
+ <eOperations name="isEnum" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return this.getValue().isEnum();"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isNumeric" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return this.getValue().isNumeric();"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMode" unique="false" eType="#//Mode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="<%org.eclipse.app4mc.amalthea.model.LocalModeLabel%> _value = this.getValue();
<%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null;
if (_value!=null)
{
	_mode=_value.getMode();
}
return _mode;"/>
+ </eAnnotations>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//LocalModeLabel"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ChannelFillRef" eSuperTypes="#//ILocalModeValueSource">
+ <eOperations name="isNumeric" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return true;"/>
+ </eAnnotations>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Channel"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ArithmeticExpression" eSuperTypes="#//ILocalModeValueSource">
+ <eOperations name="isNumeric" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return true;"/>
+ </eAnnotations>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="operand1" eType="#//ILocalModeValueSource"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="operand2" eType="#//ILocalModeValueSource"
@@ -4356,6 +4473,18 @@
<eLiterals name="MODULO"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ModeLabelAssignment" eSuperTypes="#//ActivityGraphItem">
+ <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="body" value="return <%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics);"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" unique="false">
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"/>
+ </eGenericType>
+ </eParameters>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="globalLabel" lowerBound="1"
eType="#//ModeLabel"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="localLabel" lowerBound="1"
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore b/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore
index 996987a..184f539 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore
+++ b/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore
@@ -2999,6 +2999,10 @@
val labelValue2 = context?.get(label2)
return (labelValue1 === null) || (labelValue2 === null) || (labelValue1 == labelValue2)
}
+
+ op boolean validateInvariants(EDiagnosticChain diagnostics, EMap<Object,Object> context) {
+ AmaltheaValidations.validateInvariants(this, diagnostics)
+ }
}
@@ -3796,13 +3800,8 @@
AmaltheaValidations.validateInvariants(this, diagnostics)
}
- op boolean isEnum() {
- mode instanceof EnumMode
- }
-
- op boolean isNumeric() {
- mode instanceof NumericMode
- }
+ op boolean isEnum() {mode instanceof EnumMode}
+ op boolean isNumeric() {mode instanceof NumericMode}
}
@@ -4354,11 +4353,22 @@
val exe = containingExecutable
if (exe instanceof INamed) exe.qualifiedNameSegments else newBasicEList
}
+
+ op boolean validateInvariants(EDiagnosticChain diagnostics, EMap<Object,Object> context) {
+ AmaltheaValidations.validateInvariants(this, diagnostics)
+ }
+
+ op boolean isEnum() {mode instanceof EnumMode}
+ op boolean isNumeric() {mode instanceof NumericMode}
}
abstract class LocalModeValue {
refers LocalModeLabel[1] label
contains ILocalModeValueSource[1] valueSource
+
+ op boolean validateInvariants(EDiagnosticChain diagnostics, EMap<Object,Object> context) {
+ AmaltheaValidations.validateInvariants(this, diagnostics)
+ }
}
class LocalModeLabelAssignment extends LocalModeValue, ActivityGraphItem {
@@ -4368,32 +4378,53 @@
RelationalOperator relation
}
-interface ILocalModeValueSource {}
+interface ILocalModeValueSource {
+ op boolean isEnum() {false}
+ op boolean isNumeric() {false}
+ op Mode getMode() {null}
+}
class ModeLiteralConst extends ILocalModeValueSource {
refers ModeLiteral[1] value
+
+ op boolean isEnum() {true}
+ op Mode getMode() {value?.containingMode}
}
class IntegerConst extends ILocalModeValueSource {
int[1] value = "0"
+
+ op boolean isNumeric() {true}
}
class ModeLabelRef extends ILocalModeValueSource {
refers ModeLabel[1] value
+
+ op boolean isEnum() {value.isEnum}
+ op boolean isNumeric() {value.isNumeric}
+ op Mode getMode() {value?.mode}
}
class LocalModeLabelRef extends ILocalModeValueSource {
refers LocalModeLabel[1] value
+
+ op boolean isEnum() {value.isEnum}
+ op boolean isNumeric() {value.isNumeric}
+ op Mode getMode() {value?.mode}
}
class ChannelFillRef extends ILocalModeValueSource {
refers Channel[1] value
+
+ op boolean isNumeric() {true}
}
class ArithmeticExpression extends ILocalModeValueSource {
contains ILocalModeValueSource operand1
contains ILocalModeValueSource operand2
ArithmeticOperator operator
+
+ op boolean isNumeric() {true}
}
enum ArithmeticOperator
@@ -4408,4 +4439,8 @@
class ModeLabelAssignment extends ActivityGraphItem {
refers ModeLabel[1] globalLabel
refers LocalModeLabel[1] localLabel
+
+ op boolean validateInvariants(EDiagnosticChain diagnostics, EMap<Object,Object> context) {
+ AmaltheaValidations.validateInvariants(this, diagnostics)
+ }
}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaValidations.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaValidations.java
index 8ffb49e..f60971a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaValidations.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaValidations.java
@@ -143,7 +143,27 @@
return isValid;
}
- // ******** Modes ********
+ // ******** Modes and Local Modes ********
+
+ public static boolean validateInvariants(LocalModeLabel obj, DiagnosticChain diagnostics) {
+ return checkModeAndValue(obj, PACKAGE.getLocalModeLabel_DefaultValue(), obj.getMode(), obj.getDefaultValue(), diagnostics);
+ }
+
+ public static boolean validateInvariants(LocalModeValue obj, DiagnosticChain diagnostics) {
+ if (obj.getLabel() != null && obj.getValueSource() != null) {
+ LocalModeLabel label = obj.getLabel();
+ ILocalModeValueSource source = obj.getValueSource();
+
+ if ((label.isEnum() && source.isNumeric()) || (label.isNumeric() && source.isEnum())) {
+ addError(obj, PACKAGE.getLocalModeValue_ValueSource(), obj.eClass().getName() + ": incompatible types", diagnostics);
+ return false;
+ }
+
+ return checkModeCompatibility(obj, PACKAGE.getLocalModeValue_ValueSource(), label.getMode(), source.getMode(), diagnostics);
+ }
+
+ return true;
+ }
public static boolean validateInvariants(ModeLabel obj, DiagnosticChain diagnostics) {
return checkModeAndValue(obj, PACKAGE.getModeLabel_InitialValue(), obj.getMode(), obj.getInitialValue(), diagnostics);
@@ -152,7 +172,9 @@
public static boolean validateInvariants(ModeValue obj, DiagnosticChain diagnostics) {
ModeLabel modeLabel = obj.getLabel();
if (modeLabel == null) {
- addError(obj, PACKAGE.getModeValue_Label(), obj.eClass().getName() + ": missing mode label", diagnostics);
+ // This case is already handled by standard EMF validations (definition ModeLabel[1])
+ // Manual diagnostics entry would be:
+ // addError(obj, PACKAGE.getModeValue_Label(), obj.eClass().getName() + ": missing mode label", diagnostics)
return false;
}
@@ -162,7 +184,9 @@
public static boolean validateInvariants(ModeLabelAccess obj, DiagnosticChain diagnostics) {
ModeLabel modeLabel = obj.getData();
if (modeLabel == null) {
- addError(obj, PACKAGE.getModeLabelAccess_Data(), obj.eClass().getName() + ": missing mode label", diagnostics);
+ // This case is already handled by standard EMF validations (definition ModeLabel[1])
+ // Manual diagnostics entry would be:
+ // addError(obj, PACKAGE.getModeLabelAccess_Data(), obj.eClass().getName() + ": missing mode label", diagnostics)
return false;
}
@@ -173,6 +197,28 @@
return true;
}
+ public static boolean validateInvariants(ModeLabelAssignment obj, DiagnosticChain diagnostics) {
+ if (obj.getGlobalLabel() != null && obj.getLocalLabel() != null) {
+ ModeLabel label1 = obj.getGlobalLabel();
+ LocalModeLabel label2 = obj.getLocalLabel();
+
+ return checkModeCompatibility(obj, PACKAGE.getModeLabelAssignment_LocalLabel(), label1.getMode(), label2.getMode(), diagnostics);
+ }
+
+ return true;
+ }
+
+ public static boolean validateInvariants(ModeLabelCondition obj, DiagnosticChain diagnostics) {
+ if (obj.getLabel1() != null && obj.getLabel2() != null) {
+ ModeLabel label1 = obj.getLabel1();
+ ModeLabel label2 = obj.getLabel2();
+
+ return checkModeCompatibility(obj, PACKAGE.getModeLabelAssignment_LocalLabel(), label1.getMode(), label2.getMode(), diagnostics);
+ }
+
+ return true;
+ }
+
private static boolean checkModeAndValue(EObject obj, EStructuralFeature feature, Mode mode, String value, DiagnosticChain diagnostics) {
if (mode == null) {
addWarning(obj, feature, obj.eClass().getName() + ": unknown value type (mode)", diagnostics);
@@ -209,6 +255,14 @@
return true;
}
+ private static boolean checkModeCompatibility(EObject obj, EStructuralFeature feature, Mode mode1, Mode mode2, DiagnosticChain diagnostics) {
+ if (mode1 != null && mode2 != null && !mode1.equals(mode2)) {
+ addError(obj, feature, obj.eClass().getName() + ": incompatible modes", diagnostics);
+ return false;
+ }
+
+ return true;
+ }
// private helper methods
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java
index 4a0e65d..e798be6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java
@@ -25951,13 +25951,22 @@
int MODE_LABEL_CONDITION___IS_SATISFIED_BY__EMAP = BASE_OBJECT_OPERATION_COUNT + 1;
/**
+ * The operation id for the '<em>Validate Invariants</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODE_LABEL_CONDITION___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = BASE_OBJECT_OPERATION_COUNT + 2;
+
+ /**
* The number of operations of the '<em>Mode Label Condition</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int MODE_LABEL_CONDITION_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 2;
+ int MODE_LABEL_CONDITION_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 3;
/**
* The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -38744,15 +38753,6 @@
int LOCAL_MODE_LABEL___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
/**
- * The operation id for the '<em>Validate Invariants</em>' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int LOCAL_MODE_LABEL___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
-
- /**
* The operation id for the '<em>Get Name Prefix Segments</em>' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -38762,13 +38762,40 @@
int LOCAL_MODE_LABEL___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
/**
+ * The operation id for the '<em>Validate Invariants</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_MODE_LABEL___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Is Enum</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_MODE_LABEL___IS_ENUM = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Is Numeric</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_MODE_LABEL___IS_NUMERIC = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 3;
+
+ /**
* The number of operations of the '<em>Local Mode Label</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int LOCAL_MODE_LABEL_OPERATION_COUNT = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 1;
+ int LOCAL_MODE_LABEL_OPERATION_COUNT = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 4;
/**
* The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.LocalModeValueImpl <em>Local Mode Value</em>}' class.
@@ -38808,13 +38835,22 @@
int LOCAL_MODE_VALUE_FEATURE_COUNT = 2;
/**
+ * The operation id for the '<em>Validate Invariants</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_MODE_VALUE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = 0;
+
+ /**
* The number of operations of the '<em>Local Mode Value</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int LOCAL_MODE_VALUE_OPERATION_COUNT = 0;
+ int LOCAL_MODE_VALUE_OPERATION_COUNT = 1;
/**
* The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.LocalModeLabelAssignmentImpl <em>Local Mode Label Assignment</em>}' class.
@@ -38904,6 +38940,15 @@
int LOCAL_MODE_LABEL_ASSIGNMENT_FEATURE_COUNT = LOCAL_MODE_VALUE_FEATURE_COUNT + 5;
/**
+ * The operation id for the '<em>Validate Invariants</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_MODE_LABEL_ASSIGNMENT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = LOCAL_MODE_VALUE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
+
+ /**
* The number of operations of the '<em>Local Mode Label Assignment</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -38968,6 +39013,15 @@
int LOCAL_MODE_CONDITION_FEATURE_COUNT = LOCAL_MODE_VALUE_FEATURE_COUNT + 2;
/**
+ * The operation id for the '<em>Validate Invariants</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_MODE_CONDITION___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = LOCAL_MODE_VALUE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
+
+ /**
* The number of operations of the '<em>Local Mode Condition</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -38996,13 +39050,40 @@
int ILOCAL_MODE_VALUE_SOURCE_FEATURE_COUNT = 0;
/**
+ * The operation id for the '<em>Is Enum</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ILOCAL_MODE_VALUE_SOURCE___IS_ENUM = 0;
+
+ /**
+ * The operation id for the '<em>Is Numeric</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ILOCAL_MODE_VALUE_SOURCE___IS_NUMERIC = 1;
+
+ /**
+ * The operation id for the '<em>Get Mode</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ILOCAL_MODE_VALUE_SOURCE___GET_MODE = 2;
+
+ /**
* The number of operations of the '<em>ILocal Mode Value Source</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT = 0;
+ int ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT = 3;
/**
* The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ModeLiteralConstImpl <em>Mode Literal Const</em>}' class.
@@ -39033,13 +39114,40 @@
int MODE_LITERAL_CONST_FEATURE_COUNT = ILOCAL_MODE_VALUE_SOURCE_FEATURE_COUNT + 1;
/**
+ * The operation id for the '<em>Is Numeric</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODE_LITERAL_CONST___IS_NUMERIC = ILOCAL_MODE_VALUE_SOURCE___IS_NUMERIC;
+
+ /**
+ * The operation id for the '<em>Is Enum</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODE_LITERAL_CONST___IS_ENUM = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Get Mode</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODE_LITERAL_CONST___GET_MODE = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 1;
+
+ /**
* The number of operations of the '<em>Mode Literal Const</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int MODE_LITERAL_CONST_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+ int MODE_LITERAL_CONST_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 2;
/**
* The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.IntegerConstImpl <em>Integer Const</em>}' class.
@@ -39070,13 +39178,40 @@
int INTEGER_CONST_FEATURE_COUNT = ILOCAL_MODE_VALUE_SOURCE_FEATURE_COUNT + 1;
/**
+ * The operation id for the '<em>Is Enum</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_CONST___IS_ENUM = ILOCAL_MODE_VALUE_SOURCE___IS_ENUM;
+
+ /**
+ * The operation id for the '<em>Get Mode</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_CONST___GET_MODE = ILOCAL_MODE_VALUE_SOURCE___GET_MODE;
+
+ /**
+ * The operation id for the '<em>Is Numeric</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_CONST___IS_NUMERIC = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+
+ /**
* The number of operations of the '<em>Integer Const</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int INTEGER_CONST_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+ int INTEGER_CONST_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 1;
/**
* The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ModeLabelRefImpl <em>Mode Label Ref</em>}' class.
@@ -39107,13 +39242,40 @@
int MODE_LABEL_REF_FEATURE_COUNT = ILOCAL_MODE_VALUE_SOURCE_FEATURE_COUNT + 1;
/**
+ * The operation id for the '<em>Is Enum</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODE_LABEL_REF___IS_ENUM = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Is Numeric</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODE_LABEL_REF___IS_NUMERIC = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Mode</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODE_LABEL_REF___GET_MODE = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 2;
+
+ /**
* The number of operations of the '<em>Mode Label Ref</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int MODE_LABEL_REF_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+ int MODE_LABEL_REF_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 3;
/**
* The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.LocalModeLabelRefImpl <em>Local Mode Label Ref</em>}' class.
@@ -39144,13 +39306,40 @@
int LOCAL_MODE_LABEL_REF_FEATURE_COUNT = ILOCAL_MODE_VALUE_SOURCE_FEATURE_COUNT + 1;
/**
+ * The operation id for the '<em>Is Enum</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_MODE_LABEL_REF___IS_ENUM = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+
+ /**
+ * The operation id for the '<em>Is Numeric</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_MODE_LABEL_REF___IS_NUMERIC = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Get Mode</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_MODE_LABEL_REF___GET_MODE = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 2;
+
+ /**
* The number of operations of the '<em>Local Mode Label Ref</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int LOCAL_MODE_LABEL_REF_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+ int LOCAL_MODE_LABEL_REF_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 3;
/**
* The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ChannelFillRefImpl <em>Channel Fill Ref</em>}' class.
@@ -39181,13 +39370,40 @@
int CHANNEL_FILL_REF_FEATURE_COUNT = ILOCAL_MODE_VALUE_SOURCE_FEATURE_COUNT + 1;
/**
+ * The operation id for the '<em>Is Enum</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANNEL_FILL_REF___IS_ENUM = ILOCAL_MODE_VALUE_SOURCE___IS_ENUM;
+
+ /**
+ * The operation id for the '<em>Get Mode</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANNEL_FILL_REF___GET_MODE = ILOCAL_MODE_VALUE_SOURCE___GET_MODE;
+
+ /**
+ * The operation id for the '<em>Is Numeric</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CHANNEL_FILL_REF___IS_NUMERIC = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+
+ /**
* The number of operations of the '<em>Channel Fill Ref</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int CHANNEL_FILL_REF_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+ int CHANNEL_FILL_REF_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 1;
/**
* The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ArithmeticExpressionImpl <em>Arithmetic Expression</em>}' class.
@@ -39236,13 +39452,40 @@
int ARITHMETIC_EXPRESSION_FEATURE_COUNT = ILOCAL_MODE_VALUE_SOURCE_FEATURE_COUNT + 3;
/**
+ * The operation id for the '<em>Is Enum</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_EXPRESSION___IS_ENUM = ILOCAL_MODE_VALUE_SOURCE___IS_ENUM;
+
+ /**
+ * The operation id for the '<em>Get Mode</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_EXPRESSION___GET_MODE = ILOCAL_MODE_VALUE_SOURCE___GET_MODE;
+
+ /**
+ * The operation id for the '<em>Is Numeric</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARITHMETIC_EXPRESSION___IS_NUMERIC = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+
+ /**
* The number of operations of the '<em>Arithmetic Expression</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ARITHMETIC_EXPRESSION_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 0;
+ int ARITHMETIC_EXPRESSION_OPERATION_COUNT = ILOCAL_MODE_VALUE_SOURCE_OPERATION_COUNT + 1;
/**
* The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ModeLabelAssignmentImpl <em>Mode Label Assignment</em>}' class.
@@ -39332,13 +39575,22 @@
int MODE_LABEL_ASSIGNMENT_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
/**
+ * The operation id for the '<em>Validate Invariants</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODE_LABEL_ASSIGNMENT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
+
+ /**
* The number of operations of the '<em>Mode Label Assignment</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int MODE_LABEL_ASSIGNMENT_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
+ int MODE_LABEL_ASSIGNMENT_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 1;
/**
* The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.RelationalOperator <em>Relational Operator</em>}' enum.
@@ -48700,6 +48952,16 @@
EOperation getModeLabelCondition__IsSatisfiedBy__EMap();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ModeLabelCondition#validateInvariants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Invariants</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Invariants</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ModeLabelCondition#validateInvariants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getModeLabelCondition__ValidateInvariants__DiagnosticChain_Map();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ConditionDisjunction <em>Condition Disjunction</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -52407,6 +52669,36 @@
EOperation getLocalModeLabel__GetNamePrefixSegments();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#validateInvariants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Invariants</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Invariants</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.LocalModeLabel#validateInvariants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getLocalModeLabel__ValidateInvariants__DiagnosticChain_Map();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#isEnum() <em>Is Enum</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Enum</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.LocalModeLabel#isEnum()
+ * @generated
+ */
+ EOperation getLocalModeLabel__IsEnum();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#isNumeric() <em>Is Numeric</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Numeric</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.LocalModeLabel#isNumeric()
+ * @generated
+ */
+ EOperation getLocalModeLabel__IsNumeric();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.LocalModeValue <em>Local Mode Value</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -52439,6 +52731,16 @@
EReference getLocalModeValue_ValueSource();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.LocalModeValue#validateInvariants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Invariants</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Invariants</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.LocalModeValue#validateInvariants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getLocalModeValue__ValidateInvariants__DiagnosticChain_Map();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabelAssignment <em>Local Mode Label Assignment</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -52480,6 +52782,36 @@
EClass getILocalModeValueSource();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ILocalModeValueSource#isEnum() <em>Is Enum</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Enum</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ILocalModeValueSource#isEnum()
+ * @generated
+ */
+ EOperation getILocalModeValueSource__IsEnum();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ILocalModeValueSource#isNumeric() <em>Is Numeric</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Numeric</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ILocalModeValueSource#isNumeric()
+ * @generated
+ */
+ EOperation getILocalModeValueSource__IsNumeric();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ILocalModeValueSource#getMode() <em>Get Mode</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Mode</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ILocalModeValueSource#getMode()
+ * @generated
+ */
+ EOperation getILocalModeValueSource__GetMode();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ModeLiteralConst <em>Mode Literal Const</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -52501,6 +52833,26 @@
EReference getModeLiteralConst_Value();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ModeLiteralConst#isEnum() <em>Is Enum</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Enum</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ModeLiteralConst#isEnum()
+ * @generated
+ */
+ EOperation getModeLiteralConst__IsEnum();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ModeLiteralConst#getMode() <em>Get Mode</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Mode</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ModeLiteralConst#getMode()
+ * @generated
+ */
+ EOperation getModeLiteralConst__GetMode();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.IntegerConst <em>Integer Const</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -52522,6 +52874,16 @@
EAttribute getIntegerConst_Value();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.IntegerConst#isNumeric() <em>Is Numeric</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Numeric</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.IntegerConst#isNumeric()
+ * @generated
+ */
+ EOperation getIntegerConst__IsNumeric();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ModeLabelRef <em>Mode Label Ref</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -52543,6 +52905,36 @@
EReference getModeLabelRef_Value();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ModeLabelRef#isEnum() <em>Is Enum</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Enum</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ModeLabelRef#isEnum()
+ * @generated
+ */
+ EOperation getModeLabelRef__IsEnum();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ModeLabelRef#isNumeric() <em>Is Numeric</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Numeric</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ModeLabelRef#isNumeric()
+ * @generated
+ */
+ EOperation getModeLabelRef__IsNumeric();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ModeLabelRef#getMode() <em>Get Mode</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Mode</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ModeLabelRef#getMode()
+ * @generated
+ */
+ EOperation getModeLabelRef__GetMode();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabelRef <em>Local Mode Label Ref</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -52564,6 +52956,36 @@
EReference getLocalModeLabelRef_Value();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabelRef#isEnum() <em>Is Enum</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Enum</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.LocalModeLabelRef#isEnum()
+ * @generated
+ */
+ EOperation getLocalModeLabelRef__IsEnum();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabelRef#isNumeric() <em>Is Numeric</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Numeric</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.LocalModeLabelRef#isNumeric()
+ * @generated
+ */
+ EOperation getLocalModeLabelRef__IsNumeric();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabelRef#getMode() <em>Get Mode</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Mode</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.LocalModeLabelRef#getMode()
+ * @generated
+ */
+ EOperation getLocalModeLabelRef__GetMode();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ChannelFillRef <em>Channel Fill Ref</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -52585,6 +53007,16 @@
EReference getChannelFillRef_Value();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ChannelFillRef#isNumeric() <em>Is Numeric</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Numeric</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ChannelFillRef#isNumeric()
+ * @generated
+ */
+ EOperation getChannelFillRef__IsNumeric();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ArithmeticExpression <em>Arithmetic Expression</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -52628,6 +53060,16 @@
EAttribute getArithmeticExpression_Operator();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ArithmeticExpression#isNumeric() <em>Is Numeric</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Is Numeric</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ArithmeticExpression#isNumeric()
+ * @generated
+ */
+ EOperation getArithmeticExpression__IsNumeric();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ModeLabelAssignment <em>Mode Label Assignment</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -52660,6 +53102,16 @@
EReference getModeLabelAssignment_LocalLabel();
/**
+ * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ModeLabelAssignment#validateInvariants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Invariants</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Validate Invariants</em>' operation.
+ * @see org.eclipse.app4mc.amalthea.model.ModeLabelAssignment#validateInvariants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map)
+ * @generated
+ */
+ EOperation getModeLabelAssignment__ValidateInvariants__DiagnosticChain_Map();
+
+ /**
* Returns the meta object for enum '{@link org.eclipse.app4mc.amalthea.model.RelationalOperator <em>Relational Operator</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ArithmeticExpression.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ArithmeticExpression.java
index 83503ff..53c9b8d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ArithmeticExpression.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ArithmeticExpression.java
@@ -103,4 +103,12 @@
*/
void setOperator(ArithmeticOperator value);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isNumeric();
+
} // ArithmeticExpression
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ChannelFillRef.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ChannelFillRef.java
index 6f22803..f87cb3c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ChannelFillRef.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ChannelFillRef.java
@@ -54,4 +54,12 @@
*/
void setValue(Channel value);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isNumeric();
+
} // ChannelFillRef
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ILocalModeValueSource.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ILocalModeValueSource.java
index ddbdebf..04326f1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ILocalModeValueSource.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ILocalModeValueSource.java
@@ -27,4 +27,28 @@
* @generated
*/
public interface ILocalModeValueSource extends EObject {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isEnum();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isNumeric();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ Mode getMode();
} // ILocalModeValueSource
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/IntegerConst.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/IntegerConst.java
index f7bdb6d..839017d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/IntegerConst.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/IntegerConst.java
@@ -55,4 +55,12 @@
*/
void setValue(int value);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isNumeric();
+
} // IntegerConst
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabel.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabel.java
index 1374eed..8cdfebd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabel.java
@@ -14,6 +14,8 @@
*/
package org.eclipse.app4mc.amalthea.model;
+import java.util.Map;
+import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EList;
/**
@@ -100,4 +102,28 @@
*/
EList<String> getNamePrefixSegments();
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model unique="false" diagnosticsUnique="false" contextUnique="false"
+ * @generated
+ */
+ boolean validateInvariants(DiagnosticChain diagnostics, Map<Object, Object> context);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isEnum();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isNumeric();
+
} // LocalModeLabel
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabelRef.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabelRef.java
index 7e34768..127975e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabelRef.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabelRef.java
@@ -54,4 +54,28 @@
*/
void setValue(LocalModeLabel value);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isEnum();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isNumeric();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ Mode getMode();
+
} // LocalStateRef
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeValue.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeValue.java
index d43b469..e33b8cc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeValue.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeValue.java
@@ -14,6 +14,8 @@
*/
package org.eclipse.app4mc.amalthea.model;
+import java.util.Map;
+import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.ecore.EObject;
/**
@@ -78,4 +80,12 @@
*/
void setValueSource(ILocalModeValueSource value);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model unique="false" diagnosticsUnique="false" contextUnique="false"
+ * @generated
+ */
+ boolean validateInvariants(DiagnosticChain diagnostics, Map<Object, Object> context);
+
} // LocalModeValue
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAssignment.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAssignment.java
index bec379d..fcc319e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAssignment.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAssignment.java
@@ -14,6 +14,9 @@
*/
package org.eclipse.app4mc.amalthea.model;
+import java.util.Map;
+import org.eclipse.emf.common.util.DiagnosticChain;
+
/**
* <!-- begin-user-doc -->
@@ -77,4 +80,12 @@
*/
void setLocalLabel(LocalModeLabel value);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model unique="false" diagnosticsUnique="false" contextUnique="false"
+ * @generated
+ */
+ boolean validateInvariants(DiagnosticChain diagnostics, Map<Object, Object> context);
+
} // ModeLabelAssignment
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelCondition.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelCondition.java
index 743d7e4..7c7ece7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelCondition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelCondition.java
@@ -14,6 +14,8 @@
*/
package org.eclipse.app4mc.amalthea.model;
+import java.util.Map;
+import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EMap;
/**
@@ -86,4 +88,12 @@
*/
boolean isSatisfiedBy(EMap<ModeLabel, String> context);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model unique="false" diagnosticsUnique="false" contextUnique="false"
+ * @generated
+ */
+ boolean validateInvariants(DiagnosticChain diagnostics, Map<Object, Object> context);
+
} // ModeLabelCondition
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelRef.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelRef.java
index de90e54..96901a5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelRef.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLabelRef.java
@@ -54,4 +54,28 @@
*/
void setValue(ModeLabel value);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isEnum();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isNumeric();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ Mode getMode();
+
} // ModeLabelRef
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLiteralConst.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLiteralConst.java
index 8d4e58c..182a439 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLiteralConst.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/ModeLiteralConst.java
@@ -54,4 +54,20 @@
*/
void setValue(ModeLiteral value);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ boolean isEnum();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" unique="false"
+ * @generated
+ */
+ Mode getMode();
+
} // ModeLiteralConst
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java
index 7220d4f..fdeb150 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java
@@ -11405,6 +11405,16 @@
* @generated
*/
@Override
+ public EOperation getModeLabelCondition__ValidateInvariants__DiagnosticChain_Map() {
+ return modeLabelConditionEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getConditionDisjunction() {
return conditionDisjunctionEClass;
}
@@ -14885,6 +14895,36 @@
* @generated
*/
@Override
+ public EOperation getLocalModeLabel__ValidateInvariants__DiagnosticChain_Map() {
+ return localModeLabelEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getLocalModeLabel__IsEnum() {
+ return localModeLabelEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getLocalModeLabel__IsNumeric() {
+ return localModeLabelEClass.getEOperations().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getLocalModeValue() {
return localModeValueEClass;
}
@@ -14915,6 +14955,16 @@
* @generated
*/
@Override
+ public EOperation getLocalModeValue__ValidateInvariants__DiagnosticChain_Map() {
+ return localModeValueEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getLocalModeLabelAssignment() {
return localModeLabelAssignmentEClass;
}
@@ -14955,6 +15005,36 @@
* @generated
*/
@Override
+ public EOperation getILocalModeValueSource__IsEnum() {
+ return iLocalModeValueSourceEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getILocalModeValueSource__IsNumeric() {
+ return iLocalModeValueSourceEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getILocalModeValueSource__GetMode() {
+ return iLocalModeValueSourceEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getModeLiteralConst() {
return modeLiteralConstEClass;
}
@@ -14975,6 +15055,26 @@
* @generated
*/
@Override
+ public EOperation getModeLiteralConst__IsEnum() {
+ return modeLiteralConstEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getModeLiteralConst__GetMode() {
+ return modeLiteralConstEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getIntegerConst() {
return integerConstEClass;
}
@@ -14995,6 +15095,16 @@
* @generated
*/
@Override
+ public EOperation getIntegerConst__IsNumeric() {
+ return integerConstEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getModeLabelRef() {
return modeLabelRefEClass;
}
@@ -15015,6 +15125,36 @@
* @generated
*/
@Override
+ public EOperation getModeLabelRef__IsEnum() {
+ return modeLabelRefEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getModeLabelRef__IsNumeric() {
+ return modeLabelRefEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getModeLabelRef__GetMode() {
+ return modeLabelRefEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getLocalModeLabelRef() {
return localModeLabelRefEClass;
}
@@ -15035,6 +15175,36 @@
* @generated
*/
@Override
+ public EOperation getLocalModeLabelRef__IsEnum() {
+ return localModeLabelRefEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getLocalModeLabelRef__IsNumeric() {
+ return localModeLabelRefEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EOperation getLocalModeLabelRef__GetMode() {
+ return localModeLabelRefEClass.getEOperations().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getChannelFillRef() {
return channelFillRefEClass;
}
@@ -15055,6 +15225,16 @@
* @generated
*/
@Override
+ public EOperation getChannelFillRef__IsNumeric() {
+ return channelFillRefEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getArithmeticExpression() {
return arithmeticExpressionEClass;
}
@@ -15095,6 +15275,16 @@
* @generated
*/
@Override
+ public EOperation getArithmeticExpression__IsNumeric() {
+ return arithmeticExpressionEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getModeLabelAssignment() {
return modeLabelAssignmentEClass;
}
@@ -15125,6 +15315,16 @@
* @generated
*/
@Override
+ public EOperation getModeLabelAssignment__ValidateInvariants__DiagnosticChain_Map() {
+ return modeLabelAssignmentEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EEnum getRelationalOperator() {
return relationalOperatorEEnum;
}
@@ -16931,6 +17131,7 @@
createEReference(modeLabelConditionEClass, MODE_LABEL_CONDITION__LABEL1);
createEReference(modeLabelConditionEClass, MODE_LABEL_CONDITION__LABEL2);
createEOperation(modeLabelConditionEClass, MODE_LABEL_CONDITION___IS_SATISFIED_BY__EMAP);
+ createEOperation(modeLabelConditionEClass, MODE_LABEL_CONDITION___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP);
conditionDisjunctionEClass = createEClass(CONDITION_DISJUNCTION);
createEReference(conditionDisjunctionEClass, CONDITION_DISJUNCTION__ENTRIES);
@@ -17383,10 +17584,14 @@
createEReference(localModeLabelEClass, LOCAL_MODE_LABEL__MODE);
createEAttribute(localModeLabelEClass, LOCAL_MODE_LABEL__DEFAULT_VALUE);
createEOperation(localModeLabelEClass, LOCAL_MODE_LABEL___GET_NAME_PREFIX_SEGMENTS);
+ createEOperation(localModeLabelEClass, LOCAL_MODE_LABEL___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP);
+ createEOperation(localModeLabelEClass, LOCAL_MODE_LABEL___IS_ENUM);
+ createEOperation(localModeLabelEClass, LOCAL_MODE_LABEL___IS_NUMERIC);
localModeValueEClass = createEClass(LOCAL_MODE_VALUE);
createEReference(localModeValueEClass, LOCAL_MODE_VALUE__LABEL);
createEReference(localModeValueEClass, LOCAL_MODE_VALUE__VALUE_SOURCE);
+ createEOperation(localModeValueEClass, LOCAL_MODE_VALUE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP);
localModeLabelAssignmentEClass = createEClass(LOCAL_MODE_LABEL_ASSIGNMENT);
@@ -17394,30 +17599,45 @@
createEAttribute(localModeConditionEClass, LOCAL_MODE_CONDITION__RELATION);
iLocalModeValueSourceEClass = createEClass(ILOCAL_MODE_VALUE_SOURCE);
+ createEOperation(iLocalModeValueSourceEClass, ILOCAL_MODE_VALUE_SOURCE___IS_ENUM);
+ createEOperation(iLocalModeValueSourceEClass, ILOCAL_MODE_VALUE_SOURCE___IS_NUMERIC);
+ createEOperation(iLocalModeValueSourceEClass, ILOCAL_MODE_VALUE_SOURCE___GET_MODE);
modeLiteralConstEClass = createEClass(MODE_LITERAL_CONST);
createEReference(modeLiteralConstEClass, MODE_LITERAL_CONST__VALUE);
+ createEOperation(modeLiteralConstEClass, MODE_LITERAL_CONST___IS_ENUM);
+ createEOperation(modeLiteralConstEClass, MODE_LITERAL_CONST___GET_MODE);
integerConstEClass = createEClass(INTEGER_CONST);
createEAttribute(integerConstEClass, INTEGER_CONST__VALUE);
+ createEOperation(integerConstEClass, INTEGER_CONST___IS_NUMERIC);
modeLabelRefEClass = createEClass(MODE_LABEL_REF);
createEReference(modeLabelRefEClass, MODE_LABEL_REF__VALUE);
+ createEOperation(modeLabelRefEClass, MODE_LABEL_REF___IS_ENUM);
+ createEOperation(modeLabelRefEClass, MODE_LABEL_REF___IS_NUMERIC);
+ createEOperation(modeLabelRefEClass, MODE_LABEL_REF___GET_MODE);
localModeLabelRefEClass = createEClass(LOCAL_MODE_LABEL_REF);
createEReference(localModeLabelRefEClass, LOCAL_MODE_LABEL_REF__VALUE);
+ createEOperation(localModeLabelRefEClass, LOCAL_MODE_LABEL_REF___IS_ENUM);
+ createEOperation(localModeLabelRefEClass, LOCAL_MODE_LABEL_REF___IS_NUMERIC);
+ createEOperation(localModeLabelRefEClass, LOCAL_MODE_LABEL_REF___GET_MODE);
channelFillRefEClass = createEClass(CHANNEL_FILL_REF);
createEReference(channelFillRefEClass, CHANNEL_FILL_REF__VALUE);
+ createEOperation(channelFillRefEClass, CHANNEL_FILL_REF___IS_NUMERIC);
arithmeticExpressionEClass = createEClass(ARITHMETIC_EXPRESSION);
createEReference(arithmeticExpressionEClass, ARITHMETIC_EXPRESSION__OPERAND1);
createEReference(arithmeticExpressionEClass, ARITHMETIC_EXPRESSION__OPERAND2);
createEAttribute(arithmeticExpressionEClass, ARITHMETIC_EXPRESSION__OPERATOR);
+ createEOperation(arithmeticExpressionEClass, ARITHMETIC_EXPRESSION___IS_NUMERIC);
modeLabelAssignmentEClass = createEClass(MODE_LABEL_ASSIGNMENT);
createEReference(modeLabelAssignmentEClass, MODE_LABEL_ASSIGNMENT__GLOBAL_LABEL);
createEReference(modeLabelAssignmentEClass, MODE_LABEL_ASSIGNMENT__LOCAL_LABEL);
+ createEOperation(modeLabelAssignmentEClass, MODE_LABEL_ASSIGNMENT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP);
// Create enums
relationalOperatorEEnum = createEEnum(RELATIONAL_OPERATOR);
@@ -19215,6 +19435,15 @@
op = initEOperation(getModeLabelCondition__IsSatisfiedBy__EMap(), theEcorePackage.getEBoolean(), "isSatisfiedBy", 0, 1, !IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getModeValueMapEntry(), "context", 0, -1, !IS_UNIQUE, IS_ORDERED);
+ op = initEOperation(getModeLabelCondition__ValidateInvariants__DiagnosticChain_Map(), theEcorePackage.getEBoolean(), "validateInvariants", 0, 1, !IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theEcorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED);
+ g1 = createEGenericType(theEcorePackage.getEMap());
+ g2 = createEGenericType(theEcorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(theEcorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
initEClass(conditionDisjunctionEClass, ConditionDisjunction.class, "ConditionDisjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getConditionDisjunction_Entries(), this.getConditionDisjunctionEntry(), null, "entries", null, 1, -1, ConditionDisjunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -19695,10 +19924,32 @@
initEOperation(getLocalModeLabel__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
+ op = initEOperation(getLocalModeLabel__ValidateInvariants__DiagnosticChain_Map(), theEcorePackage.getEBoolean(), "validateInvariants", 0, 1, !IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theEcorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED);
+ g1 = createEGenericType(theEcorePackage.getEMap());
+ g2 = createEGenericType(theEcorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(theEcorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getLocalModeLabel__IsEnum(), theEcorePackage.getEBoolean(), "isEnum", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getLocalModeLabel__IsNumeric(), theEcorePackage.getEBoolean(), "isNumeric", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
initEClass(localModeValueEClass, LocalModeValue.class, "LocalModeValue", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getLocalModeValue_Label(), this.getLocalModeLabel(), null, "label", null, 1, 1, LocalModeValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getLocalModeValue_ValueSource(), this.getILocalModeValueSource(), null, "valueSource", null, 1, 1, LocalModeValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ op = initEOperation(getLocalModeValue__ValidateInvariants__DiagnosticChain_Map(), theEcorePackage.getEBoolean(), "validateInvariants", 0, 1, !IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theEcorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED);
+ g1 = createEGenericType(theEcorePackage.getEMap());
+ g2 = createEGenericType(theEcorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(theEcorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
initEClass(localModeLabelAssignmentEClass, LocalModeLabelAssignment.class, "LocalModeLabelAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(localModeConditionEClass, LocalModeCondition.class, "LocalModeCondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -19706,30 +19957,67 @@
initEClass(iLocalModeValueSourceEClass, ILocalModeValueSource.class, "ILocalModeValueSource", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEOperation(getILocalModeValueSource__IsEnum(), theEcorePackage.getEBoolean(), "isEnum", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getILocalModeValueSource__IsNumeric(), theEcorePackage.getEBoolean(), "isNumeric", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getILocalModeValueSource__GetMode(), this.getMode(), "getMode", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
initEClass(modeLiteralConstEClass, ModeLiteralConst.class, "ModeLiteralConst", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getModeLiteralConst_Value(), this.getModeLiteral(), null, "value", null, 1, 1, ModeLiteralConst.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEOperation(getModeLiteralConst__IsEnum(), theEcorePackage.getEBoolean(), "isEnum", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getModeLiteralConst__GetMode(), this.getMode(), "getMode", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
initEClass(integerConstEClass, IntegerConst.class, "IntegerConst", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getIntegerConst_Value(), theEcorePackage.getEInt(), "value", "0", 1, 1, IntegerConst.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEOperation(getIntegerConst__IsNumeric(), theEcorePackage.getEBoolean(), "isNumeric", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
initEClass(modeLabelRefEClass, ModeLabelRef.class, "ModeLabelRef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getModeLabelRef_Value(), this.getModeLabel(), null, "value", null, 1, 1, ModeLabelRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEOperation(getModeLabelRef__IsEnum(), theEcorePackage.getEBoolean(), "isEnum", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getModeLabelRef__IsNumeric(), theEcorePackage.getEBoolean(), "isNumeric", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getModeLabelRef__GetMode(), this.getMode(), "getMode", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
initEClass(localModeLabelRefEClass, LocalModeLabelRef.class, "LocalModeLabelRef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getLocalModeLabelRef_Value(), this.getLocalModeLabel(), null, "value", null, 1, 1, LocalModeLabelRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEOperation(getLocalModeLabelRef__IsEnum(), theEcorePackage.getEBoolean(), "isEnum", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getLocalModeLabelRef__IsNumeric(), theEcorePackage.getEBoolean(), "isNumeric", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getLocalModeLabelRef__GetMode(), this.getMode(), "getMode", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
initEClass(channelFillRefEClass, ChannelFillRef.class, "ChannelFillRef", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getChannelFillRef_Value(), this.getChannel(), null, "value", null, 1, 1, ChannelFillRef.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEOperation(getChannelFillRef__IsNumeric(), theEcorePackage.getEBoolean(), "isNumeric", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
initEClass(arithmeticExpressionEClass, ArithmeticExpression.class, "ArithmeticExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getArithmeticExpression_Operand1(), this.getILocalModeValueSource(), null, "operand1", null, 0, 1, ArithmeticExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getArithmeticExpression_Operand2(), this.getILocalModeValueSource(), null, "operand2", null, 0, 1, ArithmeticExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getArithmeticExpression_Operator(), this.getArithmeticOperator(), "operator", null, 0, 1, ArithmeticExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEOperation(getArithmeticExpression__IsNumeric(), theEcorePackage.getEBoolean(), "isNumeric", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
initEClass(modeLabelAssignmentEClass, ModeLabelAssignment.class, "ModeLabelAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getModeLabelAssignment_GlobalLabel(), this.getModeLabel(), null, "globalLabel", null, 1, 1, ModeLabelAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getModeLabelAssignment_LocalLabel(), this.getLocalModeLabel(), null, "localLabel", null, 1, 1, ModeLabelAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ op = initEOperation(getModeLabelAssignment__ValidateInvariants__DiagnosticChain_Map(), theEcorePackage.getEBoolean(), "validateInvariants", 0, 1, !IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theEcorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED);
+ g1 = createEGenericType(theEcorePackage.getEMap());
+ g2 = createEGenericType(theEcorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(theEcorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
// Initialize enums and add enum literals
initEEnum(relationalOperatorEEnum, RelationalOperator.class, "RelationalOperator");
addEEnumLiteral(relationalOperatorEEnum, RelationalOperator._UNDEFINED_);
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ArithmeticExpressionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ArithmeticExpressionImpl.java
index b35067d..fe8891f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ArithmeticExpressionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ArithmeticExpressionImpl.java
@@ -14,16 +14,19 @@
*/
package org.eclipse.app4mc.amalthea.model.impl;
+import java.lang.reflect.InvocationTargetException;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
import org.eclipse.app4mc.amalthea.model.ArithmeticExpression;
import org.eclipse.app4mc.amalthea.model.ArithmeticOperator;
import org.eclipse.app4mc.amalthea.model.ILocalModeValueSource;
+import org.eclipse.app4mc.amalthea.model.Mode;
import org.eclipse.app4mc.amalthea.model.emf.AmaltheaEObjectImpl;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
@@ -223,6 +226,36 @@
* @generated
*/
@Override
+ public boolean isNumeric() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isEnum() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Mode getMode() {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case AmaltheaPackage.ARITHMETIC_EXPRESSION__OPERAND1:
@@ -317,6 +350,24 @@
* @generated
*/
@Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case AmaltheaPackage.ARITHMETIC_EXPRESSION___IS_NUMERIC:
+ return isNumeric();
+ case AmaltheaPackage.ARITHMETIC_EXPRESSION___IS_ENUM:
+ return isEnum();
+ case AmaltheaPackage.ARITHMETIC_EXPRESSION___GET_MODE:
+ return getMode();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public String toString() {
if (eIsProxy()) return super.toString();
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelFillRefImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelFillRefImpl.java
index 0da00dd..5edeaff 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelFillRefImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelFillRefImpl.java
@@ -14,14 +14,17 @@
*/
package org.eclipse.app4mc.amalthea.model.impl;
+import java.lang.reflect.InvocationTargetException;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
import org.eclipse.app4mc.amalthea.model.Channel;
import org.eclipse.app4mc.amalthea.model.ChannelFillRef;
+import org.eclipse.app4mc.amalthea.model.Mode;
import org.eclipse.app4mc.amalthea.model.emf.AmaltheaEObjectImpl;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
@@ -116,6 +119,36 @@
* @generated
*/
@Override
+ public boolean isNumeric() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isEnum() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Mode getMode() {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case AmaltheaPackage.CHANNEL_FILL_REF__VALUE:
@@ -169,4 +202,22 @@
return super.eIsSet(featureID);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case AmaltheaPackage.CHANNEL_FILL_REF___IS_NUMERIC:
+ return isNumeric();
+ case AmaltheaPackage.CHANNEL_FILL_REF___IS_ENUM:
+ return isEnum();
+ case AmaltheaPackage.CHANNEL_FILL_REF___GET_MODE:
+ return getMode();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
} //ChannelFillRefImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/IntegerConstImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/IntegerConstImpl.java
index 1a29942..40b22b4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/IntegerConstImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/IntegerConstImpl.java
@@ -14,13 +14,16 @@
*/
package org.eclipse.app4mc.amalthea.model.impl;
+import java.lang.reflect.InvocationTargetException;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
import org.eclipse.app4mc.amalthea.model.IntegerConst;
+import org.eclipse.app4mc.amalthea.model.Mode;
import org.eclipse.app4mc.amalthea.model.emf.AmaltheaEObjectImpl;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
@@ -107,6 +110,36 @@
* @generated
*/
@Override
+ public boolean isNumeric() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isEnum() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Mode getMode() {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case AmaltheaPackage.INTEGER_CONST__VALUE:
@@ -165,6 +198,24 @@
* @generated
*/
@Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case AmaltheaPackage.INTEGER_CONST___IS_NUMERIC:
+ return isNumeric();
+ case AmaltheaPackage.INTEGER_CONST___IS_ENUM:
+ return isEnum();
+ case AmaltheaPackage.INTEGER_CONST___GET_MODE:
+ return getMode();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public String toString() {
if (eIsProxy()) return super.toString();
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelImpl.java
index cea4c6b..ddda057 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelImpl.java
@@ -16,16 +16,21 @@
import java.lang.reflect.InvocationTargetException;
+import java.util.Map;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.AmaltheaValidations;
+import org.eclipse.app4mc.amalthea.model.EnumMode;
import org.eclipse.app4mc.amalthea.model.IExecutable;
import org.eclipse.app4mc.amalthea.model.INamed;
import org.eclipse.app4mc.amalthea.model.IReferable;
import org.eclipse.app4mc.amalthea.model.LocalModeLabel;
import org.eclipse.app4mc.amalthea.model.Mode;
+import org.eclipse.app4mc.amalthea.model.NumericMode;
import org.eclipse.app4mc.amalthea.model.ReferableBaseObject;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
@@ -210,6 +215,38 @@
* @generated
*/
@Override
+ public boolean validateInvariants(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ return AmaltheaValidations.validateInvariants(this, diagnostics);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isEnum() {
+ Mode _mode = this.getMode();
+ return (_mode instanceof EnumMode);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isNumeric() {
+ Mode _mode = this.getMode();
+ return (_mode instanceof NumericMode);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE:
@@ -337,12 +374,14 @@
}
if (baseClass == IReferable.class) {
switch (baseOperationID) {
+ case AmaltheaPackage.IREFERABLE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP: return AmaltheaPackage.LOCAL_MODE_LABEL___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.LOCAL_MODE_LABEL___GET_NAME_PREFIX_SEGMENTS;
default: return super.eDerivedOperationID(baseOperationID, baseClass);
}
}
if (baseClass == ReferableBaseObject.class) {
switch (baseOperationID) {
+ case AmaltheaPackage.REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP: return AmaltheaPackage.LOCAL_MODE_LABEL___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.LOCAL_MODE_LABEL___GET_NAME_PREFIX_SEGMENTS;
default: return super.eDerivedOperationID(baseOperationID, baseClass);
}
@@ -356,10 +395,17 @@
* @generated
*/
@Override
+ @SuppressWarnings("unchecked")
public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
switch (operationID) {
case AmaltheaPackage.LOCAL_MODE_LABEL___GET_NAME_PREFIX_SEGMENTS:
return getNamePrefixSegments();
+ case AmaltheaPackage.LOCAL_MODE_LABEL___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP:
+ return validateInvariants((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+ case AmaltheaPackage.LOCAL_MODE_LABEL___IS_ENUM:
+ return isEnum();
+ case AmaltheaPackage.LOCAL_MODE_LABEL___IS_NUMERIC:
+ return isNumeric();
}
return super.eInvoke(operationID, arguments);
}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelRefImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelRefImpl.java
index 54a672a..a7455ac 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelRefImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelRefImpl.java
@@ -14,14 +14,17 @@
*/
package org.eclipse.app4mc.amalthea.model.impl;
+import java.lang.reflect.InvocationTargetException;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
import org.eclipse.app4mc.amalthea.model.LocalModeLabel;
import org.eclipse.app4mc.amalthea.model.LocalModeLabelRef;
+import org.eclipse.app4mc.amalthea.model.Mode;
import org.eclipse.app4mc.amalthea.model.emf.AmaltheaEObjectImpl;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
@@ -116,6 +119,41 @@
* @generated
*/
@Override
+ public boolean isEnum() {
+ return this.getValue().isEnum();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isNumeric() {
+ return this.getValue().isNumeric();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Mode getMode() {
+ LocalModeLabel _value = this.getValue();
+ Mode _mode = null;
+ if (_value!=null) {
+ _mode=_value.getMode();
+ }
+ return _mode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case AmaltheaPackage.LOCAL_MODE_LABEL_REF__VALUE:
@@ -169,4 +207,22 @@
return super.eIsSet(featureID);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case AmaltheaPackage.LOCAL_MODE_LABEL_REF___IS_ENUM:
+ return isEnum();
+ case AmaltheaPackage.LOCAL_MODE_LABEL_REF___IS_NUMERIC:
+ return isNumeric();
+ case AmaltheaPackage.LOCAL_MODE_LABEL_REF___GET_MODE:
+ return getMode();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
} //LocalStateRefImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeValueImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeValueImpl.java
index c458757..36e014b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeValueImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeValueImpl.java
@@ -14,7 +14,10 @@
*/
package org.eclipse.app4mc.amalthea.model.impl;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Map;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.AmaltheaValidations;
import org.eclipse.app4mc.amalthea.model.ILocalModeValueSource;
import org.eclipse.app4mc.amalthea.model.LocalModeLabel;
import org.eclipse.app4mc.amalthea.model.LocalModeValue;
@@ -24,6 +27,8 @@
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
@@ -174,6 +179,16 @@
* @generated
*/
@Override
+ public boolean validateInvariants(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ return AmaltheaValidations.validateInvariants(this, diagnostics);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
case AmaltheaPackage.LOCAL_MODE_VALUE__VALUE_SOURCE:
@@ -251,4 +266,19 @@
return super.eIsSet(featureID);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case AmaltheaPackage.LOCAL_MODE_VALUE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP:
+ return validateInvariants((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
} //LocalModeValueImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelAssignmentImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelAssignmentImpl.java
index 6e8cf04..45c8a1a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelAssignmentImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelAssignmentImpl.java
@@ -14,13 +14,18 @@
*/
package org.eclipse.app4mc.amalthea.model.impl;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Map;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.AmaltheaValidations;
import org.eclipse.app4mc.amalthea.model.LocalModeLabel;
import org.eclipse.app4mc.amalthea.model.ModeLabel;
import org.eclipse.app4mc.amalthea.model.ModeLabelAssignment;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
@@ -166,6 +171,16 @@
* @generated
*/
@Override
+ public boolean validateInvariants(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ return AmaltheaValidations.validateInvariants(this, diagnostics);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case AmaltheaPackage.MODE_LABEL_ASSIGNMENT__GLOBAL_LABEL:
@@ -230,4 +245,19 @@
return super.eIsSet(featureID);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case AmaltheaPackage.MODE_LABEL_ASSIGNMENT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP:
+ return validateInvariants((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
} //ModeLabelAssignmentImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelConditionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelConditionImpl.java
index 35efdbe..cbfff8f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelConditionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelConditionImpl.java
@@ -17,7 +17,9 @@
import com.google.common.base.Objects;
import java.lang.reflect.InvocationTargetException;
+import java.util.Map;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.AmaltheaValidations;
import org.eclipse.app4mc.amalthea.model.Condition;
import org.eclipse.app4mc.amalthea.model.ConditionDisjunctionEntry;
import org.eclipse.app4mc.amalthea.model.ISatisfiable;
@@ -28,6 +30,7 @@
import org.eclipse.app4mc.amalthea.model.RelationalOperator;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.EMap;
@@ -240,6 +243,16 @@
* @generated
*/
@Override
+ public boolean validateInvariants(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ return AmaltheaValidations.validateInvariants(this, diagnostics);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case AmaltheaPackage.MODE_LABEL_CONDITION__RELATION:
@@ -433,6 +446,8 @@
switch (operationID) {
case AmaltheaPackage.MODE_LABEL_CONDITION___IS_SATISFIED_BY__EMAP:
return isSatisfiedBy((EMap<ModeLabel, String>)arguments.get(0));
+ case AmaltheaPackage.MODE_LABEL_CONDITION___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP:
+ return validateInvariants((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
}
return super.eInvoke(operationID, arguments);
}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelRefImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelRefImpl.java
index 1fd53be..77fe0a0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelRefImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelRefImpl.java
@@ -14,7 +14,9 @@
*/
package org.eclipse.app4mc.amalthea.model.impl;
+import java.lang.reflect.InvocationTargetException;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.Mode;
import org.eclipse.app4mc.amalthea.model.ModeLabel;
import org.eclipse.app4mc.amalthea.model.ModeLabelRef;
@@ -22,6 +24,7 @@
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
@@ -116,6 +119,41 @@
* @generated
*/
@Override
+ public boolean isEnum() {
+ return this.getValue().isEnum();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isNumeric() {
+ return this.getValue().isNumeric();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Mode getMode() {
+ ModeLabel _value = this.getValue();
+ Mode _mode = null;
+ if (_value!=null) {
+ _mode=_value.getMode();
+ }
+ return _mode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case AmaltheaPackage.MODE_LABEL_REF__VALUE:
@@ -169,4 +207,22 @@
return super.eIsSet(featureID);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case AmaltheaPackage.MODE_LABEL_REF___IS_ENUM:
+ return isEnum();
+ case AmaltheaPackage.MODE_LABEL_REF___IS_NUMERIC:
+ return isNumeric();
+ case AmaltheaPackage.MODE_LABEL_REF___GET_MODE:
+ return getMode();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
} //ModeLabelRefImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLiteralConstImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLiteralConstImpl.java
index b44882d..7025869 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLiteralConstImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLiteralConstImpl.java
@@ -14,7 +14,10 @@
*/
package org.eclipse.app4mc.amalthea.model.impl;
+import java.lang.reflect.InvocationTargetException;
import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.EnumMode;
+import org.eclipse.app4mc.amalthea.model.Mode;
import org.eclipse.app4mc.amalthea.model.ModeLiteral;
import org.eclipse.app4mc.amalthea.model.ModeLiteralConst;
@@ -22,6 +25,7 @@
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
@@ -116,6 +120,41 @@
* @generated
*/
@Override
+ public boolean isEnum() {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isNumeric() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Mode getMode() {
+ ModeLiteral _value = this.getValue();
+ EnumMode _containingMode = null;
+ if (_value!=null) {
+ _containingMode=_value.getContainingMode();
+ }
+ return _containingMode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case AmaltheaPackage.MODE_LITERAL_CONST__VALUE:
@@ -169,4 +208,22 @@
return super.eIsSet(featureID);
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case AmaltheaPackage.MODE_LITERAL_CONST___IS_ENUM:
+ return isEnum();
+ case AmaltheaPackage.MODE_LITERAL_CONST___GET_MODE:
+ return getMode();
+ case AmaltheaPackage.MODE_LITERAL_CONST___IS_NUMERIC:
+ return isNumeric();
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
} //ModeLiteralConstImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaValidator.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaValidator.java
index 8dbce76..7fc9f5d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaValidator.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaValidator.java
@@ -15,6 +15,433 @@
package org.eclipse.app4mc.amalthea.model.util;
import java.util.Map;
+import org.eclipse.app4mc.amalthea.model.ASILType;
+import org.eclipse.app4mc.amalthea.model.AbstractElementMappingConstraint;
+import org.eclipse.app4mc.amalthea.model.AbstractEventChain;
+import org.eclipse.app4mc.amalthea.model.AbstractMemoryElement;
+import org.eclipse.app4mc.amalthea.model.AbstractProcess;
+import org.eclipse.app4mc.amalthea.model.AccessMultiplicity;
+import org.eclipse.app4mc.amalthea.model.AccessPrecedenceSpec;
+import org.eclipse.app4mc.amalthea.model.AccessPrecedenceType;
+import org.eclipse.app4mc.amalthea.model.Activation;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
+import org.eclipse.app4mc.amalthea.model.AffinityConstraint;
+import org.eclipse.app4mc.amalthea.model.Alias;
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ArchitectureRequirement;
+import org.eclipse.app4mc.amalthea.model.ArithmeticExpression;
+import org.eclipse.app4mc.amalthea.model.ArithmeticOperator;
+import org.eclipse.app4mc.amalthea.model.Array;
+import org.eclipse.app4mc.amalthea.model.ArrivalCurveEntry;
+import org.eclipse.app4mc.amalthea.model.ArrivalCurveStimulus;
+import org.eclipse.app4mc.amalthea.model.AsynchronousServerCall;
+import org.eclipse.app4mc.amalthea.model.BaseObject;
+import org.eclipse.app4mc.amalthea.model.BaseTypeDefinition;
+import org.eclipse.app4mc.amalthea.model.BigIntegerObject;
+import org.eclipse.app4mc.amalthea.model.BlockingType;
+import org.eclipse.app4mc.amalthea.model.BooleanObject;
+import org.eclipse.app4mc.amalthea.model.BoundedContinuousValueDistribution;
+import org.eclipse.app4mc.amalthea.model.BoundedDiscreteValueDistribution;
+import org.eclipse.app4mc.amalthea.model.BoundedTimeDistribution;
+import org.eclipse.app4mc.amalthea.model.CPUPercentageMetric;
+import org.eclipse.app4mc.amalthea.model.CPUPercentageRequirementLimit;
+import org.eclipse.app4mc.amalthea.model.Cache;
+import org.eclipse.app4mc.amalthea.model.CacheDefinition;
+import org.eclipse.app4mc.amalthea.model.CacheType;
+import org.eclipse.app4mc.amalthea.model.CallArgument;
+import org.eclipse.app4mc.amalthea.model.ChainedProcessPrototype;
+import org.eclipse.app4mc.amalthea.model.Channel;
+import org.eclipse.app4mc.amalthea.model.ChannelAccess;
+import org.eclipse.app4mc.amalthea.model.ChannelEvent;
+import org.eclipse.app4mc.amalthea.model.ChannelEventType;
+import org.eclipse.app4mc.amalthea.model.ChannelFillCondition;
+import org.eclipse.app4mc.amalthea.model.ChannelFillRef;
+import org.eclipse.app4mc.amalthea.model.ChannelReceive;
+import org.eclipse.app4mc.amalthea.model.ChannelSend;
+import org.eclipse.app4mc.amalthea.model.Classification;
+import org.eclipse.app4mc.amalthea.model.Classifier;
+import org.eclipse.app4mc.amalthea.model.ClearEvent;
+import org.eclipse.app4mc.amalthea.model.Clock;
+import org.eclipse.app4mc.amalthea.model.ClockFunction;
+import org.eclipse.app4mc.amalthea.model.ClockStep;
+import org.eclipse.app4mc.amalthea.model.ClockStepList;
+import org.eclipse.app4mc.amalthea.model.CoherencyDirection;
+import org.eclipse.app4mc.amalthea.model.CombinatorialCondition;
+import org.eclipse.app4mc.amalthea.model.CommonElements;
+import org.eclipse.app4mc.amalthea.model.Component;
+import org.eclipse.app4mc.amalthea.model.ComponentEvent;
+import org.eclipse.app4mc.amalthea.model.ComponentEventType;
+import org.eclipse.app4mc.amalthea.model.ComponentInstance;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
+import org.eclipse.app4mc.amalthea.model.ComponentScope;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
+import org.eclipse.app4mc.amalthea.model.ComponentsModel;
+import org.eclipse.app4mc.amalthea.model.Composite;
+import org.eclipse.app4mc.amalthea.model.CompoundType;
+import org.eclipse.app4mc.amalthea.model.ComputationItem;
+import org.eclipse.app4mc.amalthea.model.ConcurrencyType;
+import org.eclipse.app4mc.amalthea.model.Condition;
+import org.eclipse.app4mc.amalthea.model.ConditionConjunction;
+import org.eclipse.app4mc.amalthea.model.ConditionDisjunction;
+import org.eclipse.app4mc.amalthea.model.ConditionDisjunctionEntry;
+import org.eclipse.app4mc.amalthea.model.ConfigModel;
+import org.eclipse.app4mc.amalthea.model.ConnectionHandler;
+import org.eclipse.app4mc.amalthea.model.ConnectionHandlerDefinition;
+import org.eclipse.app4mc.amalthea.model.Connector;
+import org.eclipse.app4mc.amalthea.model.ConstraintsModel;
+import org.eclipse.app4mc.amalthea.model.ContinuousValueBetaDistribution;
+import org.eclipse.app4mc.amalthea.model.ContinuousValueBoundaries;
+import org.eclipse.app4mc.amalthea.model.ContinuousValueConstant;
+import org.eclipse.app4mc.amalthea.model.ContinuousValueGaussDistribution;
+import org.eclipse.app4mc.amalthea.model.ContinuousValueHistogram;
+import org.eclipse.app4mc.amalthea.model.ContinuousValueHistogramEntry;
+import org.eclipse.app4mc.amalthea.model.ContinuousValueInterval;
+import org.eclipse.app4mc.amalthea.model.ContinuousValueStatistics;
+import org.eclipse.app4mc.amalthea.model.ContinuousValueUniformDistribution;
+import org.eclipse.app4mc.amalthea.model.ContinuousValueWeibullEstimatorsDistribution;
+import org.eclipse.app4mc.amalthea.model.CoreAllocationConstraint;
+import org.eclipse.app4mc.amalthea.model.CoreClassification;
+import org.eclipse.app4mc.amalthea.model.CoreClassifier;
+import org.eclipse.app4mc.amalthea.model.CountMetric;
+import org.eclipse.app4mc.amalthea.model.CountRequirementLimit;
+import org.eclipse.app4mc.amalthea.model.Counter;
+import org.eclipse.app4mc.amalthea.model.CurveType;
+import org.eclipse.app4mc.amalthea.model.CustomActivation;
+import org.eclipse.app4mc.amalthea.model.CustomEntity;
+import org.eclipse.app4mc.amalthea.model.CustomEvent;
+import org.eclipse.app4mc.amalthea.model.CustomEventTrigger;
+import org.eclipse.app4mc.amalthea.model.CustomStimulus;
+import org.eclipse.app4mc.amalthea.model.DataAge;
+import org.eclipse.app4mc.amalthea.model.DataAgeConstraint;
+import org.eclipse.app4mc.amalthea.model.DataAgeCycle;
+import org.eclipse.app4mc.amalthea.model.DataAgeTime;
+import org.eclipse.app4mc.amalthea.model.DataCoherencyGroup;
+import org.eclipse.app4mc.amalthea.model.DataConstraint;
+import org.eclipse.app4mc.amalthea.model.DataConstraintTarget;
+import org.eclipse.app4mc.amalthea.model.DataDependency;
+import org.eclipse.app4mc.amalthea.model.DataGroupScope;
+import org.eclipse.app4mc.amalthea.model.DataPairingConstraint;
+import org.eclipse.app4mc.amalthea.model.DataRate;
+import org.eclipse.app4mc.amalthea.model.DataRateUnit;
+import org.eclipse.app4mc.amalthea.model.DataSeparationConstraint;
+import org.eclipse.app4mc.amalthea.model.DataSize;
+import org.eclipse.app4mc.amalthea.model.DataSizeUnit;
+import org.eclipse.app4mc.amalthea.model.DataStability;
+import org.eclipse.app4mc.amalthea.model.DataStabilityGroup;
+import org.eclipse.app4mc.amalthea.model.DataStabilityLevel;
+import org.eclipse.app4mc.amalthea.model.DataType;
+import org.eclipse.app4mc.amalthea.model.DataTypeDefinition;
+import org.eclipse.app4mc.amalthea.model.DelayConstraint;
+import org.eclipse.app4mc.amalthea.model.DirectionType;
+import org.eclipse.app4mc.amalthea.model.DiscreteValueBetaDistribution;
+import org.eclipse.app4mc.amalthea.model.DiscreteValueBoundaries;
+import org.eclipse.app4mc.amalthea.model.DiscreteValueConstant;
+import org.eclipse.app4mc.amalthea.model.DiscreteValueGaussDistribution;
+import org.eclipse.app4mc.amalthea.model.DiscreteValueHistogram;
+import org.eclipse.app4mc.amalthea.model.DiscreteValueHistogramEntry;
+import org.eclipse.app4mc.amalthea.model.DiscreteValueInterval;
+import org.eclipse.app4mc.amalthea.model.DiscreteValueStatistics;
+import org.eclipse.app4mc.amalthea.model.DiscreteValueUniformDistribution;
+import org.eclipse.app4mc.amalthea.model.DiscreteValueWeibullEstimatorsDistribution;
+import org.eclipse.app4mc.amalthea.model.DoubleObject;
+import org.eclipse.app4mc.amalthea.model.EnforcedMigration;
+import org.eclipse.app4mc.amalthea.model.EntityEvent;
+import org.eclipse.app4mc.amalthea.model.EnumMode;
+import org.eclipse.app4mc.amalthea.model.Event;
+import org.eclipse.app4mc.amalthea.model.EventActivation;
+import org.eclipse.app4mc.amalthea.model.EventChain;
+import org.eclipse.app4mc.amalthea.model.EventChainContainer;
+import org.eclipse.app4mc.amalthea.model.EventChainItem;
+import org.eclipse.app4mc.amalthea.model.EventChainItemType;
+import org.eclipse.app4mc.amalthea.model.EventChainLatencyConstraint;
+import org.eclipse.app4mc.amalthea.model.EventChainReference;
+import org.eclipse.app4mc.amalthea.model.EventChainSynchronizationConstraint;
+import org.eclipse.app4mc.amalthea.model.EventConfig;
+import org.eclipse.app4mc.amalthea.model.EventMask;
+import org.eclipse.app4mc.amalthea.model.EventModel;
+import org.eclipse.app4mc.amalthea.model.EventSet;
+import org.eclipse.app4mc.amalthea.model.EventStimulus;
+import org.eclipse.app4mc.amalthea.model.EventSynchronizationConstraint;
+import org.eclipse.app4mc.amalthea.model.ExecutionNeed;
+import org.eclipse.app4mc.amalthea.model.FixedPeriodic;
+import org.eclipse.app4mc.amalthea.model.FloatObject;
+import org.eclipse.app4mc.amalthea.model.Frequency;
+import org.eclipse.app4mc.amalthea.model.FrequencyDomain;
+import org.eclipse.app4mc.amalthea.model.FrequencyMetric;
+import org.eclipse.app4mc.amalthea.model.FrequencyRequirementLimit;
+import org.eclipse.app4mc.amalthea.model.FrequencyUnit;
+import org.eclipse.app4mc.amalthea.model.GeneralPrecedence;
+import org.eclipse.app4mc.amalthea.model.GetResultServerCall;
+import org.eclipse.app4mc.amalthea.model.Group;
+import org.eclipse.app4mc.amalthea.model.GroupingType;
+import org.eclipse.app4mc.amalthea.model.HWModel;
+import org.eclipse.app4mc.amalthea.model.HwAccessElement;
+import org.eclipse.app4mc.amalthea.model.HwAccessPath;
+import org.eclipse.app4mc.amalthea.model.HwConnection;
+import org.eclipse.app4mc.amalthea.model.HwDefinition;
+import org.eclipse.app4mc.amalthea.model.HwDestination;
+import org.eclipse.app4mc.amalthea.model.HwDomain;
+import org.eclipse.app4mc.amalthea.model.HwFeature;
+import org.eclipse.app4mc.amalthea.model.HwFeatureCategory;
+import org.eclipse.app4mc.amalthea.model.HwFeatureType;
+import org.eclipse.app4mc.amalthea.model.HwModule;
+import org.eclipse.app4mc.amalthea.model.HwPath;
+import org.eclipse.app4mc.amalthea.model.HwPathElement;
+import org.eclipse.app4mc.amalthea.model.HwPort;
+import org.eclipse.app4mc.amalthea.model.HwStructure;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IAnnotatable;
+import org.eclipse.app4mc.amalthea.model.IComponentContainer;
+import org.eclipse.app4mc.amalthea.model.IComponentStructureMember;
+import org.eclipse.app4mc.amalthea.model.IContinuousValueDeviation;
+import org.eclipse.app4mc.amalthea.model.IDependsOn;
+import org.eclipse.app4mc.amalthea.model.IDescription;
+import org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation;
+import org.eclipse.app4mc.amalthea.model.IDisplayName;
+import org.eclipse.app4mc.amalthea.model.IExecutable;
+import org.eclipse.app4mc.amalthea.model.IInterfaceContainer;
+import org.eclipse.app4mc.amalthea.model.ILocalModeValueSource;
+import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
+import org.eclipse.app4mc.amalthea.model.IReferable;
+import org.eclipse.app4mc.amalthea.model.ISR;
+import org.eclipse.app4mc.amalthea.model.ISRAllocation;
+import org.eclipse.app4mc.amalthea.model.ISRCategory;
+import org.eclipse.app4mc.amalthea.model.ISatisfiable;
+import org.eclipse.app4mc.amalthea.model.ISchedulingParameterContainer;
+import org.eclipse.app4mc.amalthea.model.ISystem;
+import org.eclipse.app4mc.amalthea.model.ITaggable;
+import org.eclipse.app4mc.amalthea.model.ITimeDeviation;
+import org.eclipse.app4mc.amalthea.model.IntegerConst;
+import org.eclipse.app4mc.amalthea.model.IntegerObject;
+import org.eclipse.app4mc.amalthea.model.InterProcessStimulus;
+import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
+import org.eclipse.app4mc.amalthea.model.InterfaceKind;
+import org.eclipse.app4mc.amalthea.model.InterruptController;
+import org.eclipse.app4mc.amalthea.model.Label;
+import org.eclipse.app4mc.amalthea.model.LabelAccess;
+import org.eclipse.app4mc.amalthea.model.LabelAccessDataStability;
+import org.eclipse.app4mc.amalthea.model.LabelAccessEnum;
+import org.eclipse.app4mc.amalthea.model.LabelAccessImplementation;
+import org.eclipse.app4mc.amalthea.model.LabelAccessStatistic;
+import org.eclipse.app4mc.amalthea.model.LabelDataStability;
+import org.eclipse.app4mc.amalthea.model.LabelEntityGroup;
+import org.eclipse.app4mc.amalthea.model.LabelEvent;
+import org.eclipse.app4mc.amalthea.model.LabelEventType;
+import org.eclipse.app4mc.amalthea.model.LabelGroup;
+import org.eclipse.app4mc.amalthea.model.LatencyType;
+import org.eclipse.app4mc.amalthea.model.LimitType;
+import org.eclipse.app4mc.amalthea.model.ListObject;
+import org.eclipse.app4mc.amalthea.model.LocalModeCondition;
+import org.eclipse.app4mc.amalthea.model.LocalModeLabel;
+import org.eclipse.app4mc.amalthea.model.LocalModeLabelAssignment;
+import org.eclipse.app4mc.amalthea.model.LocalModeLabelRef;
+import org.eclipse.app4mc.amalthea.model.LocalModeValue;
+import org.eclipse.app4mc.amalthea.model.LongObject;
+import org.eclipse.app4mc.amalthea.model.MainInterface;
+import org.eclipse.app4mc.amalthea.model.MapObject;
+import org.eclipse.app4mc.amalthea.model.MappingModel;
+import org.eclipse.app4mc.amalthea.model.MappingType;
+import org.eclipse.app4mc.amalthea.model.Memory;
+import org.eclipse.app4mc.amalthea.model.MemoryAddressMappingType;
+import org.eclipse.app4mc.amalthea.model.MemoryClassification;
+import org.eclipse.app4mc.amalthea.model.MemoryClassifier;
+import org.eclipse.app4mc.amalthea.model.MemoryDefinition;
+import org.eclipse.app4mc.amalthea.model.MemoryMapping;
+import org.eclipse.app4mc.amalthea.model.MemoryMappingConstraint;
+import org.eclipse.app4mc.amalthea.model.MemoryType;
+import org.eclipse.app4mc.amalthea.model.MinAvgMaxStatistic;
+import org.eclipse.app4mc.amalthea.model.Mode;
+import org.eclipse.app4mc.amalthea.model.ModeAssignment;
+import org.eclipse.app4mc.amalthea.model.ModeCondition;
+import org.eclipse.app4mc.amalthea.model.ModeConditionConjunction;
+import org.eclipse.app4mc.amalthea.model.ModeConditionDisjunction;
+import org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry;
+import org.eclipse.app4mc.amalthea.model.ModeLabel;
+import org.eclipse.app4mc.amalthea.model.ModeLabelAccess;
+import org.eclipse.app4mc.amalthea.model.ModeLabelAccessEnum;
+import org.eclipse.app4mc.amalthea.model.ModeLabelAssignment;
+import org.eclipse.app4mc.amalthea.model.ModeLabelCondition;
+import org.eclipse.app4mc.amalthea.model.ModeLabelEvent;
+import org.eclipse.app4mc.amalthea.model.ModeLabelEventType;
+import org.eclipse.app4mc.amalthea.model.ModeLabelRef;
+import org.eclipse.app4mc.amalthea.model.ModeLiteral;
+import org.eclipse.app4mc.amalthea.model.ModeLiteralConst;
+import org.eclipse.app4mc.amalthea.model.ModeSwitch;
+import org.eclipse.app4mc.amalthea.model.ModeSwitchDefault;
+import org.eclipse.app4mc.amalthea.model.ModeSwitchEntry;
+import org.eclipse.app4mc.amalthea.model.ModeValue;
+import org.eclipse.app4mc.amalthea.model.ModeValueCondition;
+import org.eclipse.app4mc.amalthea.model.ModeValueList;
+import org.eclipse.app4mc.amalthea.model.Namespace;
+import org.eclipse.app4mc.amalthea.model.NonAtomicDataCoherency;
+import org.eclipse.app4mc.amalthea.model.NumericMode;
+import org.eclipse.app4mc.amalthea.model.NumericStatistic;
+import org.eclipse.app4mc.amalthea.model.OSModel;
+import org.eclipse.app4mc.amalthea.model.OperatingSystem;
+import org.eclipse.app4mc.amalthea.model.OrderPrecedenceSpec;
+import org.eclipse.app4mc.amalthea.model.OrderType;
+import org.eclipse.app4mc.amalthea.model.OsAPIOverhead;
+import org.eclipse.app4mc.amalthea.model.OsDataConsistency;
+import org.eclipse.app4mc.amalthea.model.OsDataConsistencyMode;
+import org.eclipse.app4mc.amalthea.model.OsDefinition;
+import org.eclipse.app4mc.amalthea.model.OsEvent;
+import org.eclipse.app4mc.amalthea.model.OsISROverhead;
+import org.eclipse.app4mc.amalthea.model.OsOverhead;
+import org.eclipse.app4mc.amalthea.model.PairingConstraint;
+import org.eclipse.app4mc.amalthea.model.ParameterType;
+import org.eclipse.app4mc.amalthea.model.PercentageMetric;
+import org.eclipse.app4mc.amalthea.model.PercentageRequirementLimit;
+import org.eclipse.app4mc.amalthea.model.PeriodicActivation;
+import org.eclipse.app4mc.amalthea.model.PeriodicBurstStimulus;
+import org.eclipse.app4mc.amalthea.model.PeriodicStimulus;
+import org.eclipse.app4mc.amalthea.model.PeriodicSyntheticStimulus;
+import org.eclipse.app4mc.amalthea.model.PhysicalSectionConstraint;
+import org.eclipse.app4mc.amalthea.model.PhysicalSectionMapping;
+import org.eclipse.app4mc.amalthea.model.Pointer;
+import org.eclipse.app4mc.amalthea.model.PortInterface;
+import org.eclipse.app4mc.amalthea.model.PortType;
+import org.eclipse.app4mc.amalthea.model.PowerDomain;
+import org.eclipse.app4mc.amalthea.model.Preemption;
+import org.eclipse.app4mc.amalthea.model.ProbabilitySwitch;
+import org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry;
+import org.eclipse.app4mc.amalthea.model.ProcessAllocationConstraint;
+import org.eclipse.app4mc.amalthea.model.ProcessChain;
+import org.eclipse.app4mc.amalthea.model.ProcessChainEvent;
+import org.eclipse.app4mc.amalthea.model.ProcessChainRequirement;
+import org.eclipse.app4mc.amalthea.model.ProcessConstraint;
+import org.eclipse.app4mc.amalthea.model.ProcessConstraintTarget;
+import org.eclipse.app4mc.amalthea.model.ProcessEntityGroup;
+import org.eclipse.app4mc.amalthea.model.ProcessEvent;
+import org.eclipse.app4mc.amalthea.model.ProcessEventType;
+import org.eclipse.app4mc.amalthea.model.ProcessGroup;
+import org.eclipse.app4mc.amalthea.model.ProcessPairingConstraint;
+import org.eclipse.app4mc.amalthea.model.ProcessPrototype;
+import org.eclipse.app4mc.amalthea.model.ProcessPrototypeAllocationConstraint;
+import org.eclipse.app4mc.amalthea.model.ProcessRequirement;
+import org.eclipse.app4mc.amalthea.model.ProcessScope;
+import org.eclipse.app4mc.amalthea.model.ProcessSeparationConstraint;
+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;
+import org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition;
+import org.eclipse.app4mc.amalthea.model.PropertyConstraintsModel;
+import org.eclipse.app4mc.amalthea.model.PuType;
+import org.eclipse.app4mc.amalthea.model.QualifiedPort;
+import org.eclipse.app4mc.amalthea.model.Quantity;
+import org.eclipse.app4mc.amalthea.model.ReceiveOperation;
+import org.eclipse.app4mc.amalthea.model.ReferableBaseObject;
+import org.eclipse.app4mc.amalthea.model.ReferableObject;
+import org.eclipse.app4mc.amalthea.model.ReferenceObject;
+import org.eclipse.app4mc.amalthea.model.RelationalOperator;
+import org.eclipse.app4mc.amalthea.model.RelativePeriodicStimulus;
+import org.eclipse.app4mc.amalthea.model.RepetitionConstraint;
+import org.eclipse.app4mc.amalthea.model.Requirement;
+import org.eclipse.app4mc.amalthea.model.RequirementLimit;
+import org.eclipse.app4mc.amalthea.model.RunEntityCallStatistic;
+import org.eclipse.app4mc.amalthea.model.RunnableAllocation;
+import org.eclipse.app4mc.amalthea.model.RunnableAllocationConstraint;
+import org.eclipse.app4mc.amalthea.model.RunnableCall;
+import org.eclipse.app4mc.amalthea.model.RunnableConstraint;
+import org.eclipse.app4mc.amalthea.model.RunnableConstraintTarget;
+import org.eclipse.app4mc.amalthea.model.RunnableEntityGroup;
+import org.eclipse.app4mc.amalthea.model.RunnableEvent;
+import org.eclipse.app4mc.amalthea.model.RunnableEventType;
+import org.eclipse.app4mc.amalthea.model.RunnableGroup;
+import org.eclipse.app4mc.amalthea.model.RunnableOrderType;
+import org.eclipse.app4mc.amalthea.model.RunnablePairingConstraint;
+import org.eclipse.app4mc.amalthea.model.RunnableParameter;
+import org.eclipse.app4mc.amalthea.model.RunnableRequirement;
+import org.eclipse.app4mc.amalthea.model.RunnableScope;
+import org.eclipse.app4mc.amalthea.model.RunnableSeparationConstraint;
+import org.eclipse.app4mc.amalthea.model.RunnableSequencingConstraint;
+import org.eclipse.app4mc.amalthea.model.SWModel;
+import org.eclipse.app4mc.amalthea.model.SamplingType;
+import org.eclipse.app4mc.amalthea.model.Scenario;
+import org.eclipse.app4mc.amalthea.model.SchedPolicy;
+import org.eclipse.app4mc.amalthea.model.SchedulePoint;
+import org.eclipse.app4mc.amalthea.model.Scheduler;
+import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;
+import org.eclipse.app4mc.amalthea.model.SchedulerAssociation;
+import org.eclipse.app4mc.amalthea.model.SchedulerDefinition;
+import org.eclipse.app4mc.amalthea.model.SchedulingParameterDefinition;
+import org.eclipse.app4mc.amalthea.model.Section;
+import org.eclipse.app4mc.amalthea.model.Semaphore;
+import org.eclipse.app4mc.amalthea.model.SemaphoreAccess;
+import org.eclipse.app4mc.amalthea.model.SemaphoreAccessEnum;
+import org.eclipse.app4mc.amalthea.model.SemaphoreEvent;
+import org.eclipse.app4mc.amalthea.model.SemaphoreEventType;
+import org.eclipse.app4mc.amalthea.model.SemaphoreType;
+import org.eclipse.app4mc.amalthea.model.SenderReceiverCommunication;
+import org.eclipse.app4mc.amalthea.model.SenderReceiverRead;
+import org.eclipse.app4mc.amalthea.model.SenderReceiverWrite;
+import org.eclipse.app4mc.amalthea.model.SeparationConstraint;
+import org.eclipse.app4mc.amalthea.model.ServerCall;
+import org.eclipse.app4mc.amalthea.model.SetEvent;
+import org.eclipse.app4mc.amalthea.model.Severity;
+import org.eclipse.app4mc.amalthea.model.SingleActivation;
+import org.eclipse.app4mc.amalthea.model.SingleStimulus;
+import org.eclipse.app4mc.amalthea.model.SingleValueStatistic;
+import org.eclipse.app4mc.amalthea.model.SporadicActivation;
+import org.eclipse.app4mc.amalthea.model.StimuliModel;
+import org.eclipse.app4mc.amalthea.model.Stimulus;
+import org.eclipse.app4mc.amalthea.model.StimulusEvent;
+import org.eclipse.app4mc.amalthea.model.StringObject;
+import org.eclipse.app4mc.amalthea.model.Struct;
+import org.eclipse.app4mc.amalthea.model.StructEntry;
+import org.eclipse.app4mc.amalthea.model.StructureType;
+import org.eclipse.app4mc.amalthea.model.SubEventChain;
+import org.eclipse.app4mc.amalthea.model.SubInterface;
+import org.eclipse.app4mc.amalthea.model.Switch;
+import org.eclipse.app4mc.amalthea.model.SwitchDefault;
+import org.eclipse.app4mc.amalthea.model.SwitchEntry;
+import org.eclipse.app4mc.amalthea.model.SynchronizationConstraint;
+import org.eclipse.app4mc.amalthea.model.SynchronizationType;
+import org.eclipse.app4mc.amalthea.model.SynchronousServerCall;
+import org.eclipse.app4mc.amalthea.model.Tag;
+import org.eclipse.app4mc.amalthea.model.TagGroup;
+import org.eclipse.app4mc.amalthea.model.TargetCore;
+import org.eclipse.app4mc.amalthea.model.TargetMemory;
+import org.eclipse.app4mc.amalthea.model.TargetScheduler;
+import org.eclipse.app4mc.amalthea.model.Task;
+import org.eclipse.app4mc.amalthea.model.TaskAllocation;
+import org.eclipse.app4mc.amalthea.model.TaskScheduler;
+import org.eclipse.app4mc.amalthea.model.TerminateProcess;
+import org.eclipse.app4mc.amalthea.model.Ticks;
+import org.eclipse.app4mc.amalthea.model.Time;
+import org.eclipse.app4mc.amalthea.model.TimeBetaDistribution;
+import org.eclipse.app4mc.amalthea.model.TimeBoundaries;
+import org.eclipse.app4mc.amalthea.model.TimeConstant;
+import org.eclipse.app4mc.amalthea.model.TimeGaussDistribution;
+import org.eclipse.app4mc.amalthea.model.TimeHistogram;
+import org.eclipse.app4mc.amalthea.model.TimeHistogramEntry;
+import org.eclipse.app4mc.amalthea.model.TimeInterval;
+import org.eclipse.app4mc.amalthea.model.TimeMetric;
+import org.eclipse.app4mc.amalthea.model.TimeRequirementLimit;
+import org.eclipse.app4mc.amalthea.model.TimeStatistics;
+import org.eclipse.app4mc.amalthea.model.TimeUniformDistribution;
+import org.eclipse.app4mc.amalthea.model.TimeUnit;
+import org.eclipse.app4mc.amalthea.model.TimeWeibullEstimatorsDistribution;
+import org.eclipse.app4mc.amalthea.model.TimingConstraint;
+import org.eclipse.app4mc.amalthea.model.TransmissionPolicy;
+import org.eclipse.app4mc.amalthea.model.TriggerEvent;
+import org.eclipse.app4mc.amalthea.model.TruncatedContinuousValueDistribution;
+import org.eclipse.app4mc.amalthea.model.TruncatedDiscreteValueDistribution;
+import org.eclipse.app4mc.amalthea.model.TruncatedTimeDistribution;
+import org.eclipse.app4mc.amalthea.model.TypeDefinition;
+import org.eclipse.app4mc.amalthea.model.TypeRef;
+import org.eclipse.app4mc.amalthea.model.Value;
+import org.eclipse.app4mc.amalthea.model.VariableRateActivation;
+import org.eclipse.app4mc.amalthea.model.VariableRateStimulus;
+import org.eclipse.app4mc.amalthea.model.VendorOperatingSystem;
+import org.eclipse.app4mc.amalthea.model.Voltage;
+import org.eclipse.app4mc.amalthea.model.VoltageUnit;
+import org.eclipse.app4mc.amalthea.model.WaitEvent;
+import org.eclipse.app4mc.amalthea.model.WaitEventType;
+import org.eclipse.app4mc.amalthea.model.WaitingBehaviour;
+import org.eclipse.app4mc.amalthea.model.WhileLoop;
+import org.eclipse.app4mc.amalthea.model.WriteStrategy;
import org.eclipse.app4mc.amalthea.model.*;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.ResourceLocator;
@@ -124,12 +551,20 @@
public static final int MODE_VALUE__VALIDATE_INVARIANTS = 9;
/**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Invariants' of 'Mode Label Condition'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int MODE_LABEL_CONDITION__VALIDATE_INVARIANTS = 10;
+
+ /**
* The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Invariants' of 'Mode Label'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- public static final int MODE_LABEL__VALIDATE_INVARIANTS = 10;
+ public static final int MODE_LABEL__VALIDATE_INVARIANTS = 11;
/**
* The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Invariants' of 'Mode Label Access'.
@@ -137,7 +572,31 @@
* <!-- end-user-doc -->
* @generated
*/
- public static final int MODE_LABEL_ACCESS__VALIDATE_INVARIANTS = 11;
+ public static final int MODE_LABEL_ACCESS__VALIDATE_INVARIANTS = 12;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Invariants' of 'Local Mode Label'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int LOCAL_MODE_LABEL__VALIDATE_INVARIANTS = 13;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Invariants' of 'Local Mode Value'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int LOCAL_MODE_VALUE__VALIDATE_INVARIANTS = 14;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Invariants' of 'Mode Label Assignment'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int MODE_LABEL_ASSIGNMENT__VALIDATE_INVARIANTS = 15;
/**
* A constant with a fixed name that can be used as the base value for additional hand written constants.
@@ -145,7 +604,7 @@
* <!-- end-user-doc -->
* @generated
*/
- private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 11;
+ private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 15;
/**
* A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
@@ -4645,7 +5104,27 @@
* @generated
*/
public boolean validateModeLabelCondition(ModeLabelCondition modeLabelCondition, DiagnosticChain diagnostics, Map<Object, Object> context) {
- return validate_EveryDefaultConstraint(modeLabelCondition, diagnostics, context);
+ if (!validate_NoCircularContainment(modeLabelCondition, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(modeLabelCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(modeLabelCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(modeLabelCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(modeLabelCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(modeLabelCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(modeLabelCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(modeLabelCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(modeLabelCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validateModeLabelCondition_validateInvariants(modeLabelCondition, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateInvariants constraint of '<em>Mode Label Condition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateModeLabelCondition_validateInvariants(ModeLabelCondition modeLabelCondition, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return modeLabelCondition.validateInvariants(diagnostics, context);
}
/**
@@ -6069,17 +6548,47 @@
if (result || diagnostics != null) result &= validate_UniqueID(localModeLabel, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryKeyUnique(localModeLabel, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(localModeLabel, diagnostics, context);
- if (result || diagnostics != null) result &= validateIReferable_validateInvariants(localModeLabel, diagnostics, context);
+ if (result || diagnostics != null) result &= validateLocalModeLabel_validateInvariants(localModeLabel, diagnostics, context);
return result;
}
/**
+ * Validates the validateInvariants constraint of '<em>Local Mode Label</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateLocalModeLabel_validateInvariants(LocalModeLabel localModeLabel, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return localModeLabel.validateInvariants(diagnostics, context);
+ }
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public boolean validateLocalModeValue(LocalModeValue localModeValue, DiagnosticChain diagnostics, Map<Object, Object> context) {
- return validate_EveryDefaultConstraint(localModeValue, diagnostics, context);
+ if (!validate_NoCircularContainment(localModeValue, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(localModeValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(localModeValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(localModeValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(localModeValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(localModeValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(localModeValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(localModeValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(localModeValue, diagnostics, context);
+ if (result || diagnostics != null) result &= validateLocalModeValue_validateInvariants(localModeValue, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateInvariants constraint of '<em>Local Mode Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateLocalModeValue_validateInvariants(LocalModeValue localModeValue, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return localModeValue.validateInvariants(diagnostics, context);
}
/**
@@ -6088,7 +6597,17 @@
* @generated
*/
public boolean validateLocalModeLabelAssignment(LocalModeLabelAssignment localModeLabelAssignment, DiagnosticChain diagnostics, Map<Object, Object> context) {
- return validate_EveryDefaultConstraint(localModeLabelAssignment, diagnostics, context);
+ if (!validate_NoCircularContainment(localModeLabelAssignment, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(localModeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(localModeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(localModeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(localModeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(localModeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(localModeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(localModeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(localModeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validateLocalModeValue_validateInvariants(localModeLabelAssignment, diagnostics, context);
+ return result;
}
/**
@@ -6097,7 +6616,17 @@
* @generated
*/
public boolean validateLocalModeCondition(LocalModeCondition localModeCondition, DiagnosticChain diagnostics, Map<Object, Object> context) {
- return validate_EveryDefaultConstraint(localModeCondition, diagnostics, context);
+ if (!validate_NoCircularContainment(localModeCondition, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(localModeCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(localModeCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(localModeCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(localModeCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(localModeCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(localModeCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(localModeCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(localModeCondition, diagnostics, context);
+ if (result || diagnostics != null) result &= validateLocalModeValue_validateInvariants(localModeCondition, diagnostics, context);
+ return result;
}
/**
@@ -6169,7 +6698,27 @@
* @generated
*/
public boolean validateModeLabelAssignment(ModeLabelAssignment modeLabelAssignment, DiagnosticChain diagnostics, Map<Object, Object> context) {
- return validate_EveryDefaultConstraint(modeLabelAssignment, diagnostics, context);
+ if (!validate_NoCircularContainment(modeLabelAssignment, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(modeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(modeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(modeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(modeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(modeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(modeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(modeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(modeLabelAssignment, diagnostics, context);
+ if (result || diagnostics != null) result &= validateModeLabelAssignment_validateInvariants(modeLabelAssignment, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the validateInvariants constraint of '<em>Mode Label Assignment</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateModeLabelAssignment_validateInvariants(ModeLabelAssignment modeLabelAssignment, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return modeLabelAssignment.validateInvariants(diagnostics, context);
}
/**