getEventClasses();
+
+ boolean canSendEvent(Object event);
+
+ void loadScenario(String path, ResourceSet resourceSet);
+}
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/BinaryProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/BinaryProperty.java
new file mode 100644
index 000000000..d3e149df2
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/BinaryProperty.java
@@ -0,0 +1,106 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+
+/**
+ *
+ * A representation of the model object 'Binary Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.BinaryProperty#getOperator Operator}
+ * - {@link fr.inria.diverse.event.commons.model.property.BinaryProperty#getLeft Left}
+ * - {@link fr.inria.diverse.event.commons.model.property.BinaryProperty#getRight Right}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getBinaryProperty()
+ * @model abstract="true"
+ * @generated
+ */
+public interface BinaryProperty, T> extends ClassProperty {
+ /**
+ * Returns the value of the 'Operator' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.BooleanOperator}.
+ *
+ *
+ * If the meaning of the 'Operator' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.BooleanOperator
+ * @see #setOperator(BooleanOperator)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getBinaryProperty_Operator()
+ * @model required="true"
+ * @generated
+ */
+ BooleanOperator getOperator();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.BinaryProperty#getOperator Operator}' attribute.
+ *
+ *
+ * @param value the new value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.BooleanOperator
+ * @see #getOperator()
+ * @generated
+ */
+ void setOperator(BooleanOperator value);
+
+ /**
+ * Returns the value of the 'Left' containment reference.
+ *
+ *
+ * If the meaning of the 'Left' containment reference isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Left' containment reference.
+ * @see #setLeft(ClassProperty)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getBinaryProperty_Left()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ P getLeft();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.BinaryProperty#getLeft Left}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Left' containment reference.
+ * @see #getLeft()
+ * @generated
+ */
+ void setLeft(P value);
+
+ /**
+ * Returns the value of the 'Right' containment reference.
+ *
+ *
+ * If the meaning of the 'Right' containment reference isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Right' containment reference.
+ * @see #setRight(ClassProperty)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getBinaryProperty_Right()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ P getRight();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.BinaryProperty#getRight Right}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Right' containment reference.
+ * @see #getRight()
+ * @generated
+ */
+ void setRight(P value);
+
+} // BinaryProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/BooleanAttributeProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/BooleanAttributeProperty.java
new file mode 100644
index 000000000..a87391b29
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/BooleanAttributeProperty.java
@@ -0,0 +1,79 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+
+/**
+ *
+ * A representation of the model object 'Boolean Attribute Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty#isValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty#getOperator Operator}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getBooleanAttributeProperty()
+ * @model abstract="true"
+ * @generated
+ */
+public interface BooleanAttributeProperty extends ClassProperty {
+ /**
+ * Returns the value of the 'Value' attribute.
+ *
+ *
+ * If the meaning of the 'Value' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Value' attribute.
+ * @see #setValue(boolean)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getBooleanAttributeProperty_Value()
+ * @model
+ * @generated
+ */
+ boolean isValue();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty#isValue Value}' attribute.
+ *
+ *
+ * @param value the new value of the 'Value' attribute.
+ * @see #isValue()
+ * @generated
+ */
+ void setValue(boolean value);
+
+ /**
+ * Returns the value of the 'Operator' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.Operator}.
+ *
+ *
+ * If the meaning of the 'Operator' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #setOperator(Operator)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getBooleanAttributeProperty_Operator()
+ * @model
+ * @generated
+ */
+ Operator getOperator();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty#getOperator Operator}' attribute.
+ *
+ *
+ * @param value the new value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #getOperator()
+ * @generated
+ */
+ void setOperator(Operator value);
+
+} // BooleanAttributeProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/BooleanOperator.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/BooleanOperator.java
new file mode 100644
index 000000000..254ee0cc4
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/BooleanOperator.java
@@ -0,0 +1,241 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ *
+ * A representation of the literals of the enumeration 'Boolean Operator',
+ * and utility methods for working with them.
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getBooleanOperator()
+ * @model
+ * @generated
+ */
+public enum BooleanOperator implements Enumerator {
+ /**
+ * The 'AND' literal object.
+ *
+ *
+ * @see #AND_VALUE
+ * @generated
+ * @ordered
+ */
+ AND(0, "AND", "AND"),
+
+ /**
+ * The 'OR' literal object.
+ *
+ *
+ * @see #OR_VALUE
+ * @generated
+ * @ordered
+ */
+ OR(1, "OR", "OR"),
+
+ /**
+ * The 'IMPLIES' literal object.
+ *
+ *
+ * @see #IMPLIES_VALUE
+ * @generated
+ * @ordered
+ */
+ IMPLIES(2, "IMPLIES", "IMPLIES");
+
+ /**
+ * The 'AND' literal value.
+ *
+ *
+ * If the meaning of 'AND' literal object isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @see #AND
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AND_VALUE = 0;
+
+ /**
+ * The 'OR' literal value.
+ *
+ *
+ * If the meaning of 'OR' literal object isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @see #OR
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OR_VALUE = 1;
+
+ /**
+ * The 'IMPLIES' literal value.
+ *
+ *
+ * If the meaning of 'IMPLIES' literal object isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @see #IMPLIES
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int IMPLIES_VALUE = 2;
+
+ /**
+ * An array of all the 'Boolean Operator' enumerators.
+ *
+ *
+ * @generated
+ */
+ private static final BooleanOperator[] VALUES_ARRAY =
+ new BooleanOperator[] {
+ AND,
+ OR,
+ IMPLIES,
+ };
+
+ /**
+ * A public read-only list of all the 'Boolean Operator' enumerators.
+ *
+ *
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the 'Boolean Operator' literal with the specified literal value.
+ *
+ *
+ * @param literal the literal.
+ * @return the matching enumerator or null.
+ * @generated
+ */
+ public static BooleanOperator get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ BooleanOperator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the 'Boolean Operator' literal with the specified name.
+ *
+ *
+ * @param name the name.
+ * @return the matching enumerator or null.
+ * @generated
+ */
+ public static BooleanOperator getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ BooleanOperator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the 'Boolean Operator' literal with the specified integer value.
+ *
+ *
+ * @param value the integer value.
+ * @return the matching enumerator or null.
+ * @generated
+ */
+ public static BooleanOperator get(int value) {
+ switch (value) {
+ case AND_VALUE: return AND;
+ case OR_VALUE: return OR;
+ case IMPLIES_VALUE: return IMPLIES;
+ }
+ return null;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private final int value;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private final String name;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ *
+ *
+ * @generated
+ */
+ private BooleanOperator(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //BooleanOperator
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ClassProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ClassProperty.java
new file mode 100644
index 000000000..948dca65e
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ClassProperty.java
@@ -0,0 +1,67 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+/**
+ *
+ * A representation of the model object 'Class Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.ClassProperty#getTarget Target}
+ * - {@link fr.inria.diverse.event.commons.model.property.ClassProperty#getFeature Feature}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getClassProperty()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ClassProperty extends EObject {
+ /**
+ * Returns the value of the 'Target' reference.
+ *
+ *
+ * If the meaning of the 'Target' reference isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Target' reference.
+ * @see #setTarget(Object)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getClassProperty_Target()
+ * @model kind="reference"
+ * @generated
+ */
+ T getTarget();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ClassProperty#getTarget Target}' reference.
+ *
+ *
+ * @param value the new value of the 'Target' reference.
+ * @see #getTarget()
+ * @generated
+ */
+ void setTarget(T value);
+
+ /**
+ * Returns the value of the 'Feature' reference.
+ *
+ *
+ * If the meaning of the 'Feature' reference isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Feature' reference.
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getClassProperty_Feature()
+ * @model transient="true" changeable="false" derived="true"
+ * @generated
+ */
+ EStructuralFeature getFeature();
+
+} // ClassProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ContainerReferenceProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ContainerReferenceProperty.java
new file mode 100644
index 000000000..27daebde8
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ContainerReferenceProperty.java
@@ -0,0 +1,49 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+
+/**
+ *
+ * A representation of the model object 'Container Reference Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.ContainerReferenceProperty#getProperty Property}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getContainerReferenceProperty()
+ * @model
+ * @generated
+ */
+public interface ContainerReferenceProperty, T> extends ClassProperty {
+ /**
+ * Returns the value of the 'Property' containment reference.
+ *
+ *
+ * If the meaning of the 'Property' containment reference isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Property' containment reference.
+ * @see #setProperty(ClassProperty)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getContainerReferenceProperty_Property()
+ * @model containment="true"
+ * @generated
+ */
+ P getProperty();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ContainerReferenceProperty#getProperty Property}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Property' containment reference.
+ * @see #getProperty()
+ * @generated
+ */
+ void setProperty(P value);
+
+} // ContainerReferenceProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/IntegerAttributeProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/IntegerAttributeProperty.java
new file mode 100644
index 000000000..30e01ca8f
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/IntegerAttributeProperty.java
@@ -0,0 +1,79 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+
+/**
+ *
+ * A representation of the model object 'Integer Attribute Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty#getValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty#getOperator Operator}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getIntegerAttributeProperty()
+ * @model abstract="true"
+ * @generated
+ */
+public interface IntegerAttributeProperty extends ClassProperty {
+ /**
+ * Returns the value of the 'Value' attribute.
+ *
+ *
+ * If the meaning of the 'Value' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Value' attribute.
+ * @see #setValue(int)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getIntegerAttributeProperty_Value()
+ * @model
+ * @generated
+ */
+ int getValue();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty#getValue Value}' attribute.
+ *
+ *
+ * @param value the new value of the 'Value' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(int value);
+
+ /**
+ * Returns the value of the 'Operator' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.Operator}.
+ *
+ *
+ * If the meaning of the 'Operator' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #setOperator(Operator)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getIntegerAttributeProperty_Operator()
+ * @model
+ * @generated
+ */
+ Operator getOperator();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty#getOperator Operator}' attribute.
+ *
+ *
+ * @param value the new value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #getOperator()
+ * @generated
+ */
+ void setOperator(Operator value);
+
+} // IntegerAttributeProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyBooleanAttributeProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyBooleanAttributeProperty.java
new file mode 100644
index 000000000..5c9388e82
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyBooleanAttributeProperty.java
@@ -0,0 +1,108 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+/**
+ *
+ * A representation of the model object 'Many Boolean Attribute Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#getQuantifier Quantifier}
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#isValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#getOperator Operator}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyBooleanAttributeProperty()
+ * @model
+ * @generated
+ */
+public interface ManyBooleanAttributeProperty extends ClassProperty {
+ /**
+ * Returns the value of the 'Quantifier' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.Quantifier}.
+ *
+ *
+ * If the meaning of the 'Quantifier' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Quantifier' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @see #setQuantifier(Quantifier)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyBooleanAttributeProperty_Quantifier()
+ * @model
+ * @generated
+ */
+ Quantifier getQuantifier();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#getQuantifier Quantifier}' attribute.
+ *
+ *
+ * @param value the new value of the 'Quantifier' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @see #getQuantifier()
+ * @generated
+ */
+ void setQuantifier(Quantifier value);
+
+ /**
+ * Returns the value of the 'Value' attribute.
+ *
+ *
+ * If the meaning of the 'Value' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Value' attribute.
+ * @see #setValue(boolean)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyBooleanAttributeProperty_Value()
+ * @model
+ * @generated
+ */
+ boolean isValue();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#isValue Value}' attribute.
+ *
+ *
+ * @param value the new value of the 'Value' attribute.
+ * @see #isValue()
+ * @generated
+ */
+ void setValue(boolean value);
+
+ /**
+ * Returns the value of the 'Operator' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.Operator}.
+ *
+ *
+ * If the meaning of the 'Operator' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #setOperator(Operator)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyBooleanAttributeProperty_Operator()
+ * @model
+ * @generated
+ */
+ Operator getOperator();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#getOperator Operator}' attribute.
+ *
+ *
+ * @param value the new value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #getOperator()
+ * @generated
+ */
+ void setOperator(Operator value);
+
+} // ManyBooleanAttributeProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyIntegerAttributeProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyIntegerAttributeProperty.java
new file mode 100644
index 000000000..9bd44f327
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyIntegerAttributeProperty.java
@@ -0,0 +1,108 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+/**
+ *
+ * A representation of the model object 'Many Integer Attribute Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getQuantifier Quantifier}
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getOperator Operator}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyIntegerAttributeProperty()
+ * @model
+ * @generated
+ */
+public interface ManyIntegerAttributeProperty extends ClassProperty {
+ /**
+ * Returns the value of the 'Quantifier' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.Quantifier}.
+ *
+ *
+ * If the meaning of the 'Quantifier' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Quantifier' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @see #setQuantifier(Quantifier)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyIntegerAttributeProperty_Quantifier()
+ * @model
+ * @generated
+ */
+ Quantifier getQuantifier();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getQuantifier Quantifier}' attribute.
+ *
+ *
+ * @param value the new value of the 'Quantifier' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @see #getQuantifier()
+ * @generated
+ */
+ void setQuantifier(Quantifier value);
+
+ /**
+ * Returns the value of the 'Value' attribute.
+ *
+ *
+ * If the meaning of the 'Value' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Value' attribute.
+ * @see #setValue(int)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyIntegerAttributeProperty_Value()
+ * @model
+ * @generated
+ */
+ int getValue();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getValue Value}' attribute.
+ *
+ *
+ * @param value the new value of the 'Value' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(int value);
+
+ /**
+ * Returns the value of the 'Operator' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.Operator}.
+ *
+ *
+ * If the meaning of the 'Operator' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #setOperator(Operator)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyIntegerAttributeProperty_Operator()
+ * @model
+ * @generated
+ */
+ Operator getOperator();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getOperator Operator}' attribute.
+ *
+ *
+ * @param value the new value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #getOperator()
+ * @generated
+ */
+ void setOperator(Operator value);
+
+} // ManyIntegerAttributeProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyReferenceProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyReferenceProperty.java
new file mode 100644
index 000000000..493cafaf9
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyReferenceProperty.java
@@ -0,0 +1,79 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+
+/**
+ *
+ * A representation of the model object 'Many Reference Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyReferenceProperty#getProperty Property}
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyReferenceProperty#getQuantifier Quantifier}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyReferenceProperty()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ManyReferenceProperty, T> extends ClassProperty {
+ /**
+ * Returns the value of the 'Property' containment reference.
+ *
+ *
+ * If the meaning of the 'Property' containment reference isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Property' containment reference.
+ * @see #setProperty(ClassProperty)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyReferenceProperty_Property()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ P getProperty();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyReferenceProperty#getProperty Property}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Property' containment reference.
+ * @see #getProperty()
+ * @generated
+ */
+ void setProperty(P value);
+
+ /**
+ * Returns the value of the 'Quantifier' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.Quantifier}.
+ *
+ *
+ * If the meaning of the 'Quantifier' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Quantifier' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @see #setQuantifier(Quantifier)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyReferenceProperty_Quantifier()
+ * @model
+ * @generated
+ */
+ Quantifier getQuantifier();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyReferenceProperty#getQuantifier Quantifier}' attribute.
+ *
+ *
+ * @param value the new value of the 'Quantifier' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @see #getQuantifier()
+ * @generated
+ */
+ void setQuantifier(Quantifier value);
+
+} // ManyReferenceProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyStringAttributeProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyStringAttributeProperty.java
new file mode 100644
index 000000000..ba9f58efe
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/ManyStringAttributeProperty.java
@@ -0,0 +1,108 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+/**
+ *
+ * A representation of the model object 'Many String Attribute Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getQuantifier Quantifier}
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getOperator Operator}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyStringAttributeProperty()
+ * @model
+ * @generated
+ */
+public interface ManyStringAttributeProperty extends ClassProperty {
+ /**
+ * Returns the value of the 'Quantifier' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.Quantifier}.
+ *
+ *
+ * If the meaning of the 'Quantifier' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Quantifier' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @see #setQuantifier(Quantifier)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyStringAttributeProperty_Quantifier()
+ * @model
+ * @generated
+ */
+ Quantifier getQuantifier();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getQuantifier Quantifier}' attribute.
+ *
+ *
+ * @param value the new value of the 'Quantifier' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @see #getQuantifier()
+ * @generated
+ */
+ void setQuantifier(Quantifier value);
+
+ /**
+ * Returns the value of the 'Value' attribute.
+ *
+ *
+ * If the meaning of the 'Value' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Value' attribute.
+ * @see #setValue(String)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyStringAttributeProperty_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getValue Value}' attribute.
+ *
+ *
+ * @param value the new value of the 'Value' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the 'Operator' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.Operator}.
+ *
+ *
+ * If the meaning of the 'Operator' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #setOperator(Operator)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getManyStringAttributeProperty_Operator()
+ * @model
+ * @generated
+ */
+ Operator getOperator();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getOperator Operator}' attribute.
+ *
+ *
+ * @param value the new value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #getOperator()
+ * @generated
+ */
+ void setOperator(Operator value);
+
+} // ManyStringAttributeProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/Operator.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/Operator.java
new file mode 100644
index 000000000..187779322
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/Operator.java
@@ -0,0 +1,187 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ *
+ * A representation of the literals of the enumeration 'Operator',
+ * and utility methods for working with them.
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getOperator()
+ * @model
+ * @generated
+ */
+public enum Operator implements Enumerator {
+ /**
+ * The 'EQUAL' literal object.
+ *
+ *
+ * @see #EQUAL_VALUE
+ * @generated
+ * @ordered
+ */
+ EQUAL(0, "EQUAL", "EQUAL");
+
+ /**
+ * The 'EQUAL' literal value.
+ *
+ *
+ * If the meaning of 'EQUAL' literal object isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @see #EQUAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EQUAL_VALUE = 0;
+
+ /**
+ * An array of all the 'Operator' enumerators.
+ *
+ *
+ * @generated
+ */
+ private static final Operator[] VALUES_ARRAY =
+ new Operator[] {
+ EQUAL,
+ };
+
+ /**
+ * A public read-only list of all the 'Operator' enumerators.
+ *
+ *
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the 'Operator' literal with the specified literal value.
+ *
+ *
+ * @param literal the literal.
+ * @return the matching enumerator or null.
+ * @generated
+ */
+ public static Operator get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Operator result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the 'Operator' literal with the specified name.
+ *
+ *
+ * @param name the name.
+ * @return the matching enumerator or null.
+ * @generated
+ */
+ public static Operator getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Operator result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the 'Operator' literal with the specified integer value.
+ *
+ *
+ * @param value the integer value.
+ * @return the matching enumerator or null.
+ * @generated
+ */
+ public static Operator get(int value) {
+ switch (value) {
+ case EQUAL_VALUE: return EQUAL;
+ }
+ return null;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private final int value;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private final String name;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ *
+ *
+ * @generated
+ */
+ private Operator(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Operator
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/PropertyFactory.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/PropertyFactory.java
new file mode 100644
index 000000000..ad2a1c7df
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/PropertyFactory.java
@@ -0,0 +1,69 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ *
+ * The Factory for the model.
+ * It provides a create method for each non-abstract class of the model.
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage
+ * @generated
+ */
+public interface PropertyFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ *
+ *
+ * @generated
+ */
+ PropertyFactory eINSTANCE = fr.inria.diverse.event.commons.model.property.impl.PropertyFactoryImpl.init();
+
+ /**
+ * Returns a new object of class 'Container Reference Property'.
+ *
+ *
+ * @return a new object of class 'Container Reference Property'.
+ * @generated
+ */
+ , T> ContainerReferenceProperty
createContainerReferenceProperty();
+
+ /**
+ * Returns a new object of class 'Many Boolean Attribute Property'.
+ *
+ *
+ * @return a new object of class 'Many Boolean Attribute Property'.
+ * @generated
+ */
+ ManyBooleanAttributeProperty createManyBooleanAttributeProperty();
+
+ /**
+ * Returns a new object of class 'Many Integer Attribute Property'.
+ *
+ *
+ * @return a new object of class 'Many Integer Attribute Property'.
+ * @generated
+ */
+ ManyIntegerAttributeProperty createManyIntegerAttributeProperty();
+
+ /**
+ * Returns a new object of class 'Many String Attribute Property'.
+ *
+ *
+ * @return a new object of class 'Many String Attribute Property'.
+ * @generated
+ */
+ ManyStringAttributeProperty createManyStringAttributeProperty();
+
+ /**
+ * Returns the package supported by this factory.
+ *
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ PropertyPackage getPropertyPackage();
+
+} //PropertyFactory
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/PropertyPackage.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/PropertyPackage.java
new file mode 100644
index 000000000..0e022bbdc
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/PropertyPackage.java
@@ -0,0 +1,1556 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ *
+ * The Package for the model.
+ * It contains accessors for the meta objects to represent
+ *
+ * - each class,
+ * - each feature of each class,
+ * - each operation of each class,
+ * - each enum,
+ * - and each data type
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface PropertyPackage extends EPackage {
+ /**
+ * The package name.
+ *
+ *
+ * @generated
+ */
+ String eNAME = "property";
+
+ /**
+ * The package namespace URI.
+ *
+ *
+ * @generated
+ */
+ String eNS_URI = "http://www.gemoc.org/property";
+
+ /**
+ * The package namespace name.
+ *
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "property";
+
+ /**
+ * The singleton instance of the package.
+ *
+ *
+ * @generated
+ */
+ PropertyPackage eINSTANCE = fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.ClassPropertyImpl Class Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ClassPropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getClassProperty()
+ * @generated
+ */
+ int CLASS_PROPERTY = 0;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CLASS_PROPERTY__TARGET = 0;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CLASS_PROPERTY__FEATURE = 1;
+
+ /**
+ * The number of structural features of the 'Class Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CLASS_PROPERTY_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the 'Class Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CLASS_PROPERTY_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.BinaryPropertyImpl Binary Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.BinaryPropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getBinaryProperty()
+ * @generated
+ */
+ int BINARY_PROPERTY = 1;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BINARY_PROPERTY__TARGET = CLASS_PROPERTY__TARGET;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BINARY_PROPERTY__FEATURE = CLASS_PROPERTY__FEATURE;
+
+ /**
+ * The feature id for the 'Operator' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BINARY_PROPERTY__OPERATOR = CLASS_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the 'Left' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BINARY_PROPERTY__LEFT = CLASS_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the 'Right' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BINARY_PROPERTY__RIGHT = CLASS_PROPERTY_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the 'Binary Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BINARY_PROPERTY_FEATURE_COUNT = CLASS_PROPERTY_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the 'Binary Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BINARY_PROPERTY_OPERATION_COUNT = CLASS_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.ManyReferencePropertyImpl Many Reference Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ManyReferencePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getManyReferenceProperty()
+ * @generated
+ */
+ int MANY_REFERENCE_PROPERTY = 2;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_REFERENCE_PROPERTY__TARGET = CLASS_PROPERTY__TARGET;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_REFERENCE_PROPERTY__FEATURE = CLASS_PROPERTY__FEATURE;
+
+ /**
+ * The feature id for the 'Property' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_REFERENCE_PROPERTY__PROPERTY = CLASS_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the 'Quantifier' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_REFERENCE_PROPERTY__QUANTIFIER = CLASS_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the 'Many Reference Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_REFERENCE_PROPERTY_FEATURE_COUNT = CLASS_PROPERTY_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the 'Many Reference Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_REFERENCE_PROPERTY_OPERATION_COUNT = CLASS_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.SingleReferencePropertyImpl Single Reference Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.SingleReferencePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getSingleReferenceProperty()
+ * @generated
+ */
+ int SINGLE_REFERENCE_PROPERTY = 3;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int SINGLE_REFERENCE_PROPERTY__TARGET = CLASS_PROPERTY__TARGET;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int SINGLE_REFERENCE_PROPERTY__FEATURE = CLASS_PROPERTY__FEATURE;
+
+ /**
+ * The feature id for the 'Property' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int SINGLE_REFERENCE_PROPERTY__PROPERTY = CLASS_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the 'Single Reference Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int SINGLE_REFERENCE_PROPERTY_FEATURE_COUNT = CLASS_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the 'Single Reference Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int SINGLE_REFERENCE_PROPERTY_OPERATION_COUNT = CLASS_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.ContainerReferencePropertyImpl Container Reference Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ContainerReferencePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getContainerReferenceProperty()
+ * @generated
+ */
+ int CONTAINER_REFERENCE_PROPERTY = 4;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_REFERENCE_PROPERTY__TARGET = CLASS_PROPERTY__TARGET;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_REFERENCE_PROPERTY__FEATURE = CLASS_PROPERTY__FEATURE;
+
+ /**
+ * The feature id for the 'Property' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_REFERENCE_PROPERTY__PROPERTY = CLASS_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the 'Container Reference Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_REFERENCE_PROPERTY_FEATURE_COUNT = CLASS_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the 'Container Reference Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONTAINER_REFERENCE_PROPERTY_OPERATION_COUNT = CLASS_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.ManyBooleanAttributePropertyImpl Many Boolean Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ManyBooleanAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getManyBooleanAttributeProperty()
+ * @generated
+ */
+ int MANY_BOOLEAN_ATTRIBUTE_PROPERTY = 5;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_BOOLEAN_ATTRIBUTE_PROPERTY__TARGET = CLASS_PROPERTY__TARGET;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_BOOLEAN_ATTRIBUTE_PROPERTY__FEATURE = CLASS_PROPERTY__FEATURE;
+
+ /**
+ * The feature id for the 'Quantifier' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_BOOLEAN_ATTRIBUTE_PROPERTY__QUANTIFIER = CLASS_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the 'Value' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_BOOLEAN_ATTRIBUTE_PROPERTY__VALUE = CLASS_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the 'Operator' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR = CLASS_PROPERTY_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the 'Many Boolean Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_BOOLEAN_ATTRIBUTE_PROPERTY_FEATURE_COUNT = CLASS_PROPERTY_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the 'Many Boolean Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_BOOLEAN_ATTRIBUTE_PROPERTY_OPERATION_COUNT = CLASS_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.ManyIntegerAttributePropertyImpl Many Integer Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ManyIntegerAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getManyIntegerAttributeProperty()
+ * @generated
+ */
+ int MANY_INTEGER_ATTRIBUTE_PROPERTY = 6;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_INTEGER_ATTRIBUTE_PROPERTY__TARGET = CLASS_PROPERTY__TARGET;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_INTEGER_ATTRIBUTE_PROPERTY__FEATURE = CLASS_PROPERTY__FEATURE;
+
+ /**
+ * The feature id for the 'Quantifier' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_INTEGER_ATTRIBUTE_PROPERTY__QUANTIFIER = CLASS_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the 'Value' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_INTEGER_ATTRIBUTE_PROPERTY__VALUE = CLASS_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the 'Operator' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_INTEGER_ATTRIBUTE_PROPERTY__OPERATOR = CLASS_PROPERTY_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the 'Many Integer Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_INTEGER_ATTRIBUTE_PROPERTY_FEATURE_COUNT = CLASS_PROPERTY_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the 'Many Integer Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_INTEGER_ATTRIBUTE_PROPERTY_OPERATION_COUNT = CLASS_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.ManyStringAttributePropertyImpl Many String Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ManyStringAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getManyStringAttributeProperty()
+ * @generated
+ */
+ int MANY_STRING_ATTRIBUTE_PROPERTY = 7;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_STRING_ATTRIBUTE_PROPERTY__TARGET = CLASS_PROPERTY__TARGET;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_STRING_ATTRIBUTE_PROPERTY__FEATURE = CLASS_PROPERTY__FEATURE;
+
+ /**
+ * The feature id for the 'Quantifier' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_STRING_ATTRIBUTE_PROPERTY__QUANTIFIER = CLASS_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the 'Value' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_STRING_ATTRIBUTE_PROPERTY__VALUE = CLASS_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the 'Operator' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_STRING_ATTRIBUTE_PROPERTY__OPERATOR = CLASS_PROPERTY_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the 'Many String Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_STRING_ATTRIBUTE_PROPERTY_FEATURE_COUNT = CLASS_PROPERTY_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the 'Many String Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int MANY_STRING_ATTRIBUTE_PROPERTY_OPERATION_COUNT = CLASS_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.BooleanAttributePropertyImpl Boolean Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.BooleanAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getBooleanAttributeProperty()
+ * @generated
+ */
+ int BOOLEAN_ATTRIBUTE_PROPERTY = 8;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_ATTRIBUTE_PROPERTY__TARGET = CLASS_PROPERTY__TARGET;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_ATTRIBUTE_PROPERTY__FEATURE = CLASS_PROPERTY__FEATURE;
+
+ /**
+ * The feature id for the 'Value' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_ATTRIBUTE_PROPERTY__VALUE = CLASS_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the 'Operator' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR = CLASS_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the 'Boolean Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_ATTRIBUTE_PROPERTY_FEATURE_COUNT = CLASS_PROPERTY_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the 'Boolean Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int BOOLEAN_ATTRIBUTE_PROPERTY_OPERATION_COUNT = CLASS_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.IntegerAttributePropertyImpl Integer Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.IntegerAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getIntegerAttributeProperty()
+ * @generated
+ */
+ int INTEGER_ATTRIBUTE_PROPERTY = 9;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int INTEGER_ATTRIBUTE_PROPERTY__TARGET = CLASS_PROPERTY__TARGET;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int INTEGER_ATTRIBUTE_PROPERTY__FEATURE = CLASS_PROPERTY__FEATURE;
+
+ /**
+ * The feature id for the 'Value' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int INTEGER_ATTRIBUTE_PROPERTY__VALUE = CLASS_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the 'Operator' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int INTEGER_ATTRIBUTE_PROPERTY__OPERATOR = CLASS_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the 'Integer Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int INTEGER_ATTRIBUTE_PROPERTY_FEATURE_COUNT = CLASS_PROPERTY_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the 'Integer Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int INTEGER_ATTRIBUTE_PROPERTY_OPERATION_COUNT = CLASS_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.impl.StringAttributePropertyImpl String Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.StringAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getStringAttributeProperty()
+ * @generated
+ */
+ int STRING_ATTRIBUTE_PROPERTY = 10;
+
+ /**
+ * The feature id for the 'Target' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STRING_ATTRIBUTE_PROPERTY__TARGET = CLASS_PROPERTY__TARGET;
+
+ /**
+ * The feature id for the 'Feature' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STRING_ATTRIBUTE_PROPERTY__FEATURE = CLASS_PROPERTY__FEATURE;
+
+ /**
+ * The feature id for the 'Value' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STRING_ATTRIBUTE_PROPERTY__VALUE = CLASS_PROPERTY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the 'Operator' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STRING_ATTRIBUTE_PROPERTY__OPERATOR = CLASS_PROPERTY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the 'String Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STRING_ATTRIBUTE_PROPERTY_FEATURE_COUNT = CLASS_PROPERTY_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the 'String Attribute Property' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STRING_ATTRIBUTE_PROPERTY_OPERATION_COUNT = CLASS_PROPERTY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.Operator Operator}' enum.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getOperator()
+ * @generated
+ */
+ int OPERATOR = 11;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.BooleanOperator Boolean Operator}' enum.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.BooleanOperator
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getBooleanOperator()
+ * @generated
+ */
+ int BOOLEAN_OPERATOR = 12;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.property.Quantifier Quantifier}' enum.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getQuantifier()
+ * @generated
+ */
+ int QUANTIFIER = 13;
+
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.ClassProperty Class Property}'.
+ *
+ *
+ * @return the meta object for class 'Class Property'.
+ * @see fr.inria.diverse.event.commons.model.property.ClassProperty
+ * @generated
+ */
+ EClass getClassProperty();
+
+ /**
+ * Returns the meta object for the reference '{@link fr.inria.diverse.event.commons.model.property.ClassProperty#getTarget Target}'.
+ *
+ *
+ * @return the meta object for the reference 'Target'.
+ * @see fr.inria.diverse.event.commons.model.property.ClassProperty#getTarget()
+ * @see #getClassProperty()
+ * @generated
+ */
+ EReference getClassProperty_Target();
+
+ /**
+ * Returns the meta object for the reference '{@link fr.inria.diverse.event.commons.model.property.ClassProperty#getFeature Feature}'.
+ *
+ *
+ * @return the meta object for the reference 'Feature'.
+ * @see fr.inria.diverse.event.commons.model.property.ClassProperty#getFeature()
+ * @see #getClassProperty()
+ * @generated
+ */
+ EReference getClassProperty_Feature();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.BinaryProperty Binary Property}'.
+ *
+ *
+ * @return the meta object for class 'Binary Property'.
+ * @see fr.inria.diverse.event.commons.model.property.BinaryProperty
+ * @generated
+ */
+ EClass getBinaryProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.BinaryProperty#getOperator Operator}'.
+ *
+ *
+ * @return the meta object for the attribute 'Operator'.
+ * @see fr.inria.diverse.event.commons.model.property.BinaryProperty#getOperator()
+ * @see #getBinaryProperty()
+ * @generated
+ */
+ EAttribute getBinaryProperty_Operator();
+
+ /**
+ * Returns the meta object for the containment reference '{@link fr.inria.diverse.event.commons.model.property.BinaryProperty#getLeft Left}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Left'.
+ * @see fr.inria.diverse.event.commons.model.property.BinaryProperty#getLeft()
+ * @see #getBinaryProperty()
+ * @generated
+ */
+ EReference getBinaryProperty_Left();
+
+ /**
+ * Returns the meta object for the containment reference '{@link fr.inria.diverse.event.commons.model.property.BinaryProperty#getRight Right}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Right'.
+ * @see fr.inria.diverse.event.commons.model.property.BinaryProperty#getRight()
+ * @see #getBinaryProperty()
+ * @generated
+ */
+ EReference getBinaryProperty_Right();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.ManyReferenceProperty Many Reference Property}'.
+ *
+ *
+ * @return the meta object for class 'Many Reference Property'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyReferenceProperty
+ * @generated
+ */
+ EClass getManyReferenceProperty();
+
+ /**
+ * Returns the meta object for the containment reference '{@link fr.inria.diverse.event.commons.model.property.ManyReferenceProperty#getProperty Property}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Property'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyReferenceProperty#getProperty()
+ * @see #getManyReferenceProperty()
+ * @generated
+ */
+ EReference getManyReferenceProperty_Property();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.ManyReferenceProperty#getQuantifier Quantifier}'.
+ *
+ *
+ * @return the meta object for the attribute 'Quantifier'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyReferenceProperty#getQuantifier()
+ * @see #getManyReferenceProperty()
+ * @generated
+ */
+ EAttribute getManyReferenceProperty_Quantifier();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.SingleReferenceProperty Single Reference Property}'.
+ *
+ *
+ * @return the meta object for class 'Single Reference Property'.
+ * @see fr.inria.diverse.event.commons.model.property.SingleReferenceProperty
+ * @generated
+ */
+ EClass getSingleReferenceProperty();
+
+ /**
+ * Returns the meta object for the containment reference '{@link fr.inria.diverse.event.commons.model.property.SingleReferenceProperty#getProperty Property}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Property'.
+ * @see fr.inria.diverse.event.commons.model.property.SingleReferenceProperty#getProperty()
+ * @see #getSingleReferenceProperty()
+ * @generated
+ */
+ EReference getSingleReferenceProperty_Property();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.ContainerReferenceProperty Container Reference Property}'.
+ *
+ *
+ * @return the meta object for class 'Container Reference Property'.
+ * @see fr.inria.diverse.event.commons.model.property.ContainerReferenceProperty
+ * @generated
+ */
+ EClass getContainerReferenceProperty();
+
+ /**
+ * Returns the meta object for the containment reference '{@link fr.inria.diverse.event.commons.model.property.ContainerReferenceProperty#getProperty Property}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Property'.
+ * @see fr.inria.diverse.event.commons.model.property.ContainerReferenceProperty#getProperty()
+ * @see #getContainerReferenceProperty()
+ * @generated
+ */
+ EReference getContainerReferenceProperty_Property();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty Many Boolean Attribute Property}'.
+ *
+ *
+ * @return the meta object for class 'Many Boolean Attribute Property'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty
+ * @generated
+ */
+ EClass getManyBooleanAttributeProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#getQuantifier Quantifier}'.
+ *
+ *
+ * @return the meta object for the attribute 'Quantifier'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#getQuantifier()
+ * @see #getManyBooleanAttributeProperty()
+ * @generated
+ */
+ EAttribute getManyBooleanAttributeProperty_Quantifier();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#isValue Value}'.
+ *
+ *
+ * @return the meta object for the attribute 'Value'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#isValue()
+ * @see #getManyBooleanAttributeProperty()
+ * @generated
+ */
+ EAttribute getManyBooleanAttributeProperty_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#getOperator Operator}'.
+ *
+ *
+ * @return the meta object for the attribute 'Operator'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty#getOperator()
+ * @see #getManyBooleanAttributeProperty()
+ * @generated
+ */
+ EAttribute getManyBooleanAttributeProperty_Operator();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty Many Integer Attribute Property}'.
+ *
+ *
+ * @return the meta object for class 'Many Integer Attribute Property'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty
+ * @generated
+ */
+ EClass getManyIntegerAttributeProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getQuantifier Quantifier}'.
+ *
+ *
+ * @return the meta object for the attribute 'Quantifier'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getQuantifier()
+ * @see #getManyIntegerAttributeProperty()
+ * @generated
+ */
+ EAttribute getManyIntegerAttributeProperty_Quantifier();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getValue Value}'.
+ *
+ *
+ * @return the meta object for the attribute 'Value'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getValue()
+ * @see #getManyIntegerAttributeProperty()
+ * @generated
+ */
+ EAttribute getManyIntegerAttributeProperty_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getOperator Operator}'.
+ *
+ *
+ * @return the meta object for the attribute 'Operator'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty#getOperator()
+ * @see #getManyIntegerAttributeProperty()
+ * @generated
+ */
+ EAttribute getManyIntegerAttributeProperty_Operator();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty Many String Attribute Property}'.
+ *
+ *
+ * @return the meta object for class 'Many String Attribute Property'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty
+ * @generated
+ */
+ EClass getManyStringAttributeProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getQuantifier Quantifier}'.
+ *
+ *
+ * @return the meta object for the attribute 'Quantifier'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getQuantifier()
+ * @see #getManyStringAttributeProperty()
+ * @generated
+ */
+ EAttribute getManyStringAttributeProperty_Quantifier();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getValue Value}'.
+ *
+ *
+ * @return the meta object for the attribute 'Value'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getValue()
+ * @see #getManyStringAttributeProperty()
+ * @generated
+ */
+ EAttribute getManyStringAttributeProperty_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getOperator Operator}'.
+ *
+ *
+ * @return the meta object for the attribute 'Operator'.
+ * @see fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty#getOperator()
+ * @see #getManyStringAttributeProperty()
+ * @generated
+ */
+ EAttribute getManyStringAttributeProperty_Operator();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty Boolean Attribute Property}'.
+ *
+ *
+ * @return the meta object for class 'Boolean Attribute Property'.
+ * @see fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty
+ * @generated
+ */
+ EClass getBooleanAttributeProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty#isValue Value}'.
+ *
+ *
+ * @return the meta object for the attribute 'Value'.
+ * @see fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty#isValue()
+ * @see #getBooleanAttributeProperty()
+ * @generated
+ */
+ EAttribute getBooleanAttributeProperty_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty#getOperator Operator}'.
+ *
+ *
+ * @return the meta object for the attribute 'Operator'.
+ * @see fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty#getOperator()
+ * @see #getBooleanAttributeProperty()
+ * @generated
+ */
+ EAttribute getBooleanAttributeProperty_Operator();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty Integer Attribute Property}'.
+ *
+ *
+ * @return the meta object for class 'Integer Attribute Property'.
+ * @see fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty
+ * @generated
+ */
+ EClass getIntegerAttributeProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty#getValue Value}'.
+ *
+ *
+ * @return the meta object for the attribute 'Value'.
+ * @see fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty#getValue()
+ * @see #getIntegerAttributeProperty()
+ * @generated
+ */
+ EAttribute getIntegerAttributeProperty_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty#getOperator Operator}'.
+ *
+ *
+ * @return the meta object for the attribute 'Operator'.
+ * @see fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty#getOperator()
+ * @see #getIntegerAttributeProperty()
+ * @generated
+ */
+ EAttribute getIntegerAttributeProperty_Operator();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.property.StringAttributeProperty String Attribute Property}'.
+ *
+ *
+ * @return the meta object for class 'String Attribute Property'.
+ * @see fr.inria.diverse.event.commons.model.property.StringAttributeProperty
+ * @generated
+ */
+ EClass getStringAttributeProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.StringAttributeProperty#getValue Value}'.
+ *
+ *
+ * @return the meta object for the attribute 'Value'.
+ * @see fr.inria.diverse.event.commons.model.property.StringAttributeProperty#getValue()
+ * @see #getStringAttributeProperty()
+ * @generated
+ */
+ EAttribute getStringAttributeProperty_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link fr.inria.diverse.event.commons.model.property.StringAttributeProperty#getOperator Operator}'.
+ *
+ *
+ * @return the meta object for the attribute 'Operator'.
+ * @see fr.inria.diverse.event.commons.model.property.StringAttributeProperty#getOperator()
+ * @see #getStringAttributeProperty()
+ * @generated
+ */
+ EAttribute getStringAttributeProperty_Operator();
+
+ /**
+ * Returns the meta object for enum '{@link fr.inria.diverse.event.commons.model.property.Operator Operator}'.
+ *
+ *
+ * @return the meta object for enum 'Operator'.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @generated
+ */
+ EEnum getOperator();
+
+ /**
+ * Returns the meta object for enum '{@link fr.inria.diverse.event.commons.model.property.BooleanOperator Boolean Operator}'.
+ *
+ *
+ * @return the meta object for enum 'Boolean Operator'.
+ * @see fr.inria.diverse.event.commons.model.property.BooleanOperator
+ * @generated
+ */
+ EEnum getBooleanOperator();
+
+ /**
+ * Returns the meta object for enum '{@link fr.inria.diverse.event.commons.model.property.Quantifier Quantifier}'.
+ *
+ *
+ * @return the meta object for enum 'Quantifier'.
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @generated
+ */
+ EEnum getQuantifier();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ *
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ PropertyFactory getPropertyFactory();
+
+ /**
+ *
+ * Defines literals for the meta objects that represent
+ *
+ * - each class,
+ * - each feature of each class,
+ * - each operation of each class,
+ * - each enum,
+ * - and each data type
+ *
+ *
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.ClassPropertyImpl Class Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ClassPropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getClassProperty()
+ * @generated
+ */
+ EClass CLASS_PROPERTY = eINSTANCE.getClassProperty();
+
+ /**
+ * The meta object literal for the 'Target' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference CLASS_PROPERTY__TARGET = eINSTANCE.getClassProperty_Target();
+
+ /**
+ * The meta object literal for the 'Feature' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference CLASS_PROPERTY__FEATURE = eINSTANCE.getClassProperty_Feature();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.BinaryPropertyImpl Binary Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.BinaryPropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getBinaryProperty()
+ * @generated
+ */
+ EClass BINARY_PROPERTY = eINSTANCE.getBinaryProperty();
+
+ /**
+ * The meta object literal for the 'Operator' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute BINARY_PROPERTY__OPERATOR = eINSTANCE.getBinaryProperty_Operator();
+
+ /**
+ * The meta object literal for the 'Left' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference BINARY_PROPERTY__LEFT = eINSTANCE.getBinaryProperty_Left();
+
+ /**
+ * The meta object literal for the 'Right' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference BINARY_PROPERTY__RIGHT = eINSTANCE.getBinaryProperty_Right();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.ManyReferencePropertyImpl Many Reference Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ManyReferencePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getManyReferenceProperty()
+ * @generated
+ */
+ EClass MANY_REFERENCE_PROPERTY = eINSTANCE.getManyReferenceProperty();
+
+ /**
+ * The meta object literal for the 'Property' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference MANY_REFERENCE_PROPERTY__PROPERTY = eINSTANCE.getManyReferenceProperty_Property();
+
+ /**
+ * The meta object literal for the 'Quantifier' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute MANY_REFERENCE_PROPERTY__QUANTIFIER = eINSTANCE.getManyReferenceProperty_Quantifier();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.SingleReferencePropertyImpl Single Reference Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.SingleReferencePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getSingleReferenceProperty()
+ * @generated
+ */
+ EClass SINGLE_REFERENCE_PROPERTY = eINSTANCE.getSingleReferenceProperty();
+
+ /**
+ * The meta object literal for the 'Property' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference SINGLE_REFERENCE_PROPERTY__PROPERTY = eINSTANCE.getSingleReferenceProperty_Property();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.ContainerReferencePropertyImpl Container Reference Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ContainerReferencePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getContainerReferenceProperty()
+ * @generated
+ */
+ EClass CONTAINER_REFERENCE_PROPERTY = eINSTANCE.getContainerReferenceProperty();
+
+ /**
+ * The meta object literal for the 'Property' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference CONTAINER_REFERENCE_PROPERTY__PROPERTY = eINSTANCE.getContainerReferenceProperty_Property();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.ManyBooleanAttributePropertyImpl Many Boolean Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ManyBooleanAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getManyBooleanAttributeProperty()
+ * @generated
+ */
+ EClass MANY_BOOLEAN_ATTRIBUTE_PROPERTY = eINSTANCE.getManyBooleanAttributeProperty();
+
+ /**
+ * The meta object literal for the 'Quantifier' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute MANY_BOOLEAN_ATTRIBUTE_PROPERTY__QUANTIFIER = eINSTANCE.getManyBooleanAttributeProperty_Quantifier();
+
+ /**
+ * The meta object literal for the 'Value' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute MANY_BOOLEAN_ATTRIBUTE_PROPERTY__VALUE = eINSTANCE.getManyBooleanAttributeProperty_Value();
+
+ /**
+ * The meta object literal for the 'Operator' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute MANY_BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR = eINSTANCE.getManyBooleanAttributeProperty_Operator();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.ManyIntegerAttributePropertyImpl Many Integer Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ManyIntegerAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getManyIntegerAttributeProperty()
+ * @generated
+ */
+ EClass MANY_INTEGER_ATTRIBUTE_PROPERTY = eINSTANCE.getManyIntegerAttributeProperty();
+
+ /**
+ * The meta object literal for the 'Quantifier' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute MANY_INTEGER_ATTRIBUTE_PROPERTY__QUANTIFIER = eINSTANCE.getManyIntegerAttributeProperty_Quantifier();
+
+ /**
+ * The meta object literal for the 'Value' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute MANY_INTEGER_ATTRIBUTE_PROPERTY__VALUE = eINSTANCE.getManyIntegerAttributeProperty_Value();
+
+ /**
+ * The meta object literal for the 'Operator' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute MANY_INTEGER_ATTRIBUTE_PROPERTY__OPERATOR = eINSTANCE.getManyIntegerAttributeProperty_Operator();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.ManyStringAttributePropertyImpl Many String Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.ManyStringAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getManyStringAttributeProperty()
+ * @generated
+ */
+ EClass MANY_STRING_ATTRIBUTE_PROPERTY = eINSTANCE.getManyStringAttributeProperty();
+
+ /**
+ * The meta object literal for the 'Quantifier' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute MANY_STRING_ATTRIBUTE_PROPERTY__QUANTIFIER = eINSTANCE.getManyStringAttributeProperty_Quantifier();
+
+ /**
+ * The meta object literal for the 'Value' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute MANY_STRING_ATTRIBUTE_PROPERTY__VALUE = eINSTANCE.getManyStringAttributeProperty_Value();
+
+ /**
+ * The meta object literal for the 'Operator' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute MANY_STRING_ATTRIBUTE_PROPERTY__OPERATOR = eINSTANCE.getManyStringAttributeProperty_Operator();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.BooleanAttributePropertyImpl Boolean Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.BooleanAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getBooleanAttributeProperty()
+ * @generated
+ */
+ EClass BOOLEAN_ATTRIBUTE_PROPERTY = eINSTANCE.getBooleanAttributeProperty();
+
+ /**
+ * The meta object literal for the 'Value' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute BOOLEAN_ATTRIBUTE_PROPERTY__VALUE = eINSTANCE.getBooleanAttributeProperty_Value();
+
+ /**
+ * The meta object literal for the 'Operator' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR = eINSTANCE.getBooleanAttributeProperty_Operator();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.IntegerAttributePropertyImpl Integer Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.IntegerAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getIntegerAttributeProperty()
+ * @generated
+ */
+ EClass INTEGER_ATTRIBUTE_PROPERTY = eINSTANCE.getIntegerAttributeProperty();
+
+ /**
+ * The meta object literal for the 'Value' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute INTEGER_ATTRIBUTE_PROPERTY__VALUE = eINSTANCE.getIntegerAttributeProperty_Value();
+
+ /**
+ * The meta object literal for the 'Operator' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute INTEGER_ATTRIBUTE_PROPERTY__OPERATOR = eINSTANCE.getIntegerAttributeProperty_Operator();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.impl.StringAttributePropertyImpl String Attribute Property}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.impl.StringAttributePropertyImpl
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getStringAttributeProperty()
+ * @generated
+ */
+ EClass STRING_ATTRIBUTE_PROPERTY = eINSTANCE.getStringAttributeProperty();
+
+ /**
+ * The meta object literal for the 'Value' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute STRING_ATTRIBUTE_PROPERTY__VALUE = eINSTANCE.getStringAttributeProperty_Value();
+
+ /**
+ * The meta object literal for the 'Operator' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute STRING_ATTRIBUTE_PROPERTY__OPERATOR = eINSTANCE.getStringAttributeProperty_Operator();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.Operator Operator}' enum.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getOperator()
+ * @generated
+ */
+ EEnum OPERATOR = eINSTANCE.getOperator();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.BooleanOperator Boolean Operator}' enum.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.BooleanOperator
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getBooleanOperator()
+ * @generated
+ */
+ EEnum BOOLEAN_OPERATOR = eINSTANCE.getBooleanOperator();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.property.Quantifier Quantifier}' enum.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.Quantifier
+ * @see fr.inria.diverse.event.commons.model.property.impl.PropertyPackageImpl#getQuantifier()
+ * @generated
+ */
+ EEnum QUANTIFIER = eINSTANCE.getQuantifier();
+
+ }
+
+} //PropertyPackage
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/Quantifier.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/Quantifier.java
new file mode 100644
index 000000000..3a24ef089
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/Quantifier.java
@@ -0,0 +1,214 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ *
+ * A representation of the literals of the enumeration 'Quantifier',
+ * and utility methods for working with them.
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getQuantifier()
+ * @model
+ * @generated
+ */
+public enum Quantifier implements Enumerator {
+ /**
+ * The 'EXISTS' literal object.
+ *
+ *
+ * @see #EXISTS_VALUE
+ * @generated
+ * @ordered
+ */
+ EXISTS(0, "EXISTS", "EXISTS"),
+
+ /**
+ * The 'FORALL' literal object.
+ *
+ *
+ * @see #FORALL_VALUE
+ * @generated
+ * @ordered
+ */
+ FORALL(1, "FORALL", "FORALL");
+
+ /**
+ * The 'EXISTS' literal value.
+ *
+ *
+ * If the meaning of 'EXISTS' literal object isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @see #EXISTS
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EXISTS_VALUE = 0;
+
+ /**
+ * The 'FORALL' literal value.
+ *
+ *
+ * If the meaning of 'FORALL' literal object isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @see #FORALL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FORALL_VALUE = 1;
+
+ /**
+ * An array of all the 'Quantifier' enumerators.
+ *
+ *
+ * @generated
+ */
+ private static final Quantifier[] VALUES_ARRAY =
+ new Quantifier[] {
+ EXISTS,
+ FORALL,
+ };
+
+ /**
+ * A public read-only list of all the 'Quantifier' enumerators.
+ *
+ *
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the 'Quantifier' literal with the specified literal value.
+ *
+ *
+ * @param literal the literal.
+ * @return the matching enumerator or null.
+ * @generated
+ */
+ public static Quantifier get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Quantifier result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the 'Quantifier' literal with the specified name.
+ *
+ *
+ * @param name the name.
+ * @return the matching enumerator or null.
+ * @generated
+ */
+ public static Quantifier getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Quantifier result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the 'Quantifier' literal with the specified integer value.
+ *
+ *
+ * @param value the integer value.
+ * @return the matching enumerator or null.
+ * @generated
+ */
+ public static Quantifier get(int value) {
+ switch (value) {
+ case EXISTS_VALUE: return EXISTS;
+ case FORALL_VALUE: return FORALL;
+ }
+ return null;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private final int value;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private final String name;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ *
+ *
+ * @generated
+ */
+ private Quantifier(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Quantifier
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/SingleReferenceProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/SingleReferenceProperty.java
new file mode 100644
index 000000000..0a1de206a
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/SingleReferenceProperty.java
@@ -0,0 +1,49 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+
+/**
+ *
+ * A representation of the model object 'Single Reference Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.SingleReferenceProperty#getProperty Property}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getSingleReferenceProperty()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SingleReferenceProperty, T> extends ClassProperty {
+ /**
+ * Returns the value of the 'Property' containment reference.
+ *
+ *
+ * If the meaning of the 'Property' containment reference isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Property' containment reference.
+ * @see #setProperty(ClassProperty)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getSingleReferenceProperty_Property()
+ * @model containment="true"
+ * @generated
+ */
+ P getProperty();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.SingleReferenceProperty#getProperty Property}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Property' containment reference.
+ * @see #getProperty()
+ * @generated
+ */
+ void setProperty(P value);
+
+} // SingleReferenceProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/StringAttributeProperty.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/StringAttributeProperty.java
new file mode 100644
index 000000000..06e039406
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/StringAttributeProperty.java
@@ -0,0 +1,79 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property;
+
+
+/**
+ *
+ * A representation of the model object 'String Attribute Property'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.StringAttributeProperty#getValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.StringAttributeProperty#getOperator Operator}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getStringAttributeProperty()
+ * @model abstract="true"
+ * @generated
+ */
+public interface StringAttributeProperty extends ClassProperty {
+ /**
+ * Returns the value of the 'Value' attribute.
+ *
+ *
+ * If the meaning of the 'Value' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Value' attribute.
+ * @see #setValue(String)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getStringAttributeProperty_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.StringAttributeProperty#getValue Value}' attribute.
+ *
+ *
+ * @param value the new value of the 'Value' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the 'Operator' attribute.
+ * The literals are from the enumeration {@link fr.inria.diverse.event.commons.model.property.Operator}.
+ *
+ *
+ * If the meaning of the 'Operator' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #setOperator(Operator)
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#getStringAttributeProperty_Operator()
+ * @model
+ * @generated
+ */
+ Operator getOperator();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.property.StringAttributeProperty#getOperator Operator}' attribute.
+ *
+ *
+ * @param value the new value of the 'Operator' attribute.
+ * @see fr.inria.diverse.event.commons.model.property.Operator
+ * @see #getOperator()
+ * @generated
+ */
+ void setOperator(Operator value);
+
+} // StringAttributeProperty
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/BinaryPropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/BinaryPropertyImpl.java
new file mode 100644
index 000000000..a000d57f9
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/BinaryPropertyImpl.java
@@ -0,0 +1,322 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.BinaryProperty;
+import fr.inria.diverse.event.commons.model.property.BooleanOperator;
+import fr.inria.diverse.event.commons.model.property.ClassProperty;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Binary Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.BinaryPropertyImpl#getOperator Operator}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.BinaryPropertyImpl#getLeft Left}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.BinaryPropertyImpl#getRight Right}
+ *
+ *
+ * @generated
+ */
+public abstract class BinaryPropertyImpl, T> extends ClassPropertyImpl implements BinaryProperty {
+ /**
+ * The default value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final BooleanOperator OPERATOR_EDEFAULT = BooleanOperator.AND;
+
+ /**
+ * The cached value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected BooleanOperator operator = OPERATOR_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getLeft() Left}' containment reference.
+ *
+ *
+ * @see #getLeft()
+ * @generated
+ * @ordered
+ */
+ protected P left;
+
+ /**
+ * The cached value of the '{@link #getRight() Right}' containment reference.
+ *
+ *
+ * @see #getRight()
+ * @generated
+ * @ordered
+ */
+ protected P right;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected BinaryPropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.BINARY_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setTarget(T newTarget) {
+ super.setTarget(newTarget);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public BooleanOperator getOperator() {
+ return operator;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setOperator(BooleanOperator newOperator) {
+ BooleanOperator oldOperator = operator;
+ operator = newOperator == null ? OPERATOR_EDEFAULT : newOperator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.BINARY_PROPERTY__OPERATOR, oldOperator, operator));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public P getLeft() {
+ return left;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetLeft(P newLeft, NotificationChain msgs) {
+ P oldLeft = left;
+ left = newLeft;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PropertyPackage.BINARY_PROPERTY__LEFT, oldLeft, newLeft);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setLeft(P newLeft) {
+ if (newLeft != left) {
+ NotificationChain msgs = null;
+ if (left != null)
+ msgs = ((InternalEObject)left).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PropertyPackage.BINARY_PROPERTY__LEFT, null, msgs);
+ if (newLeft != null)
+ msgs = ((InternalEObject)newLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PropertyPackage.BINARY_PROPERTY__LEFT, null, msgs);
+ msgs = basicSetLeft(newLeft, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.BINARY_PROPERTY__LEFT, newLeft, newLeft));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public P getRight() {
+ return right;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetRight(P newRight, NotificationChain msgs) {
+ P oldRight = right;
+ right = newRight;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PropertyPackage.BINARY_PROPERTY__RIGHT, oldRight, newRight);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setRight(P newRight) {
+ if (newRight != right) {
+ NotificationChain msgs = null;
+ if (right != null)
+ msgs = ((InternalEObject)right).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PropertyPackage.BINARY_PROPERTY__RIGHT, null, msgs);
+ if (newRight != null)
+ msgs = ((InternalEObject)newRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PropertyPackage.BINARY_PROPERTY__RIGHT, null, msgs);
+ msgs = basicSetRight(newRight, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.BINARY_PROPERTY__RIGHT, newRight, newRight));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PropertyPackage.BINARY_PROPERTY__LEFT:
+ return basicSetLeft(null, msgs);
+ case PropertyPackage.BINARY_PROPERTY__RIGHT:
+ return basicSetRight(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.BINARY_PROPERTY__OPERATOR:
+ return getOperator();
+ case PropertyPackage.BINARY_PROPERTY__LEFT:
+ return getLeft();
+ case PropertyPackage.BINARY_PROPERTY__RIGHT:
+ return getRight();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.BINARY_PROPERTY__OPERATOR:
+ setOperator((BooleanOperator)newValue);
+ return;
+ case PropertyPackage.BINARY_PROPERTY__LEFT:
+ setLeft((P)newValue);
+ return;
+ case PropertyPackage.BINARY_PROPERTY__RIGHT:
+ setRight((P)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.BINARY_PROPERTY__OPERATOR:
+ setOperator(OPERATOR_EDEFAULT);
+ return;
+ case PropertyPackage.BINARY_PROPERTY__LEFT:
+ setLeft((P)null);
+ return;
+ case PropertyPackage.BINARY_PROPERTY__RIGHT:
+ setRight((P)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.BINARY_PROPERTY__OPERATOR:
+ return operator != OPERATOR_EDEFAULT;
+ case PropertyPackage.BINARY_PROPERTY__LEFT:
+ return left != null;
+ case PropertyPackage.BINARY_PROPERTY__RIGHT:
+ return right != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (operator: ");
+ result.append(operator);
+ result.append(')');
+ return result.toString();
+ }
+
+} //BinaryPropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/BooleanAttributePropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/BooleanAttributePropertyImpl.java
new file mode 100644
index 000000000..b824e984e
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/BooleanAttributePropertyImpl.java
@@ -0,0 +1,228 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty;
+import fr.inria.diverse.event.commons.model.property.Operator;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Boolean Attribute Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.BooleanAttributePropertyImpl#isValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.BooleanAttributePropertyImpl#getOperator Operator}
+ *
+ *
+ * @generated
+ */
+public abstract class BooleanAttributePropertyImpl extends ClassPropertyImpl implements BooleanAttributeProperty {
+ /**
+ * The default value of the '{@link #isValue() Value}' attribute.
+ *
+ *
+ * @see #isValue()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VALUE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isValue() Value}' attribute.
+ *
+ *
+ * @see #isValue()
+ * @generated
+ * @ordered
+ */
+ protected boolean value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final Operator OPERATOR_EDEFAULT = Operator.EQUAL;
+
+ /**
+ * The cached value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected Operator operator = OPERATOR_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected BooleanAttributePropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.BOOLEAN_ATTRIBUTE_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setTarget(T newTarget) {
+ super.setTarget(newTarget);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public boolean isValue() {
+ return value;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setValue(boolean newValue) {
+ boolean oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY__VALUE, oldValue, value));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Operator getOperator() {
+ return operator;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setOperator(Operator newOperator) {
+ Operator oldOperator = operator;
+ operator = newOperator == null ? OPERATOR_EDEFAULT : newOperator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR, oldOperator, operator));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY__VALUE:
+ return isValue();
+ case PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR:
+ return getOperator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY__VALUE:
+ setValue((Boolean)newValue);
+ return;
+ case PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator((Operator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator(OPERATOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY__VALUE:
+ return value != VALUE_EDEFAULT;
+ case PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR:
+ return operator != OPERATOR_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(", operator: ");
+ result.append(operator);
+ result.append(')');
+ return result.toString();
+ }
+
+} //BooleanAttributePropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ClassPropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ClassPropertyImpl.java
new file mode 100644
index 000000000..5a7507716
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ClassPropertyImpl.java
@@ -0,0 +1,202 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.ClassProperty;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ *
+ * An implementation of the model object 'Class Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ClassPropertyImpl#getTarget Target}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ClassPropertyImpl#getFeature Feature}
+ *
+ *
+ * @generated
+ */
+public abstract class ClassPropertyImpl extends MinimalEObjectImpl.Container implements ClassProperty {
+ /**
+ * The cached value of the '{@link #getTarget() Target}' reference.
+ *
+ *
+ * @see #getTarget()
+ * @generated
+ * @ordered
+ */
+ protected T target;
+
+ /**
+ * The cached value of the '{@link #getFeature() Feature}' reference.
+ *
+ *
+ * @see #getFeature()
+ * @generated
+ * @ordered
+ */
+ protected EStructuralFeature feature;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ClassPropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.CLASS_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public T getTarget() {
+ if (target != null && ((EObject)target).eIsProxy()) {
+ InternalEObject oldTarget = (InternalEObject)target;
+ target = (T)eResolveProxy(oldTarget);
+ if (target != oldTarget) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, PropertyPackage.CLASS_PROPERTY__TARGET, oldTarget, target));
+ }
+ }
+ return target;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public T basicGetTarget() {
+ return target;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setTarget(T newTarget) {
+ T oldTarget = target;
+ target = newTarget;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.CLASS_PROPERTY__TARGET, oldTarget, target));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EStructuralFeature getFeature() {
+ if (feature != null && feature.eIsProxy()) {
+ InternalEObject oldFeature = (InternalEObject)feature;
+ feature = (EStructuralFeature)eResolveProxy(oldFeature);
+ if (feature != oldFeature) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, PropertyPackage.CLASS_PROPERTY__FEATURE, oldFeature, feature));
+ }
+ }
+ return feature;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EStructuralFeature basicGetFeature() {
+ return feature;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.CLASS_PROPERTY__TARGET:
+ if (resolve) return getTarget();
+ return basicGetTarget();
+ case PropertyPackage.CLASS_PROPERTY__FEATURE:
+ if (resolve) return getFeature();
+ return basicGetFeature();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.CLASS_PROPERTY__TARGET:
+ setTarget((T)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.CLASS_PROPERTY__TARGET:
+ setTarget((T)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.CLASS_PROPERTY__TARGET:
+ return target != null;
+ case PropertyPackage.CLASS_PROPERTY__FEATURE:
+ return feature != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ClassPropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ContainerReferencePropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ContainerReferencePropertyImpl.java
new file mode 100644
index 000000000..ee26d6bb4
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ContainerReferencePropertyImpl.java
@@ -0,0 +1,187 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.ClassProperty;
+import fr.inria.diverse.event.commons.model.property.ContainerReferenceProperty;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Container Reference Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ContainerReferencePropertyImpl#getProperty Property}
+ *
+ *
+ * @generated
+ */
+public class ContainerReferencePropertyImpl, T> extends ClassPropertyImpl implements ContainerReferenceProperty {
+ /**
+ * The cached value of the '{@link #getProperty() Property}' containment reference.
+ *
+ *
+ * @see #getProperty()
+ * @generated
+ * @ordered
+ */
+ protected P property;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ContainerReferencePropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.CONTAINER_REFERENCE_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setTarget(T newTarget) {
+ super.setTarget(newTarget);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public P getProperty() {
+ return property;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetProperty(P newProperty, NotificationChain msgs) {
+ P oldProperty = property;
+ property = newProperty;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PropertyPackage.CONTAINER_REFERENCE_PROPERTY__PROPERTY, oldProperty, newProperty);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setProperty(P newProperty) {
+ if (newProperty != property) {
+ NotificationChain msgs = null;
+ if (property != null)
+ msgs = ((InternalEObject)property).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PropertyPackage.CONTAINER_REFERENCE_PROPERTY__PROPERTY, null, msgs);
+ if (newProperty != null)
+ msgs = ((InternalEObject)newProperty).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PropertyPackage.CONTAINER_REFERENCE_PROPERTY__PROPERTY, null, msgs);
+ msgs = basicSetProperty(newProperty, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.CONTAINER_REFERENCE_PROPERTY__PROPERTY, newProperty, newProperty));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PropertyPackage.CONTAINER_REFERENCE_PROPERTY__PROPERTY:
+ return basicSetProperty(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.CONTAINER_REFERENCE_PROPERTY__PROPERTY:
+ return getProperty();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.CONTAINER_REFERENCE_PROPERTY__PROPERTY:
+ setProperty((P)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.CONTAINER_REFERENCE_PROPERTY__PROPERTY:
+ setProperty((P)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.CONTAINER_REFERENCE_PROPERTY__PROPERTY:
+ return property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ContainerReferencePropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/IntegerAttributePropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/IntegerAttributePropertyImpl.java
new file mode 100644
index 000000000..4e006ab67
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/IntegerAttributePropertyImpl.java
@@ -0,0 +1,228 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty;
+import fr.inria.diverse.event.commons.model.property.Operator;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Integer Attribute Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.IntegerAttributePropertyImpl#getValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.IntegerAttributePropertyImpl#getOperator Operator}
+ *
+ *
+ * @generated
+ */
+public abstract class IntegerAttributePropertyImpl extends ClassPropertyImpl implements IntegerAttributeProperty {
+ /**
+ * The default value of the '{@link #getValue() Value}' attribute.
+ *
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() Value}' attribute.
+ *
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final Operator OPERATOR_EDEFAULT = Operator.EQUAL;
+
+ /**
+ * The cached value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected Operator operator = OPERATOR_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected IntegerAttributePropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.INTEGER_ATTRIBUTE_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setTarget(T newTarget) {
+ super.setTarget(newTarget);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setValue(int newValue) {
+ int oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY__VALUE, oldValue, value));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Operator getOperator() {
+ return operator;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setOperator(Operator newOperator) {
+ Operator oldOperator = operator;
+ operator = newOperator == null ? OPERATOR_EDEFAULT : newOperator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY__OPERATOR, oldOperator, operator));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY__VALUE:
+ return getValue();
+ case PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY__OPERATOR:
+ return getOperator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY__VALUE:
+ setValue((Integer)newValue);
+ return;
+ case PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator((Operator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator(OPERATOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY__VALUE:
+ return value != VALUE_EDEFAULT;
+ case PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY__OPERATOR:
+ return operator != OPERATOR_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(", operator: ");
+ result.append(operator);
+ result.append(')');
+ return result.toString();
+ }
+
+} //IntegerAttributePropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyBooleanAttributePropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyBooleanAttributePropertyImpl.java
new file mode 100644
index 000000000..e2dd54e41
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyBooleanAttributePropertyImpl.java
@@ -0,0 +1,282 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty;
+import fr.inria.diverse.event.commons.model.property.Operator;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+import fr.inria.diverse.event.commons.model.property.Quantifier;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Many Boolean Attribute Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyBooleanAttributePropertyImpl#getQuantifier Quantifier}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyBooleanAttributePropertyImpl#isValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyBooleanAttributePropertyImpl#getOperator Operator}
+ *
+ *
+ * @generated
+ */
+public class ManyBooleanAttributePropertyImpl extends ClassPropertyImpl implements ManyBooleanAttributeProperty {
+ /**
+ * The default value of the '{@link #getQuantifier() Quantifier}' attribute.
+ *
+ *
+ * @see #getQuantifier()
+ * @generated
+ * @ordered
+ */
+ protected static final Quantifier QUANTIFIER_EDEFAULT = Quantifier.EXISTS;
+
+ /**
+ * The cached value of the '{@link #getQuantifier() Quantifier}' attribute.
+ *
+ *
+ * @see #getQuantifier()
+ * @generated
+ * @ordered
+ */
+ protected Quantifier quantifier = QUANTIFIER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isValue() Value}' attribute.
+ *
+ *
+ * @see #isValue()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VALUE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isValue() Value}' attribute.
+ *
+ *
+ * @see #isValue()
+ * @generated
+ * @ordered
+ */
+ protected boolean value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final Operator OPERATOR_EDEFAULT = Operator.EQUAL;
+
+ /**
+ * The cached value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected Operator operator = OPERATOR_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ManyBooleanAttributePropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.MANY_BOOLEAN_ATTRIBUTE_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setTarget(T newTarget) {
+ super.setTarget(newTarget);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Quantifier getQuantifier() {
+ return quantifier;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setQuantifier(Quantifier newQuantifier) {
+ Quantifier oldQuantifier = quantifier;
+ quantifier = newQuantifier == null ? QUANTIFIER_EDEFAULT : newQuantifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__QUANTIFIER, oldQuantifier, quantifier));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public boolean isValue() {
+ return value;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setValue(boolean newValue) {
+ boolean oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__VALUE, oldValue, value));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Operator getOperator() {
+ return operator;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setOperator(Operator newOperator) {
+ Operator oldOperator = operator;
+ operator = newOperator == null ? OPERATOR_EDEFAULT : newOperator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR, oldOperator, operator));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ return getQuantifier();
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__VALUE:
+ return isValue();
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR:
+ return getOperator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ setQuantifier((Quantifier)newValue);
+ return;
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__VALUE:
+ setValue((Boolean)newValue);
+ return;
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator((Operator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ setQuantifier(QUANTIFIER_EDEFAULT);
+ return;
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator(OPERATOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ return quantifier != QUANTIFIER_EDEFAULT;
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__VALUE:
+ return value != VALUE_EDEFAULT;
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR:
+ return operator != OPERATOR_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (quantifier: ");
+ result.append(quantifier);
+ result.append(", value: ");
+ result.append(value);
+ result.append(", operator: ");
+ result.append(operator);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ManyBooleanAttributePropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyIntegerAttributePropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyIntegerAttributePropertyImpl.java
new file mode 100644
index 000000000..43073b134
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyIntegerAttributePropertyImpl.java
@@ -0,0 +1,282 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty;
+import fr.inria.diverse.event.commons.model.property.Operator;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+import fr.inria.diverse.event.commons.model.property.Quantifier;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Many Integer Attribute Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyIntegerAttributePropertyImpl#getQuantifier Quantifier}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyIntegerAttributePropertyImpl#getValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyIntegerAttributePropertyImpl#getOperator Operator}
+ *
+ *
+ * @generated
+ */
+public class ManyIntegerAttributePropertyImpl extends ClassPropertyImpl implements ManyIntegerAttributeProperty {
+ /**
+ * The default value of the '{@link #getQuantifier() Quantifier}' attribute.
+ *
+ *
+ * @see #getQuantifier()
+ * @generated
+ * @ordered
+ */
+ protected static final Quantifier QUANTIFIER_EDEFAULT = Quantifier.EXISTS;
+
+ /**
+ * The cached value of the '{@link #getQuantifier() Quantifier}' attribute.
+ *
+ *
+ * @see #getQuantifier()
+ * @generated
+ * @ordered
+ */
+ protected Quantifier quantifier = QUANTIFIER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() Value}' attribute.
+ *
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() Value}' attribute.
+ *
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final Operator OPERATOR_EDEFAULT = Operator.EQUAL;
+
+ /**
+ * The cached value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected Operator operator = OPERATOR_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ManyIntegerAttributePropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.MANY_INTEGER_ATTRIBUTE_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setTarget(T newTarget) {
+ super.setTarget(newTarget);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Quantifier getQuantifier() {
+ return quantifier;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setQuantifier(Quantifier newQuantifier) {
+ Quantifier oldQuantifier = quantifier;
+ quantifier = newQuantifier == null ? QUANTIFIER_EDEFAULT : newQuantifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__QUANTIFIER, oldQuantifier, quantifier));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setValue(int newValue) {
+ int oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__VALUE, oldValue, value));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Operator getOperator() {
+ return operator;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setOperator(Operator newOperator) {
+ Operator oldOperator = operator;
+ operator = newOperator == null ? OPERATOR_EDEFAULT : newOperator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__OPERATOR, oldOperator, operator));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ return getQuantifier();
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__VALUE:
+ return getValue();
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__OPERATOR:
+ return getOperator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ setQuantifier((Quantifier)newValue);
+ return;
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__VALUE:
+ setValue((Integer)newValue);
+ return;
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator((Operator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ setQuantifier(QUANTIFIER_EDEFAULT);
+ return;
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator(OPERATOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ return quantifier != QUANTIFIER_EDEFAULT;
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__VALUE:
+ return value != VALUE_EDEFAULT;
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY__OPERATOR:
+ return operator != OPERATOR_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (quantifier: ");
+ result.append(quantifier);
+ result.append(", value: ");
+ result.append(value);
+ result.append(", operator: ");
+ result.append(operator);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ManyIntegerAttributePropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyReferencePropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyReferencePropertyImpl.java
new file mode 100644
index 000000000..805348f34
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyReferencePropertyImpl.java
@@ -0,0 +1,256 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.ClassProperty;
+import fr.inria.diverse.event.commons.model.property.ManyReferenceProperty;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+import fr.inria.diverse.event.commons.model.property.Quantifier;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Many Reference Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyReferencePropertyImpl#getProperty Property}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyReferencePropertyImpl#getQuantifier Quantifier}
+ *
+ *
+ * @generated
+ */
+public abstract class ManyReferencePropertyImpl, T> extends ClassPropertyImpl implements ManyReferenceProperty {
+ /**
+ * The cached value of the '{@link #getProperty() Property}' containment reference.
+ *
+ *
+ * @see #getProperty()
+ * @generated
+ * @ordered
+ */
+ protected P property;
+
+ /**
+ * The default value of the '{@link #getQuantifier() Quantifier}' attribute.
+ *
+ *
+ * @see #getQuantifier()
+ * @generated
+ * @ordered
+ */
+ protected static final Quantifier QUANTIFIER_EDEFAULT = Quantifier.EXISTS;
+
+ /**
+ * The cached value of the '{@link #getQuantifier() Quantifier}' attribute.
+ *
+ *
+ * @see #getQuantifier()
+ * @generated
+ * @ordered
+ */
+ protected Quantifier quantifier = QUANTIFIER_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ManyReferencePropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.MANY_REFERENCE_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setTarget(T newTarget) {
+ super.setTarget(newTarget);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public P getProperty() {
+ return property;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetProperty(P newProperty, NotificationChain msgs) {
+ P oldProperty = property;
+ property = newProperty;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_REFERENCE_PROPERTY__PROPERTY, oldProperty, newProperty);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setProperty(P newProperty) {
+ if (newProperty != property) {
+ NotificationChain msgs = null;
+ if (property != null)
+ msgs = ((InternalEObject)property).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PropertyPackage.MANY_REFERENCE_PROPERTY__PROPERTY, null, msgs);
+ if (newProperty != null)
+ msgs = ((InternalEObject)newProperty).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PropertyPackage.MANY_REFERENCE_PROPERTY__PROPERTY, null, msgs);
+ msgs = basicSetProperty(newProperty, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_REFERENCE_PROPERTY__PROPERTY, newProperty, newProperty));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Quantifier getQuantifier() {
+ return quantifier;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setQuantifier(Quantifier newQuantifier) {
+ Quantifier oldQuantifier = quantifier;
+ quantifier = newQuantifier == null ? QUANTIFIER_EDEFAULT : newQuantifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_REFERENCE_PROPERTY__QUANTIFIER, oldQuantifier, quantifier));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PropertyPackage.MANY_REFERENCE_PROPERTY__PROPERTY:
+ return basicSetProperty(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.MANY_REFERENCE_PROPERTY__PROPERTY:
+ return getProperty();
+ case PropertyPackage.MANY_REFERENCE_PROPERTY__QUANTIFIER:
+ return getQuantifier();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.MANY_REFERENCE_PROPERTY__PROPERTY:
+ setProperty((P)newValue);
+ return;
+ case PropertyPackage.MANY_REFERENCE_PROPERTY__QUANTIFIER:
+ setQuantifier((Quantifier)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.MANY_REFERENCE_PROPERTY__PROPERTY:
+ setProperty((P)null);
+ return;
+ case PropertyPackage.MANY_REFERENCE_PROPERTY__QUANTIFIER:
+ setQuantifier(QUANTIFIER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.MANY_REFERENCE_PROPERTY__PROPERTY:
+ return property != null;
+ case PropertyPackage.MANY_REFERENCE_PROPERTY__QUANTIFIER:
+ return quantifier != QUANTIFIER_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (quantifier: ");
+ result.append(quantifier);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ManyReferencePropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyStringAttributePropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyStringAttributePropertyImpl.java
new file mode 100644
index 000000000..323447880
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/ManyStringAttributePropertyImpl.java
@@ -0,0 +1,282 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty;
+import fr.inria.diverse.event.commons.model.property.Operator;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+import fr.inria.diverse.event.commons.model.property.Quantifier;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Many String Attribute Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyStringAttributePropertyImpl#getQuantifier Quantifier}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyStringAttributePropertyImpl#getValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.ManyStringAttributePropertyImpl#getOperator Operator}
+ *
+ *
+ * @generated
+ */
+public class ManyStringAttributePropertyImpl extends ClassPropertyImpl implements ManyStringAttributeProperty {
+ /**
+ * The default value of the '{@link #getQuantifier() Quantifier}' attribute.
+ *
+ *
+ * @see #getQuantifier()
+ * @generated
+ * @ordered
+ */
+ protected static final Quantifier QUANTIFIER_EDEFAULT = Quantifier.EXISTS;
+
+ /**
+ * The cached value of the '{@link #getQuantifier() Quantifier}' attribute.
+ *
+ *
+ * @see #getQuantifier()
+ * @generated
+ * @ordered
+ */
+ protected Quantifier quantifier = QUANTIFIER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() Value}' attribute.
+ *
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() Value}' attribute.
+ *
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final Operator OPERATOR_EDEFAULT = Operator.EQUAL;
+
+ /**
+ * The cached value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected Operator operator = OPERATOR_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ManyStringAttributePropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.MANY_STRING_ATTRIBUTE_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setTarget(T newTarget) {
+ super.setTarget(newTarget);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Quantifier getQuantifier() {
+ return quantifier;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setQuantifier(Quantifier newQuantifier) {
+ Quantifier oldQuantifier = quantifier;
+ quantifier = newQuantifier == null ? QUANTIFIER_EDEFAULT : newQuantifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__QUANTIFIER, oldQuantifier, quantifier));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__VALUE, oldValue, value));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Operator getOperator() {
+ return operator;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setOperator(Operator newOperator) {
+ Operator oldOperator = operator;
+ operator = newOperator == null ? OPERATOR_EDEFAULT : newOperator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__OPERATOR, oldOperator, operator));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ return getQuantifier();
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__VALUE:
+ return getValue();
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__OPERATOR:
+ return getOperator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ setQuantifier((Quantifier)newValue);
+ return;
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__VALUE:
+ setValue((String)newValue);
+ return;
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator((Operator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ setQuantifier(QUANTIFIER_EDEFAULT);
+ return;
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator(OPERATOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__QUANTIFIER:
+ return quantifier != QUANTIFIER_EDEFAULT;
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY__OPERATOR:
+ return operator != OPERATOR_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (quantifier: ");
+ result.append(quantifier);
+ result.append(", value: ");
+ result.append(value);
+ result.append(", operator: ");
+ result.append(operator);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ManyStringAttributePropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/PropertyFactoryImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/PropertyFactoryImpl.java
new file mode 100644
index 000000000..41ebc4042
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/PropertyFactoryImpl.java
@@ -0,0 +1,227 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ *
+ * An implementation of the model Factory.
+ *
+ * @generated
+ */
+public class PropertyFactoryImpl extends EFactoryImpl implements PropertyFactory {
+ /**
+ * Creates the default factory implementation.
+ *
+ *
+ * @generated
+ */
+ public static PropertyFactory init() {
+ try {
+ PropertyFactory thePropertyFactory = (PropertyFactory)EPackage.Registry.INSTANCE.getEFactory(PropertyPackage.eNS_URI);
+ if (thePropertyFactory != null) {
+ return thePropertyFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new PropertyFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ *
+ *
+ * @generated
+ */
+ public PropertyFactoryImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case PropertyPackage.CONTAINER_REFERENCE_PROPERTY: return createContainerReferenceProperty();
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY: return createManyBooleanAttributeProperty();
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY: return createManyIntegerAttributeProperty();
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY: return createManyStringAttributeProperty();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case PropertyPackage.OPERATOR:
+ return createOperatorFromString(eDataType, initialValue);
+ case PropertyPackage.BOOLEAN_OPERATOR:
+ return createBooleanOperatorFromString(eDataType, initialValue);
+ case PropertyPackage.QUANTIFIER:
+ return createQuantifierFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case PropertyPackage.OPERATOR:
+ return convertOperatorToString(eDataType, instanceValue);
+ case PropertyPackage.BOOLEAN_OPERATOR:
+ return convertBooleanOperatorToString(eDataType, instanceValue);
+ case PropertyPackage.QUANTIFIER:
+ return convertQuantifierToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public , T> ContainerReferenceProperty
createContainerReferenceProperty() {
+ ContainerReferencePropertyImpl
containerReferenceProperty = new ContainerReferencePropertyImpl
();
+ return containerReferenceProperty;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public ManyBooleanAttributeProperty createManyBooleanAttributeProperty() {
+ ManyBooleanAttributePropertyImpl manyBooleanAttributeProperty = new ManyBooleanAttributePropertyImpl();
+ return manyBooleanAttributeProperty;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public ManyIntegerAttributeProperty createManyIntegerAttributeProperty() {
+ ManyIntegerAttributePropertyImpl manyIntegerAttributeProperty = new ManyIntegerAttributePropertyImpl();
+ return manyIntegerAttributeProperty;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public ManyStringAttributeProperty createManyStringAttributeProperty() {
+ ManyStringAttributePropertyImpl manyStringAttributeProperty = new ManyStringAttributePropertyImpl();
+ return manyStringAttributeProperty;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Operator createOperatorFromString(EDataType eDataType, String initialValue) {
+ Operator result = Operator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String convertOperatorToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public BooleanOperator createBooleanOperatorFromString(EDataType eDataType, String initialValue) {
+ BooleanOperator result = BooleanOperator.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String convertBooleanOperatorToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Quantifier createQuantifierFromString(EDataType eDataType, String initialValue) {
+ Quantifier result = Quantifier.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String convertQuantifierToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public PropertyPackage getPropertyPackage() {
+ return (PropertyPackage)getEPackage();
+ }
+
+ /**
+ *
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static PropertyPackage getPackage() {
+ return PropertyPackage.eINSTANCE;
+ }
+
+} //PropertyFactoryImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/PropertyPackageImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/PropertyPackageImpl.java
new file mode 100644
index 000000000..97a7f78aa
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/PropertyPackageImpl.java
@@ -0,0 +1,797 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.BinaryProperty;
+import fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty;
+import fr.inria.diverse.event.commons.model.property.BooleanOperator;
+import fr.inria.diverse.event.commons.model.property.ClassProperty;
+import fr.inria.diverse.event.commons.model.property.ContainerReferenceProperty;
+import fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty;
+import fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty;
+import fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty;
+import fr.inria.diverse.event.commons.model.property.ManyReferenceProperty;
+import fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty;
+import fr.inria.diverse.event.commons.model.property.Operator;
+import fr.inria.diverse.event.commons.model.property.PropertyFactory;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+import fr.inria.diverse.event.commons.model.property.Quantifier;
+import fr.inria.diverse.event.commons.model.property.SingleReferenceProperty;
+import fr.inria.diverse.event.commons.model.property.StringAttributeProperty;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.ETypeParameter;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ *
+ * An implementation of the model Package.
+ *
+ * @generated
+ */
+public class PropertyPackageImpl extends EPackageImpl implements PropertyPackage {
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass classPropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass binaryPropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass manyReferencePropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass singleReferencePropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass containerReferencePropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass manyBooleanAttributePropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass manyIntegerAttributePropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass manyStringAttributePropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass booleanAttributePropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass integerAttributePropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass stringAttributePropertyEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EEnum operatorEEnum = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EEnum booleanOperatorEEnum = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EEnum quantifierEEnum = null;
+
+ /**
+ * Creates an instance of the model Package, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ *
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private PropertyPackageImpl() {
+ super(eNS_URI, PropertyFactory.eINSTANCE);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the Package for this model, and for any others upon which it depends.
+ *
+ *
This method is used to initialize {@link PropertyPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ *
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static PropertyPackage init() {
+ if (isInited) return (PropertyPackage)EPackage.Registry.INSTANCE.getEPackage(PropertyPackage.eNS_URI);
+
+ // Obtain or create and register package
+ PropertyPackageImpl thePropertyPackage = (PropertyPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PropertyPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PropertyPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ thePropertyPackage.createPackageContents();
+
+ // Initialize created meta-data
+ thePropertyPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thePropertyPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(PropertyPackage.eNS_URI, thePropertyPackage);
+ return thePropertyPackage;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getClassProperty() {
+ return classPropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getClassProperty_Target() {
+ return (EReference)classPropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getClassProperty_Feature() {
+ return (EReference)classPropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getBinaryProperty() {
+ return binaryPropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getBinaryProperty_Operator() {
+ return (EAttribute)binaryPropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getBinaryProperty_Left() {
+ return (EReference)binaryPropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getBinaryProperty_Right() {
+ return (EReference)binaryPropertyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getManyReferenceProperty() {
+ return manyReferencePropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getManyReferenceProperty_Property() {
+ return (EReference)manyReferencePropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getManyReferenceProperty_Quantifier() {
+ return (EAttribute)manyReferencePropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getSingleReferenceProperty() {
+ return singleReferencePropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getSingleReferenceProperty_Property() {
+ return (EReference)singleReferencePropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getContainerReferenceProperty() {
+ return containerReferencePropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getContainerReferenceProperty_Property() {
+ return (EReference)containerReferencePropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getManyBooleanAttributeProperty() {
+ return manyBooleanAttributePropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getManyBooleanAttributeProperty_Quantifier() {
+ return (EAttribute)manyBooleanAttributePropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getManyBooleanAttributeProperty_Value() {
+ return (EAttribute)manyBooleanAttributePropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getManyBooleanAttributeProperty_Operator() {
+ return (EAttribute)manyBooleanAttributePropertyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getManyIntegerAttributeProperty() {
+ return manyIntegerAttributePropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getManyIntegerAttributeProperty_Quantifier() {
+ return (EAttribute)manyIntegerAttributePropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getManyIntegerAttributeProperty_Value() {
+ return (EAttribute)manyIntegerAttributePropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getManyIntegerAttributeProperty_Operator() {
+ return (EAttribute)manyIntegerAttributePropertyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getManyStringAttributeProperty() {
+ return manyStringAttributePropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getManyStringAttributeProperty_Quantifier() {
+ return (EAttribute)manyStringAttributePropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getManyStringAttributeProperty_Value() {
+ return (EAttribute)manyStringAttributePropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getManyStringAttributeProperty_Operator() {
+ return (EAttribute)manyStringAttributePropertyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getBooleanAttributeProperty() {
+ return booleanAttributePropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getBooleanAttributeProperty_Value() {
+ return (EAttribute)booleanAttributePropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getBooleanAttributeProperty_Operator() {
+ return (EAttribute)booleanAttributePropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getIntegerAttributeProperty() {
+ return integerAttributePropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getIntegerAttributeProperty_Value() {
+ return (EAttribute)integerAttributePropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getIntegerAttributeProperty_Operator() {
+ return (EAttribute)integerAttributePropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getStringAttributeProperty() {
+ return stringAttributePropertyEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getStringAttributeProperty_Value() {
+ return (EAttribute)stringAttributePropertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getStringAttributeProperty_Operator() {
+ return (EAttribute)stringAttributePropertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EEnum getOperator() {
+ return operatorEEnum;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EEnum getBooleanOperator() {
+ return booleanOperatorEEnum;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EEnum getQuantifier() {
+ return quantifierEEnum;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public PropertyFactory getPropertyFactory() {
+ return (PropertyFactory)getEFactoryInstance();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ *
+ *
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ classPropertyEClass = createEClass(CLASS_PROPERTY);
+ createEReference(classPropertyEClass, CLASS_PROPERTY__TARGET);
+ createEReference(classPropertyEClass, CLASS_PROPERTY__FEATURE);
+
+ binaryPropertyEClass = createEClass(BINARY_PROPERTY);
+ createEAttribute(binaryPropertyEClass, BINARY_PROPERTY__OPERATOR);
+ createEReference(binaryPropertyEClass, BINARY_PROPERTY__LEFT);
+ createEReference(binaryPropertyEClass, BINARY_PROPERTY__RIGHT);
+
+ manyReferencePropertyEClass = createEClass(MANY_REFERENCE_PROPERTY);
+ createEReference(manyReferencePropertyEClass, MANY_REFERENCE_PROPERTY__PROPERTY);
+ createEAttribute(manyReferencePropertyEClass, MANY_REFERENCE_PROPERTY__QUANTIFIER);
+
+ singleReferencePropertyEClass = createEClass(SINGLE_REFERENCE_PROPERTY);
+ createEReference(singleReferencePropertyEClass, SINGLE_REFERENCE_PROPERTY__PROPERTY);
+
+ containerReferencePropertyEClass = createEClass(CONTAINER_REFERENCE_PROPERTY);
+ createEReference(containerReferencePropertyEClass, CONTAINER_REFERENCE_PROPERTY__PROPERTY);
+
+ manyBooleanAttributePropertyEClass = createEClass(MANY_BOOLEAN_ATTRIBUTE_PROPERTY);
+ createEAttribute(manyBooleanAttributePropertyEClass, MANY_BOOLEAN_ATTRIBUTE_PROPERTY__QUANTIFIER);
+ createEAttribute(manyBooleanAttributePropertyEClass, MANY_BOOLEAN_ATTRIBUTE_PROPERTY__VALUE);
+ createEAttribute(manyBooleanAttributePropertyEClass, MANY_BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR);
+
+ manyIntegerAttributePropertyEClass = createEClass(MANY_INTEGER_ATTRIBUTE_PROPERTY);
+ createEAttribute(manyIntegerAttributePropertyEClass, MANY_INTEGER_ATTRIBUTE_PROPERTY__QUANTIFIER);
+ createEAttribute(manyIntegerAttributePropertyEClass, MANY_INTEGER_ATTRIBUTE_PROPERTY__VALUE);
+ createEAttribute(manyIntegerAttributePropertyEClass, MANY_INTEGER_ATTRIBUTE_PROPERTY__OPERATOR);
+
+ manyStringAttributePropertyEClass = createEClass(MANY_STRING_ATTRIBUTE_PROPERTY);
+ createEAttribute(manyStringAttributePropertyEClass, MANY_STRING_ATTRIBUTE_PROPERTY__QUANTIFIER);
+ createEAttribute(manyStringAttributePropertyEClass, MANY_STRING_ATTRIBUTE_PROPERTY__VALUE);
+ createEAttribute(manyStringAttributePropertyEClass, MANY_STRING_ATTRIBUTE_PROPERTY__OPERATOR);
+
+ booleanAttributePropertyEClass = createEClass(BOOLEAN_ATTRIBUTE_PROPERTY);
+ createEAttribute(booleanAttributePropertyEClass, BOOLEAN_ATTRIBUTE_PROPERTY__VALUE);
+ createEAttribute(booleanAttributePropertyEClass, BOOLEAN_ATTRIBUTE_PROPERTY__OPERATOR);
+
+ integerAttributePropertyEClass = createEClass(INTEGER_ATTRIBUTE_PROPERTY);
+ createEAttribute(integerAttributePropertyEClass, INTEGER_ATTRIBUTE_PROPERTY__VALUE);
+ createEAttribute(integerAttributePropertyEClass, INTEGER_ATTRIBUTE_PROPERTY__OPERATOR);
+
+ stringAttributePropertyEClass = createEClass(STRING_ATTRIBUTE_PROPERTY);
+ createEAttribute(stringAttributePropertyEClass, STRING_ATTRIBUTE_PROPERTY__VALUE);
+ createEAttribute(stringAttributePropertyEClass, STRING_ATTRIBUTE_PROPERTY__OPERATOR);
+
+ // Create enums
+ operatorEEnum = createEEnum(OPERATOR);
+ booleanOperatorEEnum = createEEnum(BOOLEAN_OPERATOR);
+ quantifierEEnum = createEEnum(QUANTIFIER);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ *
+ *
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+
+ // Create type parameters
+ ETypeParameter classPropertyEClass_T = addETypeParameter(classPropertyEClass, "T");
+ ETypeParameter binaryPropertyEClass_P = addETypeParameter(binaryPropertyEClass, "P");
+ ETypeParameter binaryPropertyEClass_T = addETypeParameter(binaryPropertyEClass, "T");
+ ETypeParameter manyReferencePropertyEClass_P = addETypeParameter(manyReferencePropertyEClass, "P");
+ ETypeParameter manyReferencePropertyEClass_T = addETypeParameter(manyReferencePropertyEClass, "T");
+ ETypeParameter singleReferencePropertyEClass_P = addETypeParameter(singleReferencePropertyEClass, "P");
+ ETypeParameter singleReferencePropertyEClass_T = addETypeParameter(singleReferencePropertyEClass, "T");
+ ETypeParameter containerReferencePropertyEClass_P = addETypeParameter(containerReferencePropertyEClass, "P");
+ ETypeParameter containerReferencePropertyEClass_T = addETypeParameter(containerReferencePropertyEClass, "T");
+ ETypeParameter manyBooleanAttributePropertyEClass_T = addETypeParameter(manyBooleanAttributePropertyEClass, "T");
+ ETypeParameter manyIntegerAttributePropertyEClass_T = addETypeParameter(manyIntegerAttributePropertyEClass, "T");
+ ETypeParameter manyStringAttributePropertyEClass_T = addETypeParameter(manyStringAttributePropertyEClass, "T");
+ ETypeParameter booleanAttributePropertyEClass_T = addETypeParameter(booleanAttributePropertyEClass, "T");
+ ETypeParameter integerAttributePropertyEClass_T = addETypeParameter(integerAttributePropertyEClass, "T");
+ ETypeParameter stringAttributePropertyEClass_T = addETypeParameter(stringAttributePropertyEClass, "T");
+
+ // Set bounds for type parameters
+ EGenericType g1 = createEGenericType(this.getClassProperty());
+ EGenericType g2 = createEGenericType();
+ g1.getETypeArguments().add(g2);
+ binaryPropertyEClass_P.getEBounds().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType();
+ g1.getETypeArguments().add(g2);
+ manyReferencePropertyEClass_P.getEBounds().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType();
+ g1.getETypeArguments().add(g2);
+ singleReferencePropertyEClass_P.getEBounds().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType();
+ g1.getETypeArguments().add(g2);
+ containerReferencePropertyEClass_P.getEBounds().add(g1);
+
+ // Add supertypes to classes
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType(binaryPropertyEClass_T);
+ g1.getETypeArguments().add(g2);
+ binaryPropertyEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType(manyReferencePropertyEClass_T);
+ g1.getETypeArguments().add(g2);
+ manyReferencePropertyEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType(singleReferencePropertyEClass_T);
+ g1.getETypeArguments().add(g2);
+ singleReferencePropertyEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType(containerReferencePropertyEClass_T);
+ g1.getETypeArguments().add(g2);
+ containerReferencePropertyEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType(manyBooleanAttributePropertyEClass_T);
+ g1.getETypeArguments().add(g2);
+ manyBooleanAttributePropertyEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType(manyIntegerAttributePropertyEClass_T);
+ g1.getETypeArguments().add(g2);
+ manyIntegerAttributePropertyEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType(manyStringAttributePropertyEClass_T);
+ g1.getETypeArguments().add(g2);
+ manyStringAttributePropertyEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType(booleanAttributePropertyEClass_T);
+ g1.getETypeArguments().add(g2);
+ booleanAttributePropertyEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType(integerAttributePropertyEClass_T);
+ g1.getETypeArguments().add(g2);
+ integerAttributePropertyEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getClassProperty());
+ g2 = createEGenericType(stringAttributePropertyEClass_T);
+ g1.getETypeArguments().add(g2);
+ stringAttributePropertyEClass.getEGenericSuperTypes().add(g1);
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(classPropertyEClass, ClassProperty.class, "ClassProperty", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ g1 = createEGenericType(classPropertyEClass_T);
+ initEReference(getClassProperty_Target(), g1, null, "target", null, 0, 1, ClassProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getClassProperty_Feature(), theEcorePackage.getEStructuralFeature(), null, "feature", null, 0, 1, ClassProperty.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ initEClass(binaryPropertyEClass, BinaryProperty.class, "BinaryProperty", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBinaryProperty_Operator(), this.getBooleanOperator(), "operator", null, 1, 1, BinaryProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ g1 = createEGenericType(binaryPropertyEClass_P);
+ initEReference(getBinaryProperty_Left(), g1, null, "left", null, 1, 1, BinaryProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ g1 = createEGenericType(binaryPropertyEClass_P);
+ initEReference(getBinaryProperty_Right(), g1, null, "right", null, 1, 1, BinaryProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(manyReferencePropertyEClass, ManyReferenceProperty.class, "ManyReferenceProperty", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ g1 = createEGenericType(manyReferencePropertyEClass_P);
+ initEReference(getManyReferenceProperty_Property(), g1, null, "property", null, 1, 1, ManyReferenceProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getManyReferenceProperty_Quantifier(), this.getQuantifier(), "quantifier", null, 0, 1, ManyReferenceProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(singleReferencePropertyEClass, SingleReferenceProperty.class, "SingleReferenceProperty", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ g1 = createEGenericType(singleReferencePropertyEClass_P);
+ initEReference(getSingleReferenceProperty_Property(), g1, null, "property", null, 0, 1, SingleReferenceProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(containerReferencePropertyEClass, ContainerReferenceProperty.class, "ContainerReferenceProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ g1 = createEGenericType(containerReferencePropertyEClass_P);
+ initEReference(getContainerReferenceProperty_Property(), g1, null, "property", null, 0, 1, ContainerReferenceProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(manyBooleanAttributePropertyEClass, ManyBooleanAttributeProperty.class, "ManyBooleanAttributeProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getManyBooleanAttributeProperty_Quantifier(), this.getQuantifier(), "quantifier", null, 0, 1, ManyBooleanAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getManyBooleanAttributeProperty_Value(), theEcorePackage.getEBoolean(), "value", null, 0, 1, ManyBooleanAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getManyBooleanAttributeProperty_Operator(), this.getOperator(), "operator", null, 0, 1, ManyBooleanAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(manyIntegerAttributePropertyEClass, ManyIntegerAttributeProperty.class, "ManyIntegerAttributeProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getManyIntegerAttributeProperty_Quantifier(), this.getQuantifier(), "quantifier", null, 0, 1, ManyIntegerAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getManyIntegerAttributeProperty_Value(), theEcorePackage.getEInt(), "value", null, 0, 1, ManyIntegerAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getManyIntegerAttributeProperty_Operator(), this.getOperator(), "operator", null, 0, 1, ManyIntegerAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(manyStringAttributePropertyEClass, ManyStringAttributeProperty.class, "ManyStringAttributeProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getManyStringAttributeProperty_Quantifier(), this.getQuantifier(), "quantifier", null, 0, 1, ManyStringAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getManyStringAttributeProperty_Value(), theEcorePackage.getEString(), "value", null, 0, 1, ManyStringAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getManyStringAttributeProperty_Operator(), this.getOperator(), "operator", null, 0, 1, ManyStringAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(booleanAttributePropertyEClass, BooleanAttributeProperty.class, "BooleanAttributeProperty", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBooleanAttributeProperty_Value(), theEcorePackage.getEBoolean(), "value", null, 0, 1, BooleanAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBooleanAttributeProperty_Operator(), this.getOperator(), "operator", null, 0, 1, BooleanAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(integerAttributePropertyEClass, IntegerAttributeProperty.class, "IntegerAttributeProperty", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIntegerAttributeProperty_Value(), theEcorePackage.getEInt(), "value", null, 0, 1, IntegerAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getIntegerAttributeProperty_Operator(), this.getOperator(), "operator", null, 0, 1, IntegerAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stringAttributePropertyEClass, StringAttributeProperty.class, "StringAttributeProperty", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStringAttributeProperty_Value(), theEcorePackage.getEString(), "value", null, 0, 1, StringAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStringAttributeProperty_Operator(), this.getOperator(), "operator", null, 0, 1, StringAttributeProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(operatorEEnum, Operator.class, "Operator");
+ addEEnumLiteral(operatorEEnum, Operator.EQUAL);
+
+ initEEnum(booleanOperatorEEnum, BooleanOperator.class, "BooleanOperator");
+ addEEnumLiteral(booleanOperatorEEnum, BooleanOperator.AND);
+ addEEnumLiteral(booleanOperatorEEnum, BooleanOperator.OR);
+ addEEnumLiteral(booleanOperatorEEnum, BooleanOperator.IMPLIES);
+
+ initEEnum(quantifierEEnum, Quantifier.class, "Quantifier");
+ addEEnumLiteral(quantifierEEnum, Quantifier.EXISTS);
+ addEEnumLiteral(quantifierEEnum, Quantifier.FORALL);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //PropertyPackageImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/SingleReferencePropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/SingleReferencePropertyImpl.java
new file mode 100644
index 000000000..a1c80211b
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/SingleReferencePropertyImpl.java
@@ -0,0 +1,187 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.ClassProperty;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+import fr.inria.diverse.event.commons.model.property.SingleReferenceProperty;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'Single Reference Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.SingleReferencePropertyImpl#getProperty Property}
+ *
+ *
+ * @generated
+ */
+public abstract class SingleReferencePropertyImpl, T> extends ClassPropertyImpl implements SingleReferenceProperty {
+ /**
+ * The cached value of the '{@link #getProperty() Property}' containment reference.
+ *
+ *
+ * @see #getProperty()
+ * @generated
+ * @ordered
+ */
+ protected P property;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected SingleReferencePropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.SINGLE_REFERENCE_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setTarget(T newTarget) {
+ super.setTarget(newTarget);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public P getProperty() {
+ return property;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetProperty(P newProperty, NotificationChain msgs) {
+ P oldProperty = property;
+ property = newProperty;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PropertyPackage.SINGLE_REFERENCE_PROPERTY__PROPERTY, oldProperty, newProperty);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setProperty(P newProperty) {
+ if (newProperty != property) {
+ NotificationChain msgs = null;
+ if (property != null)
+ msgs = ((InternalEObject)property).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PropertyPackage.SINGLE_REFERENCE_PROPERTY__PROPERTY, null, msgs);
+ if (newProperty != null)
+ msgs = ((InternalEObject)newProperty).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PropertyPackage.SINGLE_REFERENCE_PROPERTY__PROPERTY, null, msgs);
+ msgs = basicSetProperty(newProperty, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.SINGLE_REFERENCE_PROPERTY__PROPERTY, newProperty, newProperty));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PropertyPackage.SINGLE_REFERENCE_PROPERTY__PROPERTY:
+ return basicSetProperty(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.SINGLE_REFERENCE_PROPERTY__PROPERTY:
+ return getProperty();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.SINGLE_REFERENCE_PROPERTY__PROPERTY:
+ setProperty((P)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.SINGLE_REFERENCE_PROPERTY__PROPERTY:
+ setProperty((P)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.SINGLE_REFERENCE_PROPERTY__PROPERTY:
+ return property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SingleReferencePropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/StringAttributePropertyImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/StringAttributePropertyImpl.java
new file mode 100644
index 000000000..8a4de2749
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/impl/StringAttributePropertyImpl.java
@@ -0,0 +1,228 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.impl;
+
+import fr.inria.diverse.event.commons.model.property.Operator;
+import fr.inria.diverse.event.commons.model.property.PropertyPackage;
+import fr.inria.diverse.event.commons.model.property.StringAttributeProperty;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ *
+ * An implementation of the model object 'String Attribute Property'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.StringAttributePropertyImpl#getValue Value}
+ * - {@link fr.inria.diverse.event.commons.model.property.impl.StringAttributePropertyImpl#getOperator Operator}
+ *
+ *
+ * @generated
+ */
+public abstract class StringAttributePropertyImpl extends ClassPropertyImpl implements StringAttributeProperty {
+ /**
+ * The default value of the '{@link #getValue() Value}' attribute.
+ *
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() Value}' attribute.
+ *
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final Operator OPERATOR_EDEFAULT = Operator.EQUAL;
+
+ /**
+ * The cached value of the '{@link #getOperator() Operator}' attribute.
+ *
+ *
+ * @see #getOperator()
+ * @generated
+ * @ordered
+ */
+ protected Operator operator = OPERATOR_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected StringAttributePropertyImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PropertyPackage.Literals.STRING_ATTRIBUTE_PROPERTY;
+ }
+
+ /**
+ *
+ *
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setTarget(T newTarget) {
+ super.setTarget(newTarget);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.STRING_ATTRIBUTE_PROPERTY__VALUE, oldValue, value));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Operator getOperator() {
+ return operator;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setOperator(Operator newOperator) {
+ Operator oldOperator = operator;
+ operator = newOperator == null ? OPERATOR_EDEFAULT : newOperator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PropertyPackage.STRING_ATTRIBUTE_PROPERTY__OPERATOR, oldOperator, operator));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PropertyPackage.STRING_ATTRIBUTE_PROPERTY__VALUE:
+ return getValue();
+ case PropertyPackage.STRING_ATTRIBUTE_PROPERTY__OPERATOR:
+ return getOperator();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PropertyPackage.STRING_ATTRIBUTE_PROPERTY__VALUE:
+ setValue((String)newValue);
+ return;
+ case PropertyPackage.STRING_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator((Operator)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.STRING_ATTRIBUTE_PROPERTY__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case PropertyPackage.STRING_ATTRIBUTE_PROPERTY__OPERATOR:
+ setOperator(OPERATOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PropertyPackage.STRING_ATTRIBUTE_PROPERTY__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case PropertyPackage.STRING_ATTRIBUTE_PROPERTY__OPERATOR:
+ return operator != OPERATOR_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(", operator: ");
+ result.append(operator);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StringAttributePropertyImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/util/PropertyAdapterFactory.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/util/PropertyAdapterFactory.java
new file mode 100644
index 000000000..8f34511f6
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/util/PropertyAdapterFactory.java
@@ -0,0 +1,300 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.util;
+
+import fr.inria.diverse.event.commons.model.property.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ *
+ * The Adapter Factory for the model.
+ * It provides an adapter createXXX method for each class of the model.
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage
+ * @generated
+ */
+public class PropertyAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ *
+ *
+ * @generated
+ */
+ protected static PropertyPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ *
+ *
+ * @generated
+ */
+ public PropertyAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = PropertyPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ *
+ * This implementation returns true if the object is either the model's package or is an instance object of the model.
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the createXXX methods.
+ *
+ *
+ * @generated
+ */
+ protected PropertySwitch modelSwitch =
+ new PropertySwitch() {
+ @Override
+ public Adapter caseClassProperty(ClassProperty object) {
+ return createClassPropertyAdapter();
+ }
+ @Override
+ public , T> Adapter caseBinaryProperty(BinaryProperty
object) {
+ return createBinaryPropertyAdapter();
+ }
+ @Override
+ public
, T> Adapter caseManyReferenceProperty(ManyReferenceProperty
object) {
+ return createManyReferencePropertyAdapter();
+ }
+ @Override
+ public
, T> Adapter caseSingleReferenceProperty(SingleReferenceProperty
object) {
+ return createSingleReferencePropertyAdapter();
+ }
+ @Override
+ public
, T> Adapter caseContainerReferenceProperty(ContainerReferenceProperty
object) {
+ return createContainerReferencePropertyAdapter();
+ }
+ @Override
+ public Adapter caseManyBooleanAttributeProperty(ManyBooleanAttributeProperty object) {
+ return createManyBooleanAttributePropertyAdapter();
+ }
+ @Override
+ public Adapter caseManyIntegerAttributeProperty(ManyIntegerAttributeProperty object) {
+ return createManyIntegerAttributePropertyAdapter();
+ }
+ @Override
+ public Adapter caseManyStringAttributeProperty(ManyStringAttributeProperty object) {
+ return createManyStringAttributePropertyAdapter();
+ }
+ @Override
+ public Adapter caseBooleanAttributeProperty(BooleanAttributeProperty object) {
+ return createBooleanAttributePropertyAdapter();
+ }
+ @Override
+ public Adapter caseIntegerAttributeProperty(IntegerAttributeProperty object) {
+ return createIntegerAttributePropertyAdapter();
+ }
+ @Override
+ public Adapter caseStringAttributeProperty(StringAttributeProperty object) {
+ return createStringAttributePropertyAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the target.
+ *
+ *
+ * @param target the object to adapt.
+ * @return the adapter for the target.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.ClassProperty Class Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.ClassProperty
+ * @generated
+ */
+ public Adapter createClassPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.BinaryProperty Binary Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.BinaryProperty
+ * @generated
+ */
+ public Adapter createBinaryPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.ManyReferenceProperty Many Reference Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.ManyReferenceProperty
+ * @generated
+ */
+ public Adapter createManyReferencePropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.SingleReferenceProperty Single Reference Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.SingleReferenceProperty
+ * @generated
+ */
+ public Adapter createSingleReferencePropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.ContainerReferenceProperty Container Reference Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.ContainerReferenceProperty
+ * @generated
+ */
+ public Adapter createContainerReferencePropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty Many Boolean Attribute Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.ManyBooleanAttributeProperty
+ * @generated
+ */
+ public Adapter createManyBooleanAttributePropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty Many Integer Attribute Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.ManyIntegerAttributeProperty
+ * @generated
+ */
+ public Adapter createManyIntegerAttributePropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty Many String Attribute Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.ManyStringAttributeProperty
+ * @generated
+ */
+ public Adapter createManyStringAttributePropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty Boolean Attribute Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.BooleanAttributeProperty
+ * @generated
+ */
+ public Adapter createBooleanAttributePropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty Integer Attribute Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.IntegerAttributeProperty
+ * @generated
+ */
+ public Adapter createIntegerAttributePropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.inria.diverse.event.commons.model.property.StringAttributeProperty String Attribute Property}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.inria.diverse.event.commons.model.property.StringAttributeProperty
+ * @generated
+ */
+ public Adapter createStringAttributePropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ *
+ * This default implementation returns null.
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //PropertyAdapterFactory
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/util/PropertySwitch.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/util/PropertySwitch.java
new file mode 100644
index 000000000..aeda1bbd1
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/property/util/PropertySwitch.java
@@ -0,0 +1,330 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.property.util;
+
+import fr.inria.diverse.event.commons.model.property.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ *
+ * The Switch for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the caseXXX method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ *
+ * @see fr.inria.diverse.event.commons.model.property.PropertyPackage
+ * @generated
+ */
+public class PropertySwitch extends Switch {
+ /**
+ * The cached model package
+ *
+ *
+ * @generated
+ */
+ protected static PropertyPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ *
+ *
+ * @generated
+ */
+ public PropertySwitch() {
+ if (modelPackage == null) {
+ modelPackage = PropertyPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ *
+ *
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls caseXXX for each class of the model until one returns a non null result; it yields that result.
+ *
+ *
+ * @return the first non-null result returned by a caseXXX call.
+ * @generated
+ */
+ @Override
+ protected T1 doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case PropertyPackage.CLASS_PROPERTY: {
+ ClassProperty> classProperty = (ClassProperty>)theEObject;
+ T1 result = caseClassProperty(classProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PropertyPackage.BINARY_PROPERTY: {
+ BinaryProperty, ?> binaryProperty = (BinaryProperty, ?>)theEObject;
+ T1 result = caseBinaryProperty(binaryProperty);
+ if (result == null) result = caseClassProperty(binaryProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PropertyPackage.MANY_REFERENCE_PROPERTY: {
+ ManyReferenceProperty, ?> manyReferenceProperty = (ManyReferenceProperty, ?>)theEObject;
+ T1 result = caseManyReferenceProperty(manyReferenceProperty);
+ if (result == null) result = caseClassProperty(manyReferenceProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PropertyPackage.SINGLE_REFERENCE_PROPERTY: {
+ SingleReferenceProperty, ?> singleReferenceProperty = (SingleReferenceProperty, ?>)theEObject;
+ T1 result = caseSingleReferenceProperty(singleReferenceProperty);
+ if (result == null) result = caseClassProperty(singleReferenceProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PropertyPackage.CONTAINER_REFERENCE_PROPERTY: {
+ ContainerReferenceProperty, ?> containerReferenceProperty = (ContainerReferenceProperty, ?>)theEObject;
+ T1 result = caseContainerReferenceProperty(containerReferenceProperty);
+ if (result == null) result = caseClassProperty(containerReferenceProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PropertyPackage.MANY_BOOLEAN_ATTRIBUTE_PROPERTY: {
+ ManyBooleanAttributeProperty> manyBooleanAttributeProperty = (ManyBooleanAttributeProperty>)theEObject;
+ T1 result = caseManyBooleanAttributeProperty(manyBooleanAttributeProperty);
+ if (result == null) result = caseClassProperty(manyBooleanAttributeProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PropertyPackage.MANY_INTEGER_ATTRIBUTE_PROPERTY: {
+ ManyIntegerAttributeProperty> manyIntegerAttributeProperty = (ManyIntegerAttributeProperty>)theEObject;
+ T1 result = caseManyIntegerAttributeProperty(manyIntegerAttributeProperty);
+ if (result == null) result = caseClassProperty(manyIntegerAttributeProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PropertyPackage.MANY_STRING_ATTRIBUTE_PROPERTY: {
+ ManyStringAttributeProperty> manyStringAttributeProperty = (ManyStringAttributeProperty>)theEObject;
+ T1 result = caseManyStringAttributeProperty(manyStringAttributeProperty);
+ if (result == null) result = caseClassProperty(manyStringAttributeProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PropertyPackage.BOOLEAN_ATTRIBUTE_PROPERTY: {
+ BooleanAttributeProperty> booleanAttributeProperty = (BooleanAttributeProperty>)theEObject;
+ T1 result = caseBooleanAttributeProperty(booleanAttributeProperty);
+ if (result == null) result = caseClassProperty(booleanAttributeProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PropertyPackage.INTEGER_ATTRIBUTE_PROPERTY: {
+ IntegerAttributeProperty> integerAttributeProperty = (IntegerAttributeProperty>)theEObject;
+ T1 result = caseIntegerAttributeProperty(integerAttributeProperty);
+ if (result == null) result = caseClassProperty(integerAttributeProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PropertyPackage.STRING_ATTRIBUTE_PROPERTY: {
+ StringAttributeProperty> stringAttributeProperty = (StringAttributeProperty>)theEObject;
+ T1 result = caseStringAttributeProperty(stringAttributeProperty);
+ if (result == null) result = caseClassProperty(stringAttributeProperty);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Class Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Class Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseClassProperty(ClassProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Binary Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Binary Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public , T> T1 caseBinaryProperty(BinaryProperty
object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Many Reference Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Many Reference Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public
, T> T1 caseManyReferenceProperty(ManyReferenceProperty
object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Single Reference Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Single Reference Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public
, T> T1 caseSingleReferenceProperty(SingleReferenceProperty
object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Container Reference Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Container Reference Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public
, T> T1 caseContainerReferenceProperty(ContainerReferenceProperty
object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Many Boolean Attribute Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Many Boolean Attribute Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseManyBooleanAttributeProperty(ManyBooleanAttributeProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Many Integer Attribute Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Many Integer Attribute Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseManyIntegerAttributeProperty(ManyIntegerAttributeProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Many String Attribute Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Many String Attribute Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseManyStringAttributeProperty(ManyStringAttributeProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Boolean Attribute Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Boolean Attribute Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseBooleanAttributeProperty(BooleanAttributeProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Integer Attribute Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Integer Attribute Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseIntegerAttributeProperty(IntegerAttributeProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'String Attribute Property'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'String Attribute Property'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseStringAttributeProperty(StringAttributeProperty object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'EObject'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'EObject'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T1 defaultCase(EObject object) {
+ return null;
+ }
+
+} //PropertySwitch
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/Report.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/Report.java
new file mode 100644
index 000000000..3b2ea97c0
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/Report.java
@@ -0,0 +1,41 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.report;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ *
+ * A representation of the model object 'Report'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.report.Report#getStages Stages}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.report.ReportPackage#getReport()
+ * @model
+ * @generated
+ */
+public interface Report extends EObject {
+ /**
+ * Returns the value of the 'Stages' containment reference list.
+ * The list contents are of type {@link fr.inria.diverse.event.commons.model.report.StageReport}.
+ *
+ *
+ * If the meaning of the 'Stages' containment reference isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Stages' containment reference list.
+ * @see fr.inria.diverse.event.commons.model.report.ReportPackage#getReport_Stages()
+ * @model containment="true"
+ * @generated
+ */
+ EList getStages();
+
+} // Report
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/ReportFactory.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/ReportFactory.java
new file mode 100644
index 000000000..f06bdee2d
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/ReportFactory.java
@@ -0,0 +1,51 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.report;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ *
+ * The Factory for the model.
+ * It provides a create method for each non-abstract class of the model.
+ *
+ * @see fr.inria.diverse.event.commons.model.report.ReportPackage
+ * @generated
+ */
+public interface ReportFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ *
+ *
+ * @generated
+ */
+ ReportFactory eINSTANCE = fr.inria.diverse.event.commons.model.report.impl.ReportFactoryImpl.init();
+
+ /**
+ * Returns a new object of class 'Report'.
+ *
+ *
+ * @return a new object of class 'Report'.
+ * @generated
+ */
+ Report createReport();
+
+ /**
+ * Returns a new object of class 'Stage Report'.
+ *
+ *
+ * @return a new object of class 'Stage Report'.
+ * @generated
+ */
+ StageReport createStageReport();
+
+ /**
+ * Returns the package supported by this factory.
+ *
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ReportPackage getReportPackage();
+
+} //ReportFactory
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/ReportPackage.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/ReportPackage.java
new file mode 100644
index 000000000..4638e65d1
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/ReportPackage.java
@@ -0,0 +1,264 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.report;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ *
+ * The Package for the model.
+ * It contains accessors for the meta objects to represent
+ *
+ * - each class,
+ * - each feature of each class,
+ * - each operation of each class,
+ * - each enum,
+ * - and each data type
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.report.ReportFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ReportPackage extends EPackage {
+ /**
+ * The package name.
+ *
+ *
+ * @generated
+ */
+ String eNAME = "report";
+
+ /**
+ * The package namespace URI.
+ *
+ *
+ * @generated
+ */
+ String eNS_URI = "http://www.gemoc.org/report";
+
+ /**
+ * The package namespace name.
+ *
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "report";
+
+ /**
+ * The singleton instance of the package.
+ *
+ *
+ * @generated
+ */
+ ReportPackage eINSTANCE = fr.inria.diverse.event.commons.model.report.impl.ReportPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.report.impl.ReportImpl Report}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.report.impl.ReportImpl
+ * @see fr.inria.diverse.event.commons.model.report.impl.ReportPackageImpl#getReport()
+ * @generated
+ */
+ int REPORT = 0;
+
+ /**
+ * The feature id for the 'Stages' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REPORT__STAGES = 0;
+
+ /**
+ * The number of structural features of the 'Report' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REPORT_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the 'Report' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REPORT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link fr.inria.diverse.event.commons.model.report.impl.StageReportImpl Stage Report}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.report.impl.StageReportImpl
+ * @see fr.inria.diverse.event.commons.model.report.impl.ReportPackageImpl#getStageReport()
+ * @generated
+ */
+ int STAGE_REPORT = 1;
+
+ /**
+ * The feature id for the 'Stage' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STAGE_REPORT__STAGE = 0;
+
+ /**
+ * The feature id for the 'Matches' reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STAGE_REPORT__MATCHES = 1;
+
+ /**
+ * The number of structural features of the 'Stage Report' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STAGE_REPORT_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the 'Stage Report' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STAGE_REPORT_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.report.Report Report}'.
+ *
+ *
+ * @return the meta object for class 'Report'.
+ * @see fr.inria.diverse.event.commons.model.report.Report
+ * @generated
+ */
+ EClass getReport();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link fr.inria.diverse.event.commons.model.report.Report#getStages Stages}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Stages'.
+ * @see fr.inria.diverse.event.commons.model.report.Report#getStages()
+ * @see #getReport()
+ * @generated
+ */
+ EReference getReport_Stages();
+
+ /**
+ * Returns the meta object for class '{@link fr.inria.diverse.event.commons.model.report.StageReport Stage Report}'.
+ *
+ *
+ * @return the meta object for class 'Stage Report'.
+ * @see fr.inria.diverse.event.commons.model.report.StageReport
+ * @generated
+ */
+ EClass getStageReport();
+
+ /**
+ * Returns the meta object for the reference '{@link fr.inria.diverse.event.commons.model.report.StageReport#getStage Stage}'.
+ *
+ *
+ * @return the meta object for the reference 'Stage'.
+ * @see fr.inria.diverse.event.commons.model.report.StageReport#getStage()
+ * @see #getStageReport()
+ * @generated
+ */
+ EReference getStageReport_Stage();
+
+ /**
+ * Returns the meta object for the reference list '{@link fr.inria.diverse.event.commons.model.report.StageReport#getMatches Matches}'.
+ *
+ *
+ * @return the meta object for the reference list 'Matches'.
+ * @see fr.inria.diverse.event.commons.model.report.StageReport#getMatches()
+ * @see #getStageReport()
+ * @generated
+ */
+ EReference getStageReport_Matches();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ *
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ReportFactory getReportFactory();
+
+ /**
+ *
+ * Defines literals for the meta objects that represent
+ *
+ * - each class,
+ * - each feature of each class,
+ * - each operation of each class,
+ * - each enum,
+ * - and each data type
+ *
+ *
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.report.impl.ReportImpl Report}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.report.impl.ReportImpl
+ * @see fr.inria.diverse.event.commons.model.report.impl.ReportPackageImpl#getReport()
+ * @generated
+ */
+ EClass REPORT = eINSTANCE.getReport();
+
+ /**
+ * The meta object literal for the 'Stages' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference REPORT__STAGES = eINSTANCE.getReport_Stages();
+
+ /**
+ * The meta object literal for the '{@link fr.inria.diverse.event.commons.model.report.impl.StageReportImpl Stage Report}' class.
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.report.impl.StageReportImpl
+ * @see fr.inria.diverse.event.commons.model.report.impl.ReportPackageImpl#getStageReport()
+ * @generated
+ */
+ EClass STAGE_REPORT = eINSTANCE.getStageReport();
+
+ /**
+ * The meta object literal for the 'Stage' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference STAGE_REPORT__STAGE = eINSTANCE.getStageReport_Stage();
+
+ /**
+ * The meta object literal for the 'Matches' reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference STAGE_REPORT__MATCHES = eINSTANCE.getStageReport_Matches();
+
+ }
+
+} //ReportPackage
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/StageReport.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/StageReport.java
new file mode 100644
index 000000000..aa0196ec0
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/StageReport.java
@@ -0,0 +1,71 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.report;
+
+import fr.inria.diverse.event.commons.model.scenario.Stage;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ *
+ * A representation of the model object 'Stage Report'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.report.StageReport#getStage Stage}
+ * - {@link fr.inria.diverse.event.commons.model.report.StageReport#getMatches Matches}
+ *
+ *
+ * @see fr.inria.diverse.event.commons.model.report.ReportPackage#getStageReport()
+ * @model
+ * @generated
+ */
+public interface StageReport extends EObject {
+ /**
+ * Returns the value of the 'Stage' reference.
+ *
+ *
+ * If the meaning of the 'Stage' reference isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Stage' reference.
+ * @see #setStage(Stage)
+ * @see fr.inria.diverse.event.commons.model.report.ReportPackage#getStageReport_Stage()
+ * @model
+ * @generated
+ */
+ Stage, ?> getStage();
+
+ /**
+ * Sets the value of the '{@link fr.inria.diverse.event.commons.model.report.StageReport#getStage Stage}' reference.
+ *
+ *
+ * @param value the new value of the 'Stage' reference.
+ * @see #getStage()
+ * @generated
+ */
+ void setStage(Stage, ?> value);
+
+ /**
+ * Returns the value of the 'Matches' reference list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.EObject}.
+ *
+ *
+ * If the meaning of the 'Matches' reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ *
+ * @return the value of the 'Matches' reference list.
+ * @see fr.inria.diverse.event.commons.model.report.ReportPackage#getStageReport_Matches()
+ * @model
+ * @generated
+ */
+ EList getMatches();
+
+} // StageReport
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/impl/ReportFactoryImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/impl/ReportFactoryImpl.java
new file mode 100644
index 000000000..5a90500fc
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/impl/ReportFactoryImpl.java
@@ -0,0 +1,106 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.report.impl;
+
+import fr.inria.diverse.event.commons.model.report.*;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ *
+ * An implementation of the model Factory.
+ *
+ * @generated
+ */
+public class ReportFactoryImpl extends EFactoryImpl implements ReportFactory {
+ /**
+ * Creates the default factory implementation.
+ *
+ *
+ * @generated
+ */
+ public static ReportFactory init() {
+ try {
+ ReportFactory theReportFactory = (ReportFactory)EPackage.Registry.INSTANCE.getEFactory(ReportPackage.eNS_URI);
+ if (theReportFactory != null) {
+ return theReportFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ReportFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ *
+ *
+ * @generated
+ */
+ public ReportFactoryImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ReportPackage.REPORT: return createReport();
+ case ReportPackage.STAGE_REPORT: return createStageReport();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Report createReport() {
+ ReportImpl report = new ReportImpl();
+ return report;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public StageReport createStageReport() {
+ StageReportImpl stageReport = new StageReportImpl();
+ return stageReport;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public ReportPackage getReportPackage() {
+ return (ReportPackage)getEPackage();
+ }
+
+ /**
+ *
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ReportPackage getPackage() {
+ return ReportPackage.eINSTANCE;
+ }
+
+} //ReportFactoryImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/impl/ReportImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/impl/ReportImpl.java
new file mode 100644
index 000000000..3c8b61d18
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/impl/ReportImpl.java
@@ -0,0 +1,148 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.report.impl;
+
+import fr.inria.diverse.event.commons.model.report.Report;
+import fr.inria.diverse.event.commons.model.report.ReportPackage;
+import fr.inria.diverse.event.commons.model.report.StageReport;
+
+import java.util.Collection;
+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;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ *
+ * An implementation of the model object 'Report'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.inria.diverse.event.commons.model.report.impl.ReportImpl#getStages Stages}
+ *
+ *
+ * @generated
+ */
+public class ReportImpl extends MinimalEObjectImpl.Container implements Report {
+ /**
+ * The cached value of the '{@link #getStages() Stages}' containment reference list.
+ *
+ *
+ * @see #getStages()
+ * @generated
+ * @ordered
+ */
+ protected EList stages;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ReportImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ReportPackage.Literals.REPORT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EList getStages() {
+ if (stages == null) {
+ stages = new EObjectContainmentEList(StageReport.class, this, ReportPackage.REPORT__STAGES);
+ }
+ return stages;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ReportPackage.REPORT__STAGES:
+ return ((InternalEList>)getStages()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ReportPackage.REPORT__STAGES:
+ return getStages();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ReportPackage.REPORT__STAGES:
+ getStages().clear();
+ getStages().addAll((Collection extends StageReport>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ReportPackage.REPORT__STAGES:
+ getStages().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ReportPackage.REPORT__STAGES:
+ return stages != null && !stages.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ReportImpl
diff --git a/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/impl/ReportPackageImpl.java b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/impl/ReportPackageImpl.java
new file mode 100644
index 000000000..e51e60b3a
--- /dev/null
+++ b/framework/execution_framework/plugins/fr.inria.diverse.event.commons.model/src/fr/inria/diverse/event/commons/model/report/impl/ReportPackageImpl.java
@@ -0,0 +1,233 @@
+/**
+ */
+package fr.inria.diverse.event.commons.model.report.impl;
+
+import fr.inria.diverse.event.commons.model.report.Report;
+import fr.inria.diverse.event.commons.model.report.ReportFactory;
+import fr.inria.diverse.event.commons.model.report.ReportPackage;
+import fr.inria.diverse.event.commons.model.report.StageReport;
+
+import fr.inria.diverse.event.commons.model.scenario.ScenarioPackage;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ *
+ * An implementation of the model Package.
+ *
+ * @generated
+ */
+public class ReportPackageImpl extends EPackageImpl implements ReportPackage {
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass reportEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass stageReportEClass = null;
+
+ /**
+ * Creates an instance of the model Package, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ *
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see fr.inria.diverse.event.commons.model.report.ReportPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ReportPackageImpl() {
+ super(eNS_URI, ReportFactory.eINSTANCE);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the