add generated code
Code generation does not work when building headless. See
https://bugs.eclipse.org/bugs/show_bug.cgi?id=487683
Signed-off-by: Hans-Erik Floryd <hans-erik.floryd@rt-labs.com>
diff --git a/.gitignore b/.gitignore
index 97fe0a1..c7cdd03 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,3 @@
/.DS_Store
-**/xtend-gen
-**/src-gen
**/bin
**/target
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapper.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapper.java
new file mode 100644
index 0000000..4c8093e
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapper.java
@@ -0,0 +1,104 @@
+/**
+ */
+package org.eclipse.capra.GenericArtifactMetaModel;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Artifact Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getUri <em>Uri</em>}</li>
+ * <li>{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getArtifactHandler <em>Artifact Handler</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapper()
+ * @model
+ * @generated
+ */
+public interface ArtifactWrapper extends EObject {
+ /**
+ * Returns the value of the '<em><b>Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Uri</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Uri</em>' attribute.
+ * @see #setUri(String)
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapper_Uri()
+ * @model unique="false"
+ * @generated
+ */
+ String getUri();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getUri <em>Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Uri</em>' attribute.
+ * @see #getUri()
+ * @generated
+ */
+ void setUri(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapper_Name()
+ * @model unique="false"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Artifact Handler</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Artifact Handler</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Artifact Handler</em>' attribute.
+ * @see #setArtifactHandler(String)
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapper_ArtifactHandler()
+ * @model unique="false"
+ * @generated
+ */
+ String getArtifactHandler();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getArtifactHandler <em>Artifact Handler</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Artifact Handler</em>' attribute.
+ * @see #getArtifactHandler()
+ * @generated
+ */
+ void setArtifactHandler(String value);
+
+} // ArtifactWrapper
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapperContainer.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapperContainer.java
new file mode 100644
index 0000000..cbc37fa
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/ArtifactWrapperContainer.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.capra.GenericArtifactMetaModel;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Artifact Wrapper Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer#getArtifacts <em>Artifacts</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapperContainer()
+ * @model
+ * @generated
+ */
+public interface ArtifactWrapperContainer extends EObject {
+ /**
+ * Returns the value of the '<em><b>Artifacts</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Artifacts</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Artifacts</em>' containment reference list.
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#getArtifactWrapperContainer_Artifacts()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ArtifactWrapper> getArtifacts();
+
+} // ArtifactWrapperContainer
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelFactory.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelFactory.java
new file mode 100644
index 0000000..59b5ae5
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelFactory.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.capra.GenericArtifactMetaModel;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage
+ * @generated
+ */
+public interface GenericArtifactMetaModelFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ GenericArtifactMetaModelFactory eINSTANCE = org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Artifact Wrapper Container</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Artifact Wrapper Container</em>'.
+ * @generated
+ */
+ ArtifactWrapperContainer createArtifactWrapperContainer();
+
+ /**
+ * Returns a new object of class '<em>Artifact Wrapper</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Artifact Wrapper</em>'.
+ * @generated
+ */
+ ArtifactWrapper createArtifactWrapper();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ GenericArtifactMetaModelPackage getGenericArtifactMetaModelPackage();
+
+} //GenericArtifactMetaModelFactory
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelPackage.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelPackage.java
new file mode 100644
index 0000000..b365c6c
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/GenericArtifactMetaModelPackage.java
@@ -0,0 +1,294 @@
+/**
+ */
+package org.eclipse.capra.GenericArtifactMetaModel;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelFactory
+ * @model kind="package"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel basePackage='org.eclipse.capra'"
+ * @generated
+ */
+public interface GenericArtifactMetaModelPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "GenericArtifactMetaModel";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "org.eclipse.capra.GenericArtifactMetaModel";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "GenericArtifactMetaModel";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ GenericArtifactMetaModelPackage eINSTANCE = org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperContainerImpl <em>Artifact Wrapper Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperContainerImpl
+ * @see org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelPackageImpl#getArtifactWrapperContainer()
+ * @generated
+ */
+ int ARTIFACT_WRAPPER_CONTAINER = 0;
+
+ /**
+ * The feature id for the '<em><b>Artifacts</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS = 0;
+
+ /**
+ * The number of structural features of the '<em>Artifact Wrapper Container</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARTIFACT_WRAPPER_CONTAINER_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Artifact Wrapper Container</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARTIFACT_WRAPPER_CONTAINER_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl <em>Artifact Wrapper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl
+ * @see org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelPackageImpl#getArtifactWrapper()
+ * @generated
+ */
+ int ARTIFACT_WRAPPER = 1;
+
+ /**
+ * The feature id for the '<em><b>Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARTIFACT_WRAPPER__URI = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARTIFACT_WRAPPER__NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Artifact Handler</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARTIFACT_WRAPPER__ARTIFACT_HANDLER = 2;
+
+ /**
+ * The number of structural features of the '<em>Artifact Wrapper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARTIFACT_WRAPPER_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the '<em>Artifact Wrapper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARTIFACT_WRAPPER_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer <em>Artifact Wrapper Container</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Artifact Wrapper Container</em>'.
+ * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer
+ * @generated
+ */
+ EClass getArtifactWrapperContainer();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer#getArtifacts <em>Artifacts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Artifacts</em>'.
+ * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer#getArtifacts()
+ * @see #getArtifactWrapperContainer()
+ * @generated
+ */
+ EReference getArtifactWrapperContainer_Artifacts();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper <em>Artifact Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Artifact Wrapper</em>'.
+ * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper
+ * @generated
+ */
+ EClass getArtifactWrapper();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getUri <em>Uri</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Uri</em>'.
+ * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getUri()
+ * @see #getArtifactWrapper()
+ * @generated
+ */
+ EAttribute getArtifactWrapper_Uri();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getName()
+ * @see #getArtifactWrapper()
+ * @generated
+ */
+ EAttribute getArtifactWrapper_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getArtifactHandler <em>Artifact Handler</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Artifact Handler</em>'.
+ * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper#getArtifactHandler()
+ * @see #getArtifactWrapper()
+ * @generated
+ */
+ EAttribute getArtifactWrapper_ArtifactHandler();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ GenericArtifactMetaModelFactory getGenericArtifactMetaModelFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperContainerImpl <em>Artifact Wrapper Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperContainerImpl
+ * @see org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelPackageImpl#getArtifactWrapperContainer()
+ * @generated
+ */
+ EClass ARTIFACT_WRAPPER_CONTAINER = eINSTANCE.getArtifactWrapperContainer();
+
+ /**
+ * The meta object literal for the '<em><b>Artifacts</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS = eINSTANCE.getArtifactWrapperContainer_Artifacts();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl <em>Artifact Wrapper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl
+ * @see org.eclipse.capra.GenericArtifactMetaModel.impl.GenericArtifactMetaModelPackageImpl#getArtifactWrapper()
+ * @generated
+ */
+ EClass ARTIFACT_WRAPPER = eINSTANCE.getArtifactWrapper();
+
+ /**
+ * The meta object literal for the '<em><b>Uri</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ARTIFACT_WRAPPER__URI = eINSTANCE.getArtifactWrapper_Uri();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ARTIFACT_WRAPPER__NAME = eINSTANCE.getArtifactWrapper_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Artifact Handler</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ARTIFACT_WRAPPER__ARTIFACT_HANDLER = eINSTANCE.getArtifactWrapper_ArtifactHandler();
+
+ }
+
+} //GenericArtifactMetaModelPackage
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperContainerImpl.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperContainerImpl.java
new file mode 100644
index 0000000..ed19b87
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperContainerImpl.java
@@ -0,0 +1,152 @@
+/**
+ */
+package org.eclipse.capra.GenericArtifactMetaModel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
+import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
+import org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Artifact Wrapper Container</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperContainerImpl#getArtifacts <em>Artifacts</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ArtifactWrapperContainerImpl extends MinimalEObjectImpl.Container implements ArtifactWrapperContainer {
+ /**
+ * The cached value of the '{@link #getArtifacts() <em>Artifacts</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getArtifacts()
+ * @generated
+ * @ordered
+ */
+ protected EList<ArtifactWrapper> artifacts;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArtifactWrapperContainerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GenericArtifactMetaModelPackage.Literals.ARTIFACT_WRAPPER_CONTAINER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ArtifactWrapper> getArtifacts() {
+ if (artifacts == null) {
+ artifacts = new EObjectContainmentEList<ArtifactWrapper>(ArtifactWrapper.class, this, GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS);
+ }
+ return artifacts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
+ return ((InternalEList<?>)getArtifacts()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
+ return getArtifacts();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
+ getArtifacts().clear();
+ getArtifacts().addAll((Collection<? extends ArtifactWrapper>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
+ getArtifacts().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS:
+ return artifacts != null && !artifacts.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArtifactWrapperContainerImpl
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperImpl.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperImpl.java
new file mode 100644
index 0000000..fc12178
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/ArtifactWrapperImpl.java
@@ -0,0 +1,271 @@
+/**
+ */
+package org.eclipse.capra.GenericArtifactMetaModel.impl;
+
+import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
+import org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Artifact Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl#getUri <em>Uri</em>}</li>
+ * <li>{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.capra.GenericArtifactMetaModel.impl.ArtifactWrapperImpl#getArtifactHandler <em>Artifact Handler</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ArtifactWrapperImpl extends MinimalEObjectImpl.Container implements ArtifactWrapper {
+ /**
+ * The default value of the '{@link #getUri() <em>Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUri()
+ * @generated
+ * @ordered
+ */
+ protected static final String URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUri() <em>Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUri()
+ * @generated
+ * @ordered
+ */
+ protected String uri = URI_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getArtifactHandler() <em>Artifact Handler</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getArtifactHandler()
+ * @generated
+ * @ordered
+ */
+ protected static final String ARTIFACT_HANDLER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getArtifactHandler() <em>Artifact Handler</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getArtifactHandler()
+ * @generated
+ * @ordered
+ */
+ protected String artifactHandler = ARTIFACT_HANDLER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArtifactWrapperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GenericArtifactMetaModelPackage.Literals.ARTIFACT_WRAPPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUri() {
+ return uri;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUri(String newUri) {
+ String oldUri = uri;
+ uri = newUri;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__URI, oldUri, uri));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getArtifactHandler() {
+ return artifactHandler;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setArtifactHandler(String newArtifactHandler) {
+ String oldArtifactHandler = artifactHandler;
+ artifactHandler = newArtifactHandler;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER, oldArtifactHandler, artifactHandler));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__URI:
+ return getUri();
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__NAME:
+ return getName();
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
+ return getArtifactHandler();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__URI:
+ setUri((String)newValue);
+ return;
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__NAME:
+ setName((String)newValue);
+ return;
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
+ setArtifactHandler((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__URI:
+ setUri(URI_EDEFAULT);
+ return;
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
+ setArtifactHandler(ARTIFACT_HANDLER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__URI:
+ return URI_EDEFAULT == null ? uri != null : !URI_EDEFAULT.equals(uri);
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER__ARTIFACT_HANDLER:
+ return ARTIFACT_HANDLER_EDEFAULT == null ? artifactHandler != null : !ARTIFACT_HANDLER_EDEFAULT.equals(artifactHandler);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (uri: ");
+ result.append(uri);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", ArtifactHandler: ");
+ result.append(artifactHandler);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ArtifactWrapperImpl
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelFactoryImpl.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelFactoryImpl.java
new file mode 100644
index 0000000..9f11027
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelFactoryImpl.java
@@ -0,0 +1,106 @@
+/**
+ */
+package org.eclipse.capra.GenericArtifactMetaModel.impl;
+
+import org.eclipse.capra.GenericArtifactMetaModel.*;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GenericArtifactMetaModelFactoryImpl extends EFactoryImpl implements GenericArtifactMetaModelFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenericArtifactMetaModelFactory init() {
+ try {
+ GenericArtifactMetaModelFactory theGenericArtifactMetaModelFactory = (GenericArtifactMetaModelFactory)EPackage.Registry.INSTANCE.getEFactory(GenericArtifactMetaModelPackage.eNS_URI);
+ if (theGenericArtifactMetaModelFactory != null) {
+ return theGenericArtifactMetaModelFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new GenericArtifactMetaModelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericArtifactMetaModelFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER: return createArtifactWrapperContainer();
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER: return createArtifactWrapper();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArtifactWrapperContainer createArtifactWrapperContainer() {
+ ArtifactWrapperContainerImpl artifactWrapperContainer = new ArtifactWrapperContainerImpl();
+ return artifactWrapperContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArtifactWrapper createArtifactWrapper() {
+ ArtifactWrapperImpl artifactWrapper = new ArtifactWrapperImpl();
+ return artifactWrapper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericArtifactMetaModelPackage getGenericArtifactMetaModelPackage() {
+ return (GenericArtifactMetaModelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static GenericArtifactMetaModelPackage getPackage() {
+ return GenericArtifactMetaModelPackage.eINSTANCE;
+ }
+
+} //GenericArtifactMetaModelFactoryImpl
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelPackageImpl.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelPackageImpl.java
new file mode 100644
index 0000000..34d5e6d
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/impl/GenericArtifactMetaModelPackageImpl.java
@@ -0,0 +1,239 @@
+/**
+ */
+package org.eclipse.capra.GenericArtifactMetaModel.impl;
+
+import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper;
+import org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer;
+import org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelFactory;
+import org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GenericArtifactMetaModelPackageImpl extends EPackageImpl implements GenericArtifactMetaModelPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass artifactWrapperContainerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass artifactWrapperEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>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.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private GenericArtifactMetaModelPackageImpl() {
+ super(eNS_URI, GenericArtifactMetaModelFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link GenericArtifactMetaModelPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static GenericArtifactMetaModelPackage init() {
+ if (isInited) return (GenericArtifactMetaModelPackage)EPackage.Registry.INSTANCE.getEPackage(GenericArtifactMetaModelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ GenericArtifactMetaModelPackageImpl theGenericArtifactMetaModelPackage = (GenericArtifactMetaModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof GenericArtifactMetaModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new GenericArtifactMetaModelPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theGenericArtifactMetaModelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theGenericArtifactMetaModelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theGenericArtifactMetaModelPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(GenericArtifactMetaModelPackage.eNS_URI, theGenericArtifactMetaModelPackage);
+ return theGenericArtifactMetaModelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArtifactWrapperContainer() {
+ return artifactWrapperContainerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArtifactWrapperContainer_Artifacts() {
+ return (EReference)artifactWrapperContainerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArtifactWrapper() {
+ return artifactWrapperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getArtifactWrapper_Uri() {
+ return (EAttribute)artifactWrapperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getArtifactWrapper_Name() {
+ return (EAttribute)artifactWrapperEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getArtifactWrapper_ArtifactHandler() {
+ return (EAttribute)artifactWrapperEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericArtifactMetaModelFactory getGenericArtifactMetaModelFactory() {
+ return (GenericArtifactMetaModelFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ artifactWrapperContainerEClass = createEClass(ARTIFACT_WRAPPER_CONTAINER);
+ createEReference(artifactWrapperContainerEClass, ARTIFACT_WRAPPER_CONTAINER__ARTIFACTS);
+
+ artifactWrapperEClass = createEClass(ARTIFACT_WRAPPER);
+ createEAttribute(artifactWrapperEClass, ARTIFACT_WRAPPER__URI);
+ createEAttribute(artifactWrapperEClass, ARTIFACT_WRAPPER__NAME);
+ createEAttribute(artifactWrapperEClass, ARTIFACT_WRAPPER__ARTIFACT_HANDLER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(artifactWrapperContainerEClass, ArtifactWrapperContainer.class, "ArtifactWrapperContainer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getArtifactWrapperContainer_Artifacts(), this.getArtifactWrapper(), null, "artifacts", null, 0, -1, ArtifactWrapperContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(artifactWrapperEClass, ArtifactWrapper.class, "ArtifactWrapper", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getArtifactWrapper_Uri(), theEcorePackage.getEString(), "uri", null, 0, 1, ArtifactWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getArtifactWrapper_Name(), theEcorePackage.getEString(), "name", null, 0, 1, ArtifactWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getArtifactWrapper_ArtifactHandler(), theEcorePackage.getEString(), "ArtifactHandler", null, 0, 1, ArtifactWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //GenericArtifactMetaModelPackageImpl
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelAdapterFactory.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelAdapterFactory.java
new file mode 100644
index 0000000..d867048
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelAdapterFactory.java
@@ -0,0 +1,138 @@
+/**
+ */
+package org.eclipse.capra.GenericArtifactMetaModel.util;
+
+import org.eclipse.capra.GenericArtifactMetaModel.*;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage
+ * @generated
+ */
+public class GenericArtifactMetaModelAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static GenericArtifactMetaModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericArtifactMetaModelAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = GenericArtifactMetaModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @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 <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenericArtifactMetaModelSwitch<Adapter> modelSwitch =
+ new GenericArtifactMetaModelSwitch<Adapter>() {
+ @Override
+ public Adapter caseArtifactWrapperContainer(ArtifactWrapperContainer object) {
+ return createArtifactWrapperContainerAdapter();
+ }
+ @Override
+ public Adapter caseArtifactWrapper(ArtifactWrapper object) {
+ return createArtifactWrapperAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer <em>Artifact Wrapper Container</em>}'.
+ * <!-- begin-user-doc -->
+ * 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.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapperContainer
+ * @generated
+ */
+ public Adapter createArtifactWrapperContainerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper <em>Artifact Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * 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.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.capra.GenericArtifactMetaModel.ArtifactWrapper
+ * @generated
+ */
+ public Adapter createArtifactWrapperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //GenericArtifactMetaModelAdapterFactory
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelSwitch.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelSwitch.java
new file mode 100644
index 0000000..46279cb
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericArtifactMetaModel/util/GenericArtifactMetaModelSwitch.java
@@ -0,0 +1,131 @@
+/**
+ */
+package org.eclipse.capra.GenericArtifactMetaModel.util;
+
+import org.eclipse.capra.GenericArtifactMetaModel.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> 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.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericArtifactMetaModel.GenericArtifactMetaModelPackage
+ * @generated
+ */
+public class GenericArtifactMetaModelSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static GenericArtifactMetaModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericArtifactMetaModelSwitch() {
+ if (modelPackage == null) {
+ modelPackage = GenericArtifactMetaModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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 <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER_CONTAINER: {
+ ArtifactWrapperContainer artifactWrapperContainer = (ArtifactWrapperContainer)theEObject;
+ T result = caseArtifactWrapperContainer(artifactWrapperContainer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GenericArtifactMetaModelPackage.ARTIFACT_WRAPPER: {
+ ArtifactWrapper artifactWrapper = (ArtifactWrapper)theEObject;
+ T result = caseArtifactWrapper(artifactWrapper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Artifact Wrapper Container</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Artifact Wrapper Container</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArtifactWrapperContainer(ArtifactWrapperContainer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Artifact Wrapper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Artifact Wrapper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArtifactWrapper(ArtifactWrapper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //GenericArtifactMetaModelSwitch
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/GenericTraceMetaModelFactory.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/GenericTraceMetaModelFactory.java
new file mode 100644
index 0000000..b0ec180
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/GenericTraceMetaModelFactory.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.capra.GenericTraceMetaModel;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage
+ * @generated
+ */
+public interface GenericTraceMetaModelFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ GenericTraceMetaModelFactory eINSTANCE = org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceMetaModelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Generic Trace Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Generic Trace Model</em>'.
+ * @generated
+ */
+ GenericTraceModel createGenericTraceModel();
+
+ /**
+ * Returns a new object of class '<em>Related To</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Related To</em>'.
+ * @generated
+ */
+ RelatedTo createRelatedTo();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ GenericTraceMetaModelPackage getGenericTraceMetaModelPackage();
+
+} //GenericTraceMetaModelFactory
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/GenericTraceMetaModelPackage.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/GenericTraceMetaModelPackage.java
new file mode 100644
index 0000000..e2926e5
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/GenericTraceMetaModelPackage.java
@@ -0,0 +1,237 @@
+/**
+ */
+package org.eclipse.capra.GenericTraceMetaModel;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelFactory
+ * @model kind="package"
+ * annotation="http://www.eclipse.org/emf/2002/GenModel basePackage='org.eclipse.capra'"
+ * @generated
+ */
+public interface GenericTraceMetaModelPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "GenericTraceMetaModel";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "org.eclipse.capra.GenericTraceMetaModel";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "GenericTraceMetaModel";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ GenericTraceMetaModelPackage eINSTANCE = org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceMetaModelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceModelImpl <em>Generic Trace Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceModelImpl
+ * @see org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceMetaModelPackageImpl#getGenericTraceModel()
+ * @generated
+ */
+ int GENERIC_TRACE_MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Traces</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_TRACE_MODEL__TRACES = 0;
+
+ /**
+ * The number of structural features of the '<em>Generic Trace Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_TRACE_MODEL_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Generic Trace Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_TRACE_MODEL_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.capra.GenericTraceMetaModel.impl.RelatedToImpl <em>Related To</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericTraceMetaModel.impl.RelatedToImpl
+ * @see org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceMetaModelPackageImpl#getRelatedTo()
+ * @generated
+ */
+ int RELATED_TO = 1;
+
+ /**
+ * The feature id for the '<em><b>Item</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATED_TO__ITEM = 0;
+
+ /**
+ * The number of structural features of the '<em>Related To</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATED_TO_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Related To</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATED_TO_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel <em>Generic Trace Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Generic Trace Model</em>'.
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel
+ * @generated
+ */
+ EClass getGenericTraceModel();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel#getTraces <em>Traces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Traces</em>'.
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel#getTraces()
+ * @see #getGenericTraceModel()
+ * @generated
+ */
+ EReference getGenericTraceModel_Traces();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.capra.GenericTraceMetaModel.RelatedTo <em>Related To</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Related To</em>'.
+ * @see org.eclipse.capra.GenericTraceMetaModel.RelatedTo
+ * @generated
+ */
+ EClass getRelatedTo();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.capra.GenericTraceMetaModel.RelatedTo#getItem <em>Item</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Item</em>'.
+ * @see org.eclipse.capra.GenericTraceMetaModel.RelatedTo#getItem()
+ * @see #getRelatedTo()
+ * @generated
+ */
+ EReference getRelatedTo_Item();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ GenericTraceMetaModelFactory getGenericTraceMetaModelFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceModelImpl <em>Generic Trace Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceModelImpl
+ * @see org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceMetaModelPackageImpl#getGenericTraceModel()
+ * @generated
+ */
+ EClass GENERIC_TRACE_MODEL = eINSTANCE.getGenericTraceModel();
+
+ /**
+ * The meta object literal for the '<em><b>Traces</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GENERIC_TRACE_MODEL__TRACES = eINSTANCE.getGenericTraceModel_Traces();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.capra.GenericTraceMetaModel.impl.RelatedToImpl <em>Related To</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericTraceMetaModel.impl.RelatedToImpl
+ * @see org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceMetaModelPackageImpl#getRelatedTo()
+ * @generated
+ */
+ EClass RELATED_TO = eINSTANCE.getRelatedTo();
+
+ /**
+ * The meta object literal for the '<em><b>Item</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RELATED_TO__ITEM = eINSTANCE.getRelatedTo_Item();
+
+ }
+
+} //GenericTraceMetaModelPackage
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/GenericTraceModel.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/GenericTraceModel.java
new file mode 100644
index 0000000..1ceb8ab
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/GenericTraceModel.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.capra.GenericTraceMetaModel;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generic Trace Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel#getTraces <em>Traces</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage#getGenericTraceModel()
+ * @model
+ * @generated
+ */
+public interface GenericTraceModel extends EObject {
+ /**
+ * Returns the value of the '<em><b>Traces</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.capra.GenericTraceMetaModel.RelatedTo}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Traces</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Traces</em>' containment reference list.
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage#getGenericTraceModel_Traces()
+ * @model containment="true"
+ * @generated
+ */
+ EList<RelatedTo> getTraces();
+
+} // GenericTraceModel
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/RelatedTo.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/RelatedTo.java
new file mode 100644
index 0000000..23d8c2a
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/RelatedTo.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.capra.GenericTraceMetaModel;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Related To</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.capra.GenericTraceMetaModel.RelatedTo#getItem <em>Item</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage#getRelatedTo()
+ * @model
+ * @generated
+ */
+public interface RelatedTo extends EObject {
+ /**
+ * Returns the value of the '<em><b>Item</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.EObject}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Item</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Item</em>' reference list.
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage#getRelatedTo_Item()
+ * @model
+ * @generated
+ */
+ EList<EObject> getItem();
+
+} // RelatedTo
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/GenericTraceMetaModelFactoryImpl.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/GenericTraceMetaModelFactoryImpl.java
new file mode 100644
index 0000000..1a7c01e
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/GenericTraceMetaModelFactoryImpl.java
@@ -0,0 +1,106 @@
+/**
+ */
+package org.eclipse.capra.GenericTraceMetaModel.impl;
+
+import org.eclipse.capra.GenericTraceMetaModel.*;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GenericTraceMetaModelFactoryImpl extends EFactoryImpl implements GenericTraceMetaModelFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenericTraceMetaModelFactory init() {
+ try {
+ GenericTraceMetaModelFactory theGenericTraceMetaModelFactory = (GenericTraceMetaModelFactory)EPackage.Registry.INSTANCE.getEFactory(GenericTraceMetaModelPackage.eNS_URI);
+ if (theGenericTraceMetaModelFactory != null) {
+ return theGenericTraceMetaModelFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new GenericTraceMetaModelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericTraceMetaModelFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case GenericTraceMetaModelPackage.GENERIC_TRACE_MODEL: return createGenericTraceModel();
+ case GenericTraceMetaModelPackage.RELATED_TO: return createRelatedTo();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericTraceModel createGenericTraceModel() {
+ GenericTraceModelImpl genericTraceModel = new GenericTraceModelImpl();
+ return genericTraceModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RelatedTo createRelatedTo() {
+ RelatedToImpl relatedTo = new RelatedToImpl();
+ return relatedTo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericTraceMetaModelPackage getGenericTraceMetaModelPackage() {
+ return (GenericTraceMetaModelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static GenericTraceMetaModelPackage getPackage() {
+ return GenericTraceMetaModelPackage.eINSTANCE;
+ }
+
+} //GenericTraceMetaModelFactoryImpl
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/GenericTraceMetaModelPackageImpl.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/GenericTraceMetaModelPackageImpl.java
new file mode 100644
index 0000000..b1c09a7
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/GenericTraceMetaModelPackageImpl.java
@@ -0,0 +1,216 @@
+/**
+ */
+package org.eclipse.capra.GenericTraceMetaModel.impl;
+
+import org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelFactory;
+import org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage;
+import org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel;
+import org.eclipse.capra.GenericTraceMetaModel.RelatedTo;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GenericTraceMetaModelPackageImpl extends EPackageImpl implements GenericTraceMetaModelPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genericTraceModelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass relatedToEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>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.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private GenericTraceMetaModelPackageImpl() {
+ super(eNS_URI, GenericTraceMetaModelFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link GenericTraceMetaModelPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static GenericTraceMetaModelPackage init() {
+ if (isInited) return (GenericTraceMetaModelPackage)EPackage.Registry.INSTANCE.getEPackage(GenericTraceMetaModelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ GenericTraceMetaModelPackageImpl theGenericTraceMetaModelPackage = (GenericTraceMetaModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof GenericTraceMetaModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new GenericTraceMetaModelPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theGenericTraceMetaModelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theGenericTraceMetaModelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theGenericTraceMetaModelPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(GenericTraceMetaModelPackage.eNS_URI, theGenericTraceMetaModelPackage);
+ return theGenericTraceMetaModelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenericTraceModel() {
+ return genericTraceModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenericTraceModel_Traces() {
+ return (EReference)genericTraceModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRelatedTo() {
+ return relatedToEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRelatedTo_Item() {
+ return (EReference)relatedToEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericTraceMetaModelFactory getGenericTraceMetaModelFactory() {
+ return (GenericTraceMetaModelFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ genericTraceModelEClass = createEClass(GENERIC_TRACE_MODEL);
+ createEReference(genericTraceModelEClass, GENERIC_TRACE_MODEL__TRACES);
+
+ relatedToEClass = createEClass(RELATED_TO);
+ createEReference(relatedToEClass, RELATED_TO__ITEM);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(genericTraceModelEClass, GenericTraceModel.class, "GenericTraceModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getGenericTraceModel_Traces(), this.getRelatedTo(), null, "traces", null, 0, -1, GenericTraceModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(relatedToEClass, RelatedTo.class, "RelatedTo", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRelatedTo_Item(), theEcorePackage.getEObject(), null, "item", null, 0, -1, RelatedTo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //GenericTraceMetaModelPackageImpl
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/GenericTraceModelImpl.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/GenericTraceModelImpl.java
new file mode 100644
index 0000000..a4a0695
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/GenericTraceModelImpl.java
@@ -0,0 +1,152 @@
+/**
+ */
+package org.eclipse.capra.GenericTraceMetaModel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage;
+import org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel;
+import org.eclipse.capra.GenericTraceMetaModel.RelatedTo;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generic Trace Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.capra.GenericTraceMetaModel.impl.GenericTraceModelImpl#getTraces <em>Traces</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GenericTraceModelImpl extends MinimalEObjectImpl.Container implements GenericTraceModel {
+ /**
+ * The cached value of the '{@link #getTraces() <em>Traces</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTraces()
+ * @generated
+ * @ordered
+ */
+ protected EList<RelatedTo> traces;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenericTraceModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GenericTraceMetaModelPackage.Literals.GENERIC_TRACE_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<RelatedTo> getTraces() {
+ if (traces == null) {
+ traces = new EObjectContainmentEList<RelatedTo>(RelatedTo.class, this, GenericTraceMetaModelPackage.GENERIC_TRACE_MODEL__TRACES);
+ }
+ return traces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case GenericTraceMetaModelPackage.GENERIC_TRACE_MODEL__TRACES:
+ return ((InternalEList<?>)getTraces()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GenericTraceMetaModelPackage.GENERIC_TRACE_MODEL__TRACES:
+ return getTraces();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GenericTraceMetaModelPackage.GENERIC_TRACE_MODEL__TRACES:
+ getTraces().clear();
+ getTraces().addAll((Collection<? extends RelatedTo>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GenericTraceMetaModelPackage.GENERIC_TRACE_MODEL__TRACES:
+ getTraces().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GenericTraceMetaModelPackage.GENERIC_TRACE_MODEL__TRACES:
+ return traces != null && !traces.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //GenericTraceModelImpl
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/RelatedToImpl.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/RelatedToImpl.java
new file mode 100644
index 0000000..7fe9987
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/impl/RelatedToImpl.java
@@ -0,0 +1,134 @@
+/**
+ */
+package org.eclipse.capra.GenericTraceMetaModel.impl;
+
+import java.util.Collection;
+
+import org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage;
+import org.eclipse.capra.GenericTraceMetaModel.RelatedTo;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Related To</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.capra.GenericTraceMetaModel.impl.RelatedToImpl#getItem <em>Item</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RelatedToImpl extends MinimalEObjectImpl.Container implements RelatedTo {
+ /**
+ * The cached value of the '{@link #getItem() <em>Item</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getItem()
+ * @generated
+ * @ordered
+ */
+ protected EList<EObject> item;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RelatedToImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GenericTraceMetaModelPackage.Literals.RELATED_TO;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EObject> getItem() {
+ if (item == null) {
+ item = new EObjectResolvingEList<EObject>(EObject.class, this, GenericTraceMetaModelPackage.RELATED_TO__ITEM);
+ }
+ return item;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GenericTraceMetaModelPackage.RELATED_TO__ITEM:
+ return getItem();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GenericTraceMetaModelPackage.RELATED_TO__ITEM:
+ getItem().clear();
+ getItem().addAll((Collection<? extends EObject>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GenericTraceMetaModelPackage.RELATED_TO__ITEM:
+ getItem().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GenericTraceMetaModelPackage.RELATED_TO__ITEM:
+ return item != null && !item.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //RelatedToImpl
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/util/GenericTraceMetaModelAdapterFactory.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/util/GenericTraceMetaModelAdapterFactory.java
new file mode 100644
index 0000000..9545325
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/util/GenericTraceMetaModelAdapterFactory.java
@@ -0,0 +1,138 @@
+/**
+ */
+package org.eclipse.capra.GenericTraceMetaModel.util;
+
+import org.eclipse.capra.GenericTraceMetaModel.*;
+
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage
+ * @generated
+ */
+public class GenericTraceMetaModelAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static GenericTraceMetaModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericTraceMetaModelAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = GenericTraceMetaModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @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 <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenericTraceMetaModelSwitch<Adapter> modelSwitch =
+ new GenericTraceMetaModelSwitch<Adapter>() {
+ @Override
+ public Adapter caseGenericTraceModel(GenericTraceModel object) {
+ return createGenericTraceModelAdapter();
+ }
+ @Override
+ public Adapter caseRelatedTo(RelatedTo object) {
+ return createRelatedToAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel <em>Generic Trace Model</em>}'.
+ * <!-- begin-user-doc -->
+ * 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.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceModel
+ * @generated
+ */
+ public Adapter createGenericTraceModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.capra.GenericTraceMetaModel.RelatedTo <em>Related To</em>}'.
+ * <!-- begin-user-doc -->
+ * 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.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.capra.GenericTraceMetaModel.RelatedTo
+ * @generated
+ */
+ public Adapter createRelatedToAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //GenericTraceMetaModelAdapterFactory
diff --git a/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/util/GenericTraceMetaModelSwitch.java b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/util/GenericTraceMetaModelSwitch.java
new file mode 100644
index 0000000..8546fe7
--- /dev/null
+++ b/org.eclipse.capra.generic.tracemodels/src-gen/org/eclipse/capra/GenericTraceMetaModel/util/GenericTraceMetaModelSwitch.java
@@ -0,0 +1,131 @@
+/**
+ */
+package org.eclipse.capra.GenericTraceMetaModel.util;
+
+import org.eclipse.capra.GenericTraceMetaModel.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> 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.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.capra.GenericTraceMetaModel.GenericTraceMetaModelPackage
+ * @generated
+ */
+public class GenericTraceMetaModelSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static GenericTraceMetaModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericTraceMetaModelSwitch() {
+ if (modelPackage == null) {
+ modelPackage = GenericTraceMetaModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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 <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case GenericTraceMetaModelPackage.GENERIC_TRACE_MODEL: {
+ GenericTraceModel genericTraceModel = (GenericTraceModel)theEObject;
+ T result = caseGenericTraceModel(genericTraceModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case GenericTraceMetaModelPackage.RELATED_TO: {
+ RelatedTo relatedTo = (RelatedTo)theEObject;
+ T result = caseRelatedTo(relatedTo);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Generic Trace Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Generic Trace Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenericTraceModel(GenericTraceModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Related To</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Related To</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRelatedTo(RelatedTo object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //GenericTraceMetaModelSwitch
diff --git a/org.eclipse.capra.ui.plantuml/xtend-gen/org/eclipse/capra/ui/plantuml/.VisualizationHelper.xtendbin b/org.eclipse.capra.ui.plantuml/xtend-gen/org/eclipse/capra/ui/plantuml/.VisualizationHelper.xtendbin
new file mode 100644
index 0000000..bb33b88
--- /dev/null
+++ b/org.eclipse.capra.ui.plantuml/xtend-gen/org/eclipse/capra/ui/plantuml/.VisualizationHelper.xtendbin
Binary files differ
diff --git a/org.eclipse.capra.ui.plantuml/xtend-gen/org/eclipse/capra/ui/plantuml/.gitignore b/org.eclipse.capra.ui.plantuml/xtend-gen/org/eclipse/capra/ui/plantuml/.gitignore
new file mode 100644
index 0000000..6b4eb14
--- /dev/null
+++ b/org.eclipse.capra.ui.plantuml/xtend-gen/org/eclipse/capra/ui/plantuml/.gitignore
@@ -0,0 +1 @@
+/.VisualizationHelper.java._trace
diff --git a/org.eclipse.capra.ui.plantuml/xtend-gen/org/eclipse/capra/ui/plantuml/VisualizationHelper.java b/org.eclipse.capra.ui.plantuml/xtend-gen/org/eclipse/capra/ui/plantuml/VisualizationHelper.java
new file mode 100644
index 0000000..5f05224
--- /dev/null
+++ b/org.eclipse.capra.ui.plantuml/xtend-gen/org/eclipse/capra/ui/plantuml/VisualizationHelper.java
@@ -0,0 +1,116 @@
+package org.eclipse.capra.ui.plantuml;
+
+import com.google.common.base.Objects;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+import org.eclipse.capra.core.adapters.Connection;
+import org.eclipse.capra.core.adapters.TraceMetaModelAdapter;
+import org.eclipse.capra.core.helpers.ExtensionPointHelper;
+import org.eclipse.capra.ui.helpers.EMFHelper;
+import org.eclipse.capra.ui.plantuml.Connections;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@SuppressWarnings("all")
+public class VisualizationHelper {
+ public static String createMatrix(final EObject traceModel, final Collection<EObject> firstElements, final Collection<EObject> secondElements) {
+ String _xblockexpression = null;
+ {
+ Optional<TraceMetaModelAdapter> _traceMetamodelAdapter = ExtensionPointHelper.getTraceMetamodelAdapter();
+ final TraceMetaModelAdapter traceAdapter = _traceMetamodelAdapter.get();
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("@startuml");
+ _builder.newLine();
+ _builder.append("salt");
+ _builder.newLine();
+ _builder.append("{#");
+ _builder.newLine();
+ {
+ boolean _notEquals = (!Objects.equal(firstElements, null));
+ if (_notEquals) {
+ _builder.append(".");
+ {
+ for(final EObject e : secondElements) {
+ _builder.append("|");
+ String _identifier = EMFHelper.getIdentifier(e);
+ _builder.append(_identifier, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ {
+ for(final EObject first : firstElements) {
+ String _identifier_1 = EMFHelper.getIdentifier(first);
+ _builder.append(_identifier_1, "");
+ _builder.append(" ");
+ {
+ for(final EObject second : secondElements) {
+ _builder.append("|");
+ {
+ boolean _isThereATraceBetween = traceAdapter.isThereATraceBetween(first, second, traceModel);
+ if (_isThereATraceBetween) {
+ _builder.append("X");
+ } else {
+ _builder.append(".");
+ }
+ }
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ } else {
+ _builder.append("Choose two containers to show a traceability matrix of their contents.");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("@enduml");
+ _builder.newLine();
+ _xblockexpression = _builder.toString();
+ }
+ return _xblockexpression;
+ }
+
+ public static String createNeighboursView(final List<Connection> connections, final EObject selectedObject) {
+ String _xblockexpression = null;
+ {
+ Connections helper = new Connections(connections, selectedObject);
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("@startuml");
+ _builder.newLine();
+ _builder.append("object \"");
+ String _originLabel = helper.originLabel();
+ _builder.append(_originLabel, "");
+ _builder.append("\" as ");
+ String _originId = helper.originId();
+ _builder.append(_originId, "");
+ _builder.append(" #pink");
+ _builder.newLineIfNotEmpty();
+ {
+ Collection<String> _objectIdsWithoutOrigin = helper.objectIdsWithoutOrigin();
+ for(final String id : _objectIdsWithoutOrigin) {
+ _builder.append("object \"");
+ String _label = helper.label(id);
+ _builder.append(_label, "");
+ _builder.append("\" as ");
+ _builder.append(id, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ List<String> _arrows = helper.arrows();
+ for(final String a : _arrows) {
+ _builder.append(a, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("@enduml");
+ _builder.newLine();
+ _xblockexpression = _builder.toString();
+ }
+ return _xblockexpression;
+ }
+}