Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorashatalin2006-07-10 18:05:59 +0000
committerashatalin2006-07-10 18:05:59 +0000
commit3708072049ff7fd3d4a07d05a11ada9a8db75cd5 (patch)
treed4e323f801e6c56afea49380106cabcb2116b132 /plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal
parent147ff40bc08bdeda3279f645a40c6bd70bf9952c (diff)
downloadorg.eclipse.gmf-tooling-3708072049ff7fd3d4a07d05a11ada9a8db75cd5.tar.gz
org.eclipse.gmf-tooling-3708072049ff7fd3d4a07d05a11ada9a8db75cd5.tar.xz
org.eclipse.gmf-tooling-3708072049ff7fd3d4a07d05a11ada9a8db75cd5.zip
#148651 Plugin bridge.trace uses wrong namespace
Diffstat (limited to 'plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal')
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/AbstractTrace.java82
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenChildNodeTrace.java21
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenCompartmentTrace.java30
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenLinkLabelTrace.java30
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenLinkTrace.java54
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenNodeLabelTrace.java30
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenNodeTrace.java71
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GmfTracePlugin.java38
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/MatchingTrace.java97
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/MergingIdentifierDispenser.java319
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/ToolGroupTrace.java30
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TraceFactory.java109
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TraceModel.java129
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TracePackage.java1073
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/AbstractTraceImpl.java212
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenChildNodeTraceImpl.java41
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenCompartmentTraceImpl.java58
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenLinkLabelTraceImpl.java58
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenLinkTraceImpl.java181
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenNodeLabelTraceImpl.java58
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenNodeTraceImpl.java217
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/MatchingTraceImpl.java260
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/ToolGroupTraceImpl.java60
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TraceFactoryImpl.java183
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TraceModelImpl.java366
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TracePackageImpl.java551
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/util/TraceAdapterFactory.java273
-rw-r--r--plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/util/TraceSwitch.java335
28 files changed, 4966 insertions, 0 deletions
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/AbstractTrace.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/AbstractTrace.java
new file mode 100644
index 000000000..40e60685a
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/AbstractTrace.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Abstract Trace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.AbstractTrace#getVisualID <em>Visual ID</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.AbstractTrace#isProcessed <em>Processed</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getAbstractTrace()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AbstractTrace extends EObject {
+ /**
+ * Returns the value of the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Visual ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Visual ID</em>' attribute.
+ * @see #setVisualID(int)
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getAbstractTrace_VisualID()
+ * @model id="true"
+ * @generated
+ */
+ int getVisualID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.internal.bridge.trace.AbstractTrace#getVisualID <em>Visual ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Visual ID</em>' attribute.
+ * @see #getVisualID()
+ * @generated
+ */
+ void setVisualID(int value);
+
+ /**
+ * Returns the value of the '<em><b>Processed</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Processed</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Processed</em>' attribute.
+ * @see #setProcessed(boolean)
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getAbstractTrace_Processed()
+ * @model default="false" transient="true"
+ * @generated
+ */
+ boolean isProcessed();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.internal.bridge.trace.AbstractTrace#isProcessed <em>Processed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Processed</em>' attribute.
+ * @see #isProcessed()
+ * @generated
+ */
+ void setProcessed(boolean value);
+
+} // AbstractTrace \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenChildNodeTrace.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenChildNodeTrace.java
new file mode 100644
index 000000000..c67ee1183
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenChildNodeTrace.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Child Node Trace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getGenChildNodeTrace()
+ * @model
+ * @generated
+ */
+public interface GenChildNodeTrace extends GenNodeTrace {
+} // GenChildNodeTrace \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenCompartmentTrace.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenCompartmentTrace.java
new file mode 100644
index 000000000..180f1e928
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenCompartmentTrace.java
@@ -0,0 +1,30 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Compartment Trace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getGenCompartmentTrace()
+ * @model
+ * @generated
+ */
+public interface GenCompartmentTrace extends MatchingTrace {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setContext(GenCompartment genCompartment);
+
+} // GenCompartmentTrace \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenLinkLabelTrace.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenLinkLabelTrace.java
new file mode 100644
index 000000000..b37721321
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenLinkLabelTrace.java
@@ -0,0 +1,30 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Link Label Trace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getGenLinkLabelTrace()
+ * @model
+ * @generated
+ */
+public interface GenLinkLabelTrace extends MatchingTrace {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setContext(GenLinkLabel genLinkLabel);
+
+} // GenLinkLabelTrace \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenLinkTrace.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenLinkTrace.java
new file mode 100644
index 000000000..66a504f4e
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenLinkTrace.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Link Trace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.GenLinkTrace#getLinkLabelTraces <em>Link Label Traces</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getGenLinkTrace()
+ * @model
+ * @generated
+ */
+public interface GenLinkTrace extends MatchingTrace {
+ /**
+ * Returns the value of the '<em><b>Link Label Traces</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.gmf.internal.bridge.trace.GenLinkLabelTrace}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Link Label 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>Link Label Traces</em>' containment reference list.
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getGenLinkTrace_LinkLabelTraces()
+ * @model type="org.eclipse.gmf.internal.bridge.trace.GenLinkLabelTrace" containment="true"
+ * @generated
+ */
+ EList getLinkLabelTraces();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setContext(GenLink genLink);
+
+} // GenLinkTrace \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenNodeLabelTrace.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenNodeLabelTrace.java
new file mode 100644
index 000000000..cd20f11df
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenNodeLabelTrace.java
@@ -0,0 +1,30 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Node Label Trace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getGenNodeLabelTrace()
+ * @model
+ * @generated
+ */
+public interface GenNodeLabelTrace extends MatchingTrace {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setContext(GenNodeLabel genNodeLabel);
+
+} // GenNodeLabelTrace \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenNodeTrace.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenNodeTrace.java
new file mode 100644
index 000000000..828640bd2
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GenNodeTrace.java
@@ -0,0 +1,71 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Node Trace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.GenNodeTrace#getNodeLabelTraces <em>Node Label Traces</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.GenNodeTrace#getCompartmentTraces <em>Compartment Traces</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getGenNodeTrace()
+ * @model
+ * @generated
+ */
+public interface GenNodeTrace extends MatchingTrace {
+ /**
+ * Returns the value of the '<em><b>Node Label Traces</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.gmf.internal.bridge.trace.GenNodeLabelTrace}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Node Label 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>Node Label Traces</em>' containment reference list.
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getGenNodeTrace_NodeLabelTraces()
+ * @model type="org.eclipse.gmf.internal.bridge.trace.GenNodeLabelTrace" containment="true"
+ * @generated
+ */
+ EList getNodeLabelTraces();
+
+ /**
+ * Returns the value of the '<em><b>Compartment Traces</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.gmf.internal.bridge.trace.GenCompartmentTrace}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compartment 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>Compartment Traces</em>' containment reference list.
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getGenNodeTrace_CompartmentTraces()
+ * @model type="org.eclipse.gmf.internal.bridge.trace.GenCompartmentTrace" containment="true"
+ * @generated
+ */
+ EList getCompartmentTraces();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setContext(GenNode genNode);
+
+} // GenNodeTrace \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GmfTracePlugin.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GmfTracePlugin.java
new file mode 100644
index 000000000..23d7c57b4
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/GmfTracePlugin.java
@@ -0,0 +1,38 @@
+package org.eclipse.gmf.internal.bridge.trace;
+
+import java.io.IOException;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+import org.osgi.framework.BundleContext;
+
+public class GmfTracePlugin extends Plugin {
+
+ private static GmfTracePlugin myInstance;
+
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ myInstance = this;
+ }
+
+ public void stop(BundleContext context) throws Exception {
+ super.stop(context);
+ myInstance = null;
+ }
+
+ public static GmfTracePlugin getInstance() {
+ return myInstance;
+ }
+
+ public void logError(String message, IOException exception) {
+ getLog().log(new Status(IStatus.ERROR, getBundle().getSymbolicName(), 0, message, exception));
+ }
+
+ public void logDebugInfo(String message) {
+ if (isDebugging()) {
+ getLog().log(new Status(IStatus.INFO, getBundle().getSymbolicName(), 0, message, null));
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/MatchingTrace.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/MatchingTrace.java
new file mode 100644
index 000000000..0b1840883
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/MatchingTrace.java
@@ -0,0 +1,97 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ocl.query.Query;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Matching Trace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.MatchingTrace#getQueryText <em>Query Text</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.MatchingTrace#getQuery <em>Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getMatchingTrace()
+ * @model abstract="true"
+ * @generated
+ */
+public interface MatchingTrace extends AbstractTrace {
+ /**
+ * Returns the value of the '<em><b>Query Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Query Text</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Query Text</em>' attribute.
+ * @see #setQueryText(String)
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getMatchingTrace_QueryText()
+ * @model derived="true"
+ * @generated
+ */
+ String getQueryText();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.gmf.internal.bridge.trace.MatchingTrace#getQueryText <em>Query Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Query Text</em>' attribute.
+ * @see #getQueryText()
+ * @generated
+ */
+ void setQueryText(String value);
+
+ /**
+ * Returns the value of the '<em><b>Query</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Query</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Query</em>' containment reference.
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getMatchingTrace_Query()
+ * @model containment="true" transient="true" changeable="false" derived="true"
+ * @generated
+ */
+ Query getQuery();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ Query createQuery();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ String getEClassComparision(String varName, EClass eClass);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ String getEStructuralFeatureComparison(String varName, EStructuralFeature feature);
+
+} // MatchingTrace \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/MergingIdentifierDispenser.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/MergingIdentifierDispenser.java
new file mode 100644
index 000000000..360fa69f6
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/MergingIdentifierDispenser.java
@@ -0,0 +1,319 @@
+/**
+ * Copyright (c) 2006 Eclipse.org
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * vano - initial API and implementation
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.XMIResource;
+import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.ToolGroup;
+import org.eclipse.gmf.internal.bridge.StatefulVisualIdentifierDispencer;
+
+public class MergingIdentifierDispenser implements StatefulVisualIdentifierDispencer {
+
+ private static final int CANVAS_COUNT_BASE = 1000;
+ private static final int TOP_NODE_COUNT_BASE = 2000;
+ private static final int CHILD_NODE_COUNT_BASE = 3000;
+ private static final int LINK_COUNT_BASE = 4000;
+ private static final int NODE_LABEL_COUNT_BASE = 5000;
+ private static final int LINK_LABEL_COUNT_BASE = 6000;
+ private static final int COMPARTMENT_COUNT_BASE = 7000;
+ private static final int OVERFLOW_COUNT_BASE = 8000;
+
+ private static final int TOOL_GROUP_COUNT_BASE = 0;
+
+ private int myTopNodeCount = TOP_NODE_COUNT_BASE;
+ private int myChildNodeCount = CHILD_NODE_COUNT_BASE;
+ private int myLinkCount = LINK_COUNT_BASE;
+ private int myNodeLabelCount = NODE_LABEL_COUNT_BASE;
+ private int myLinkLabelCount = LINK_LABEL_COUNT_BASE;
+ private int myCompartmentCount = COMPARTMENT_COUNT_BASE;
+ private int myToolGroupCount = TOOL_GROUP_COUNT_BASE;
+ private int myOverflowCount = OVERFLOW_COUNT_BASE;
+
+ private TraceModel myTraceModel;
+ private Map mySavingOptions;
+
+ public void loadState(URI genModelFileURI) {
+ loadTraceModel(genModelFileURI);
+ initCounters();
+ }
+
+ public void saveState() {
+ myTraceModel.purgeUnprocessedTraces();
+ try {
+ myTraceModel.eResource().save(getSavingOptions());
+ } catch (IOException e) {
+ GmfTracePlugin.getInstance().logError("Unable to save trace model", e);
+ }
+ myTraceModel = null;
+ }
+
+ private Map getSavingOptions() {
+ if (mySavingOptions == null) {
+ mySavingOptions = new HashMap();
+ mySavingOptions.put(XMIResource.OPTION_ENCODING, "UTF-8");
+ }
+ return mySavingOptions;
+ }
+
+ private void loadTraceModel(URI genModelFileURI) {
+ URI traceModelURI = genModelFileURI.trimFileExtension().appendFileExtension("trace");
+ ResourceSet resSet = new ResourceSetImpl();
+ Resource traceRes;
+ try {
+ traceRes = resSet.getResource(traceModelURI, true);
+ } catch (RuntimeException e) {
+ traceRes = resSet.createResource(traceModelURI);
+ }
+
+ if (traceRes.getContents().size() > 0 && traceRes.getContents().get(0) instanceof TraceModel) {
+ myTraceModel = (TraceModel) traceRes.getContents().get(0);
+ } else {
+ myTraceModel = TraceFactory.eINSTANCE.createTraceModel();
+ traceRes.getContents().add(0, myTraceModel);
+ }
+ }
+
+ private void initCounters() {
+ myTopNodeCount = Math.max(myTopNodeCount, getMaxVid(myTraceModel.getNodeTraces()));
+ myChildNodeCount = Math.max(myChildNodeCount, getMaxVid(myTraceModel.getChildNodeTraces()));
+ myLinkCount = Math.max(myLinkCount, getMaxVid(myTraceModel.getLinkTraces()));
+
+ initNodeChildrenCounters(myTraceModel.getNodeTraces());
+ initNodeChildrenCounters(myTraceModel.getChildNodeTraces());
+
+ for (Iterator it = myTraceModel.getLinkTraces().iterator(); it.hasNext();) {
+ GenLinkTrace trace = (GenLinkTrace) it.next();
+ myLinkLabelCount = Math.max(myLinkLabelCount, getMaxVid(trace.getLinkLabelTraces()));
+ }
+
+ myToolGroupCount = Math.max(myToolGroupCount, getMaxVid(myTraceModel.getToolGroupTraces()));
+ }
+
+ private void initNodeChildrenCounters(Collection nodeTraces) {
+ for (Iterator it = nodeTraces.iterator(); it.hasNext();) {
+ GenNodeTrace trace = (GenNodeTrace) it.next();
+ myNodeLabelCount = Math.max(myNodeLabelCount, getMaxVid(trace.getNodeLabelTraces()));
+ myCompartmentCount = Math.max(myCompartmentCount, getMaxVid(trace.getCompartmentTraces()));
+ }
+ }
+
+ private int getMaxVid(Collection abstractTraces) {
+ int id = -1;
+ for (Iterator it = abstractTraces.iterator(); it.hasNext();) {
+ AbstractTrace nextTrace = (AbstractTrace) it.next();
+ id = Math.max(id, nextTrace.getVisualID());
+ myOverflowCount = Math.max(myOverflowCount, nextTrace.getVisualID());
+ }
+ return id;
+ }
+
+ public int get(GenDiagram diagram) {
+ return CANVAS_COUNT_BASE;
+ }
+
+ public int get(GenTopLevelNode node) {
+ int visualID = getMatchingVID(node, myTraceModel.getNodeTraces());
+ if (visualID > -1) {
+ return visualID;
+ }
+
+ visualID = getNextTopNodeVID();
+ GenNodeTrace nodeTrace = TraceFactory.eINSTANCE.createGenNodeTrace();
+ nodeTrace.setVisualID(visualID);
+ nodeTrace.setContext(node);
+ nodeTrace.setProcessed(true);
+ myTraceModel.getNodeTraces().add(nodeTrace);
+ return visualID;
+ }
+
+ public int get(GenNodeLabel nodeLabel) {
+ GenNodeTrace nodeTrace = myTraceModel.getNodeTrace(nodeLabel.getNode().getVisualID());
+ int visualID = getMatchingVID(nodeLabel, nodeTrace.getNodeLabelTraces());
+ if (visualID > -1) {
+ return visualID;
+ }
+
+ visualID = getNextNodeLabelVID();
+ GenNodeLabelTrace nodeLabelTrace = TraceFactory.eINSTANCE.createGenNodeLabelTrace();
+ nodeLabelTrace.setVisualID(visualID);
+ nodeTrace.getNodeLabelTraces().add(nodeLabelTrace);
+ nodeLabelTrace.setContext(nodeLabel);
+ nodeLabelTrace.setProcessed(true);
+ return visualID;
+ }
+
+ public int get(GenLink link) {
+ int visualID = getMatchingVID(link, myTraceModel.getLinkTraces());
+ if (visualID > -1) {
+ return visualID;
+ }
+
+ visualID = getNextLinkVID();
+ GenLinkTrace nodeLabelTrace = TraceFactory.eINSTANCE.createGenLinkTrace();
+ nodeLabelTrace.setVisualID(visualID);
+ nodeLabelTrace.setContext(link);
+ myTraceModel.getLinkTraces().add(nodeLabelTrace);
+ nodeLabelTrace.setProcessed(true);
+ return visualID;
+ }
+
+ public int get(GenChildNode childNode) {
+ int visualID = getMatchingVID(childNode, myTraceModel.getChildNodeTraces());
+ if (visualID > -1) {
+ return visualID;
+ }
+
+ visualID = getNextChildNodeVID();
+ GenChildNodeTrace childNodeTrace = TraceFactory.eINSTANCE.createGenChildNodeTrace();
+ childNodeTrace.setVisualID(visualID);
+ childNodeTrace.setContext(childNode);
+ myTraceModel.getChildNodeTraces().add(childNodeTrace);
+ childNodeTrace.setProcessed(true);
+ return visualID;
+ }
+
+ public int get(GenCompartment compartment) {
+ GenNodeTrace nodeTrace = myTraceModel.getNodeTrace(compartment.getNode().getVisualID());
+ int visualID = getMatchingVID(compartment, nodeTrace.getCompartmentTraces());
+ if (visualID > -1) {
+ return visualID;
+ }
+
+ visualID = getNextCompartmentVID();
+ GenCompartmentTrace compartmentTrace = TraceFactory.eINSTANCE.createGenCompartmentTrace();
+ compartmentTrace.setVisualID(visualID);
+ nodeTrace.getCompartmentTraces().add(compartmentTrace);
+ compartmentTrace.setContext(compartment);
+ compartmentTrace.setProcessed(true);
+ return visualID;
+ }
+
+ public int get(GenLinkLabel label) {
+ GenLinkTrace linkTrace = myTraceModel.getLinkTrace(label.getLink().getVisualID());
+ int visualID = getMatchingVID(label, linkTrace.getLinkLabelTraces());
+ if (visualID > -1) {
+ return visualID;
+ }
+
+ visualID = getNextLinkLabelVID();
+ GenLinkLabelTrace linkLabelTrace = TraceFactory.eINSTANCE.createGenLinkLabelTrace();
+ linkLabelTrace.setVisualID(visualID);
+ linkTrace.getLinkLabelTraces().add(linkLabelTrace);
+ linkLabelTrace.setContext(label);
+ linkLabelTrace.setProcessed(true);
+ return visualID;
+ }
+
+ public int get(ToolGroup toolGroup) {
+ int visualID = getMatchingVID(toolGroup, myTraceModel.getToolGroupTraces());
+ if (visualID > -1) {
+ return visualID;
+ }
+
+ visualID = getNextToolVID();
+ ToolGroupTrace toolGroupTrace = TraceFactory.eINSTANCE.createToolGroupTrace();
+ toolGroupTrace.setVisualID(visualID);
+ toolGroupTrace.setContext(toolGroup);
+ myTraceModel.getToolGroupTraces().add(toolGroupTrace);
+ toolGroupTrace.setProcessed(true);
+ return visualID;
+ }
+
+ private int getMatchingVID(Object context, Collection matchingTraces) {
+ for (Iterator it = matchingTraces.iterator(); it.hasNext();) {
+ MatchingTrace trace = (MatchingTrace) it.next();
+ if (trace.isProcessed()) {
+ continue;
+ }
+ Object result = trace.getQuery().evaluate(context);
+ if (result instanceof Boolean && ((Boolean) result).booleanValue()) {
+ trace.setProcessed(true);
+ return trace.getVisualID();
+ }
+ }
+ return -1;
+ }
+
+ private int getNextToolVID() {
+ if (++myToolGroupCount < CANVAS_COUNT_BASE) {
+ GmfTracePlugin.getInstance().logDebugInfo("New tool visualID issued: " + myToolGroupCount);
+ return myToolGroupCount;
+ }
+ return ++myOverflowCount;
+ }
+
+ private int getNextTopNodeVID() {
+ if (++myTopNodeCount < CHILD_NODE_COUNT_BASE) {
+ GmfTracePlugin.getInstance().logDebugInfo("New top node visualID issued: " + myTopNodeCount);
+ return myTopNodeCount;
+ }
+ return ++myOverflowCount;
+ }
+
+ private int getNextChildNodeVID() {
+ if (++myChildNodeCount < LINK_COUNT_BASE) {
+ GmfTracePlugin.getInstance().logDebugInfo("New child node visualID issued: " + myChildNodeCount);
+ return myChildNodeCount;
+ }
+ return ++myOverflowCount;
+ }
+
+ private int getNextLinkVID() {
+ if (++myLinkCount < NODE_LABEL_COUNT_BASE) {
+ GmfTracePlugin.getInstance().logDebugInfo("New link visualID issued: " + myLinkCount);
+ return myLinkCount;
+ }
+ return ++myOverflowCount;
+ }
+
+ private int getNextNodeLabelVID() {
+ if (++myNodeLabelCount < LINK_LABEL_COUNT_BASE) {
+ GmfTracePlugin.getInstance().logDebugInfo("New node label visualID issued: " + myNodeLabelCount);
+ return myNodeLabelCount;
+ }
+ return ++myOverflowCount;
+ }
+
+ private int getNextLinkLabelVID() {
+ if (++myLinkLabelCount < COMPARTMENT_COUNT_BASE) {
+ GmfTracePlugin.getInstance().logDebugInfo("New link label visualID issued: " + myLinkLabelCount);
+ return myLinkLabelCount;
+ }
+ return ++myOverflowCount;
+ }
+
+ private int getNextCompartmentVID() {
+ if (++myCompartmentCount < OVERFLOW_COUNT_BASE) {
+ GmfTracePlugin.getInstance().logDebugInfo("New compartment visualID issued: " + myCompartmentCount);
+ return myCompartmentCount;
+ }
+ return ++myOverflowCount;
+ }
+
+}
+
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/ToolGroupTrace.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/ToolGroupTrace.java
new file mode 100644
index 000000000..7be0be256
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/ToolGroupTrace.java
@@ -0,0 +1,30 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+import org.eclipse.gmf.codegen.gmfgen.ToolGroup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tool Group Trace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getToolGroupTrace()
+ * @model
+ * @generated
+ */
+public interface ToolGroupTrace extends MatchingTrace {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setContext(ToolGroup toolGroup);
+
+} // ToolGroupTrace \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TraceFactory.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TraceFactory.java
new file mode 100644
index 000000000..5aba6edfc
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TraceFactory.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+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.gmf.internal.bridge.trace.TracePackage
+ * @generated
+ */
+public interface TraceFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ TraceFactory eINSTANCE = org.eclipse.gmf.internal.bridge.trace.impl.TraceFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model</em>'.
+ * @generated
+ */
+ TraceModel createTraceModel();
+
+ /**
+ * Returns a new object of class '<em>Gen Node Trace</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Node Trace</em>'.
+ * @generated
+ */
+ GenNodeTrace createGenNodeTrace();
+
+ /**
+ * Returns a new object of class '<em>Gen Child Node Trace</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Child Node Trace</em>'.
+ * @generated
+ */
+ GenChildNodeTrace createGenChildNodeTrace();
+
+ /**
+ * Returns a new object of class '<em>Gen Node Label Trace</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Node Label Trace</em>'.
+ * @generated
+ */
+ GenNodeLabelTrace createGenNodeLabelTrace();
+
+ /**
+ * Returns a new object of class '<em>Gen Link Trace</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Link Trace</em>'.
+ * @generated
+ */
+ GenLinkTrace createGenLinkTrace();
+
+ /**
+ * Returns a new object of class '<em>Gen Compartment Trace</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Compartment Trace</em>'.
+ * @generated
+ */
+ GenCompartmentTrace createGenCompartmentTrace();
+
+ /**
+ * Returns a new object of class '<em>Gen Link Label Trace</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Link Label Trace</em>'.
+ * @generated
+ */
+ GenLinkLabelTrace createGenLinkLabelTrace();
+
+ /**
+ * Returns a new object of class '<em>Tool Group Trace</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tool Group Trace</em>'.
+ * @generated
+ */
+ ToolGroupTrace createToolGroupTrace();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ TracePackage getTracePackage();
+
+} //TraceFactory
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TraceModel.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TraceModel.java
new file mode 100644
index 000000000..14c4f6cf2
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TraceModel.java
@@ -0,0 +1,129 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.TraceModel#getNodeTraces <em>Node Traces</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.TraceModel#getChildNodeTraces <em>Child Node Traces</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.TraceModel#getLinkTraces <em>Link Traces</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.TraceModel#getToolGroupTraces <em>Tool Group Traces</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getTraceModel()
+ * @model
+ * @generated
+ */
+public interface TraceModel extends EObject {
+ /**
+ * Returns the value of the '<em><b>Node Traces</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.gmf.internal.bridge.trace.GenNodeTrace}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Node 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>Node Traces</em>' containment reference list.
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getTraceModel_NodeTraces()
+ * @model type="org.eclipse.gmf.internal.bridge.trace.GenNodeTrace" containment="true"
+ * @generated
+ */
+ EList getNodeTraces();
+
+ /**
+ * Returns the value of the '<em><b>Child Node Traces</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.gmf.internal.bridge.trace.GenChildNodeTrace}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Child Node 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>Child Node Traces</em>' containment reference list.
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getTraceModel_ChildNodeTraces()
+ * @model type="org.eclipse.gmf.internal.bridge.trace.GenChildNodeTrace" containment="true"
+ * @generated
+ */
+ EList getChildNodeTraces();
+
+ /**
+ * Returns the value of the '<em><b>Link Traces</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.gmf.internal.bridge.trace.GenLinkTrace}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Link 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>Link Traces</em>' containment reference list.
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getTraceModel_LinkTraces()
+ * @model type="org.eclipse.gmf.internal.bridge.trace.GenLinkTrace" containment="true"
+ * @generated
+ */
+ EList getLinkTraces();
+
+ /**
+ * Returns the value of the '<em><b>Tool Group Traces</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.gmf.internal.bridge.trace.ToolGroupTrace}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tool Group 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>Tool Group Traces</em>' containment reference list.
+ * @see org.eclipse.gmf.internal.bridge.trace.TracePackage#getTraceModel_ToolGroupTraces()
+ * @model type="org.eclipse.gmf.internal.bridge.trace.ToolGroupTrace" containment="true"
+ * @generated
+ */
+ EList getToolGroupTraces();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ GenNodeTrace getNodeTrace(int visualID);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ GenLinkTrace getLinkTrace(int visualID);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" type="org.eclipse.gmf.internal.bridge.trace.AbstractTrace"
+ * @generated
+ */
+ EList getAllAbstractTraces();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void purgeUnprocessedTraces();
+
+} // TraceModel \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TracePackage.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TracePackage.java
new file mode 100644
index 000000000..3588c27ef
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/TracePackage.java
@@ -0,0 +1,1073 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace;
+
+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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.TraceFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface TracePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "trace";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/gmf/2006/Trace";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "trace";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ TracePackage eINSTANCE = org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.TraceModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TraceModelImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getTraceModel()
+ * @generated
+ */
+ int TRACE_MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Node Traces</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRACE_MODEL__NODE_TRACES = 0;
+
+ /**
+ * The feature id for the '<em><b>Child Node Traces</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRACE_MODEL__CHILD_NODE_TRACES = 1;
+
+ /**
+ * The feature id for the '<em><b>Link Traces</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRACE_MODEL__LINK_TRACES = 2;
+
+ /**
+ * The feature id for the '<em><b>Tool Group Traces</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRACE_MODEL__TOOL_GROUP_TRACES = 3;
+
+ /**
+ * The number of structural features of the '<em>Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRACE_MODEL_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.AbstractTraceImpl <em>Abstract Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.AbstractTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getAbstractTrace()
+ * @generated
+ */
+ int ABSTRACT_TRACE = 1;
+
+ /**
+ * The feature id for the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_TRACE__VISUAL_ID = 0;
+
+ /**
+ * The feature id for the '<em><b>Processed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_TRACE__PROCESSED = 1;
+
+ /**
+ * The number of structural features of the '<em>Abstract Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ABSTRACT_TRACE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.MatchingTraceImpl <em>Matching Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.MatchingTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getMatchingTrace()
+ * @generated
+ */
+ int MATCHING_TRACE = 2;
+
+ /**
+ * The feature id for the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MATCHING_TRACE__VISUAL_ID = ABSTRACT_TRACE__VISUAL_ID;
+
+ /**
+ * The feature id for the '<em><b>Processed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MATCHING_TRACE__PROCESSED = ABSTRACT_TRACE__PROCESSED;
+
+ /**
+ * The feature id for the '<em><b>Query Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MATCHING_TRACE__QUERY_TEXT = ABSTRACT_TRACE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Query</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MATCHING_TRACE__QUERY = ABSTRACT_TRACE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Matching Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MATCHING_TRACE_FEATURE_COUNT = ABSTRACT_TRACE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenNodeTraceImpl <em>Gen Node Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenNodeTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenNodeTrace()
+ * @generated
+ */
+ int GEN_NODE_TRACE = 3;
+
+ /**
+ * The feature id for the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_TRACE__VISUAL_ID = MATCHING_TRACE__VISUAL_ID;
+
+ /**
+ * The feature id for the '<em><b>Processed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_TRACE__PROCESSED = MATCHING_TRACE__PROCESSED;
+
+ /**
+ * The feature id for the '<em><b>Query Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_TRACE__QUERY_TEXT = MATCHING_TRACE__QUERY_TEXT;
+
+ /**
+ * The feature id for the '<em><b>Query</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_TRACE__QUERY = MATCHING_TRACE__QUERY;
+
+ /**
+ * The feature id for the '<em><b>Node Label Traces</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_TRACE__NODE_LABEL_TRACES = MATCHING_TRACE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Compartment Traces</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_TRACE__COMPARTMENT_TRACES = MATCHING_TRACE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Gen Node Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_TRACE_FEATURE_COUNT = MATCHING_TRACE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenChildNodeTraceImpl <em>Gen Child Node Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenChildNodeTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenChildNodeTrace()
+ * @generated
+ */
+ int GEN_CHILD_NODE_TRACE = 4;
+
+ /**
+ * The feature id for the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CHILD_NODE_TRACE__VISUAL_ID = GEN_NODE_TRACE__VISUAL_ID;
+
+ /**
+ * The feature id for the '<em><b>Processed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CHILD_NODE_TRACE__PROCESSED = GEN_NODE_TRACE__PROCESSED;
+
+ /**
+ * The feature id for the '<em><b>Query Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CHILD_NODE_TRACE__QUERY_TEXT = GEN_NODE_TRACE__QUERY_TEXT;
+
+ /**
+ * The feature id for the '<em><b>Query</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CHILD_NODE_TRACE__QUERY = GEN_NODE_TRACE__QUERY;
+
+ /**
+ * The feature id for the '<em><b>Node Label Traces</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CHILD_NODE_TRACE__NODE_LABEL_TRACES = GEN_NODE_TRACE__NODE_LABEL_TRACES;
+
+ /**
+ * The feature id for the '<em><b>Compartment Traces</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CHILD_NODE_TRACE__COMPARTMENT_TRACES = GEN_NODE_TRACE__COMPARTMENT_TRACES;
+
+ /**
+ * The number of structural features of the '<em>Gen Child Node Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_CHILD_NODE_TRACE_FEATURE_COUNT = GEN_NODE_TRACE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenNodeLabelTraceImpl <em>Gen Node Label Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenNodeLabelTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenNodeLabelTrace()
+ * @generated
+ */
+ int GEN_NODE_LABEL_TRACE = 5;
+
+ /**
+ * The feature id for the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_LABEL_TRACE__VISUAL_ID = MATCHING_TRACE__VISUAL_ID;
+
+ /**
+ * The feature id for the '<em><b>Processed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_LABEL_TRACE__PROCESSED = MATCHING_TRACE__PROCESSED;
+
+ /**
+ * The feature id for the '<em><b>Query Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_LABEL_TRACE__QUERY_TEXT = MATCHING_TRACE__QUERY_TEXT;
+
+ /**
+ * The feature id for the '<em><b>Query</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_LABEL_TRACE__QUERY = MATCHING_TRACE__QUERY;
+
+ /**
+ * The number of structural features of the '<em>Gen Node Label Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_LABEL_TRACE_FEATURE_COUNT = MATCHING_TRACE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenLinkTraceImpl <em>Gen Link Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenLinkTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenLinkTrace()
+ * @generated
+ */
+ int GEN_LINK_TRACE = 6;
+
+ /**
+ * The feature id for the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_TRACE__VISUAL_ID = MATCHING_TRACE__VISUAL_ID;
+
+ /**
+ * The feature id for the '<em><b>Processed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_TRACE__PROCESSED = MATCHING_TRACE__PROCESSED;
+
+ /**
+ * The feature id for the '<em><b>Query Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_TRACE__QUERY_TEXT = MATCHING_TRACE__QUERY_TEXT;
+
+ /**
+ * The feature id for the '<em><b>Query</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_TRACE__QUERY = MATCHING_TRACE__QUERY;
+
+ /**
+ * The feature id for the '<em><b>Link Label Traces</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_TRACE__LINK_LABEL_TRACES = MATCHING_TRACE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Gen Link Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_TRACE_FEATURE_COUNT = MATCHING_TRACE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenCompartmentTraceImpl <em>Gen Compartment Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenCompartmentTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenCompartmentTrace()
+ * @generated
+ */
+ int GEN_COMPARTMENT_TRACE = 7;
+
+ /**
+ * The feature id for the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_COMPARTMENT_TRACE__VISUAL_ID = MATCHING_TRACE__VISUAL_ID;
+
+ /**
+ * The feature id for the '<em><b>Processed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_COMPARTMENT_TRACE__PROCESSED = MATCHING_TRACE__PROCESSED;
+
+ /**
+ * The feature id for the '<em><b>Query Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_COMPARTMENT_TRACE__QUERY_TEXT = MATCHING_TRACE__QUERY_TEXT;
+
+ /**
+ * The feature id for the '<em><b>Query</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_COMPARTMENT_TRACE__QUERY = MATCHING_TRACE__QUERY;
+
+ /**
+ * The number of structural features of the '<em>Gen Compartment Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_COMPARTMENT_TRACE_FEATURE_COUNT = MATCHING_TRACE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenLinkLabelTraceImpl <em>Gen Link Label Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenLinkLabelTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenLinkLabelTrace()
+ * @generated
+ */
+ int GEN_LINK_LABEL_TRACE = 8;
+
+ /**
+ * The feature id for the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_LABEL_TRACE__VISUAL_ID = MATCHING_TRACE__VISUAL_ID;
+
+ /**
+ * The feature id for the '<em><b>Processed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_LABEL_TRACE__PROCESSED = MATCHING_TRACE__PROCESSED;
+
+ /**
+ * The feature id for the '<em><b>Query Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_LABEL_TRACE__QUERY_TEXT = MATCHING_TRACE__QUERY_TEXT;
+
+ /**
+ * The feature id for the '<em><b>Query</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_LABEL_TRACE__QUERY = MATCHING_TRACE__QUERY;
+
+ /**
+ * The number of structural features of the '<em>Gen Link Label Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_LINK_LABEL_TRACE_FEATURE_COUNT = MATCHING_TRACE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.ToolGroupTraceImpl <em>Tool Group Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.ToolGroupTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getToolGroupTrace()
+ * @generated
+ */
+ int TOOL_GROUP_TRACE = 9;
+
+ /**
+ * The feature id for the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TOOL_GROUP_TRACE__VISUAL_ID = MATCHING_TRACE__VISUAL_ID;
+
+ /**
+ * The feature id for the '<em><b>Processed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TOOL_GROUP_TRACE__PROCESSED = MATCHING_TRACE__PROCESSED;
+
+ /**
+ * The feature id for the '<em><b>Query Text</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TOOL_GROUP_TRACE__QUERY_TEXT = MATCHING_TRACE__QUERY_TEXT;
+
+ /**
+ * The feature id for the '<em><b>Query</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TOOL_GROUP_TRACE__QUERY = MATCHING_TRACE__QUERY;
+
+ /**
+ * The number of structural features of the '<em>Tool Group Trace</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TOOL_GROUP_TRACE_FEATURE_COUNT = MATCHING_TRACE_FEATURE_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.internal.bridge.trace.TraceModel <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.TraceModel
+ * @generated
+ */
+ EClass getTraceModel();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.gmf.internal.bridge.trace.TraceModel#getNodeTraces <em>Node Traces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Node Traces</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.TraceModel#getNodeTraces()
+ * @see #getTraceModel()
+ * @generated
+ */
+ EReference getTraceModel_NodeTraces();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.gmf.internal.bridge.trace.TraceModel#getChildNodeTraces <em>Child Node Traces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Child Node Traces</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.TraceModel#getChildNodeTraces()
+ * @see #getTraceModel()
+ * @generated
+ */
+ EReference getTraceModel_ChildNodeTraces();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.gmf.internal.bridge.trace.TraceModel#getLinkTraces <em>Link Traces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Link Traces</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.TraceModel#getLinkTraces()
+ * @see #getTraceModel()
+ * @generated
+ */
+ EReference getTraceModel_LinkTraces();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.gmf.internal.bridge.trace.TraceModel#getToolGroupTraces <em>Tool Group Traces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Tool Group Traces</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.TraceModel#getToolGroupTraces()
+ * @see #getTraceModel()
+ * @generated
+ */
+ EReference getTraceModel_ToolGroupTraces();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.internal.bridge.trace.AbstractTrace <em>Abstract Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Abstract Trace</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.AbstractTrace
+ * @generated
+ */
+ EClass getAbstractTrace();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.gmf.internal.bridge.trace.AbstractTrace#getVisualID <em>Visual ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Visual ID</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.AbstractTrace#getVisualID()
+ * @see #getAbstractTrace()
+ * @generated
+ */
+ EAttribute getAbstractTrace_VisualID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.gmf.internal.bridge.trace.AbstractTrace#isProcessed <em>Processed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Processed</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.AbstractTrace#isProcessed()
+ * @see #getAbstractTrace()
+ * @generated
+ */
+ EAttribute getAbstractTrace_Processed();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.internal.bridge.trace.MatchingTrace <em>Matching Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Matching Trace</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.MatchingTrace
+ * @generated
+ */
+ EClass getMatchingTrace();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.gmf.internal.bridge.trace.MatchingTrace#getQueryText <em>Query Text</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Query Text</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.MatchingTrace#getQueryText()
+ * @see #getMatchingTrace()
+ * @generated
+ */
+ EAttribute getMatchingTrace_QueryText();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.gmf.internal.bridge.trace.MatchingTrace#getQuery <em>Query</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Query</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.MatchingTrace#getQuery()
+ * @see #getMatchingTrace()
+ * @generated
+ */
+ EReference getMatchingTrace_Query();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.internal.bridge.trace.GenNodeTrace <em>Gen Node Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Node Trace</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.GenNodeTrace
+ * @generated
+ */
+ EClass getGenNodeTrace();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.gmf.internal.bridge.trace.GenNodeTrace#getNodeLabelTraces <em>Node Label Traces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Node Label Traces</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.GenNodeTrace#getNodeLabelTraces()
+ * @see #getGenNodeTrace()
+ * @generated
+ */
+ EReference getGenNodeTrace_NodeLabelTraces();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.gmf.internal.bridge.trace.GenNodeTrace#getCompartmentTraces <em>Compartment Traces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Compartment Traces</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.GenNodeTrace#getCompartmentTraces()
+ * @see #getGenNodeTrace()
+ * @generated
+ */
+ EReference getGenNodeTrace_CompartmentTraces();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.internal.bridge.trace.GenChildNodeTrace <em>Gen Child Node Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Child Node Trace</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.GenChildNodeTrace
+ * @generated
+ */
+ EClass getGenChildNodeTrace();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.internal.bridge.trace.GenNodeLabelTrace <em>Gen Node Label Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Node Label Trace</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.GenNodeLabelTrace
+ * @generated
+ */
+ EClass getGenNodeLabelTrace();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.internal.bridge.trace.GenLinkTrace <em>Gen Link Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Link Trace</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.GenLinkTrace
+ * @generated
+ */
+ EClass getGenLinkTrace();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.gmf.internal.bridge.trace.GenLinkTrace#getLinkLabelTraces <em>Link Label Traces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Link Label Traces</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.GenLinkTrace#getLinkLabelTraces()
+ * @see #getGenLinkTrace()
+ * @generated
+ */
+ EReference getGenLinkTrace_LinkLabelTraces();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.internal.bridge.trace.GenCompartmentTrace <em>Gen Compartment Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Compartment Trace</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.GenCompartmentTrace
+ * @generated
+ */
+ EClass getGenCompartmentTrace();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.internal.bridge.trace.GenLinkLabelTrace <em>Gen Link Label Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Link Label Trace</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.GenLinkLabelTrace
+ * @generated
+ */
+ EClass getGenLinkLabelTrace();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.gmf.internal.bridge.trace.ToolGroupTrace <em>Tool Group Trace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tool Group Trace</em>'.
+ * @see org.eclipse.gmf.internal.bridge.trace.ToolGroupTrace
+ * @generated
+ */
+ EClass getToolGroupTrace();
+
+ /**
+ * 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
+ */
+ TraceFactory getTraceFactory();
+
+ /**
+ * <!-- 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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.TraceModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TraceModelImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getTraceModel()
+ * @generated
+ */
+ EClass TRACE_MODEL = eINSTANCE.getTraceModel();
+
+ /**
+ * The meta object literal for the '<em><b>Node Traces</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRACE_MODEL__NODE_TRACES = eINSTANCE.getTraceModel_NodeTraces();
+
+ /**
+ * The meta object literal for the '<em><b>Child Node Traces</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRACE_MODEL__CHILD_NODE_TRACES = eINSTANCE.getTraceModel_ChildNodeTraces();
+
+ /**
+ * The meta object literal for the '<em><b>Link Traces</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRACE_MODEL__LINK_TRACES = eINSTANCE.getTraceModel_LinkTraces();
+
+ /**
+ * The meta object literal for the '<em><b>Tool Group Traces</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRACE_MODEL__TOOL_GROUP_TRACES = eINSTANCE.getTraceModel_ToolGroupTraces();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.AbstractTraceImpl <em>Abstract Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.AbstractTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getAbstractTrace()
+ * @generated
+ */
+ EClass ABSTRACT_TRACE = eINSTANCE.getAbstractTrace();
+
+ /**
+ * The meta object literal for the '<em><b>Visual ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ABSTRACT_TRACE__VISUAL_ID = eINSTANCE.getAbstractTrace_VisualID();
+
+ /**
+ * The meta object literal for the '<em><b>Processed</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ABSTRACT_TRACE__PROCESSED = eINSTANCE.getAbstractTrace_Processed();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.MatchingTraceImpl <em>Matching Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.MatchingTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getMatchingTrace()
+ * @generated
+ */
+ EClass MATCHING_TRACE = eINSTANCE.getMatchingTrace();
+
+ /**
+ * The meta object literal for the '<em><b>Query Text</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MATCHING_TRACE__QUERY_TEXT = eINSTANCE.getMatchingTrace_QueryText();
+
+ /**
+ * The meta object literal for the '<em><b>Query</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MATCHING_TRACE__QUERY = eINSTANCE.getMatchingTrace_Query();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenNodeTraceImpl <em>Gen Node Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenNodeTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenNodeTrace()
+ * @generated
+ */
+ EClass GEN_NODE_TRACE = eINSTANCE.getGenNodeTrace();
+
+ /**
+ * The meta object literal for the '<em><b>Node Label Traces</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GEN_NODE_TRACE__NODE_LABEL_TRACES = eINSTANCE.getGenNodeTrace_NodeLabelTraces();
+
+ /**
+ * The meta object literal for the '<em><b>Compartment Traces</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GEN_NODE_TRACE__COMPARTMENT_TRACES = eINSTANCE.getGenNodeTrace_CompartmentTraces();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenChildNodeTraceImpl <em>Gen Child Node Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenChildNodeTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenChildNodeTrace()
+ * @generated
+ */
+ EClass GEN_CHILD_NODE_TRACE = eINSTANCE.getGenChildNodeTrace();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenNodeLabelTraceImpl <em>Gen Node Label Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenNodeLabelTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenNodeLabelTrace()
+ * @generated
+ */
+ EClass GEN_NODE_LABEL_TRACE = eINSTANCE.getGenNodeLabelTrace();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenLinkTraceImpl <em>Gen Link Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenLinkTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenLinkTrace()
+ * @generated
+ */
+ EClass GEN_LINK_TRACE = eINSTANCE.getGenLinkTrace();
+
+ /**
+ * The meta object literal for the '<em><b>Link Label Traces</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GEN_LINK_TRACE__LINK_LABEL_TRACES = eINSTANCE.getGenLinkTrace_LinkLabelTraces();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenCompartmentTraceImpl <em>Gen Compartment Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenCompartmentTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenCompartmentTrace()
+ * @generated
+ */
+ EClass GEN_COMPARTMENT_TRACE = eINSTANCE.getGenCompartmentTrace();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.GenLinkLabelTraceImpl <em>Gen Link Label Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.GenLinkLabelTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getGenLinkLabelTrace()
+ * @generated
+ */
+ EClass GEN_LINK_LABEL_TRACE = eINSTANCE.getGenLinkLabelTrace();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.gmf.internal.bridge.trace.impl.ToolGroupTraceImpl <em>Tool Group Trace</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.ToolGroupTraceImpl
+ * @see org.eclipse.gmf.internal.bridge.trace.impl.TracePackageImpl#getToolGroupTrace()
+ * @generated
+ */
+ EClass TOOL_GROUP_TRACE = eINSTANCE.getToolGroupTrace();
+
+ }
+
+} //TracePackage
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/AbstractTraceImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/AbstractTraceImpl.java
new file mode 100644
index 000000000..54fe94404
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/AbstractTraceImpl.java
@@ -0,0 +1,212 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+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.EObjectImpl;
+import org.eclipse.gmf.internal.bridge.trace.AbstractTrace;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Abstract Trace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.AbstractTraceImpl#getVisualID <em>Visual ID</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.AbstractTraceImpl#isProcessed <em>Processed</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class AbstractTraceImpl extends EObjectImpl implements AbstractTrace {
+ /**
+ * The default value of the '{@link #getVisualID() <em>Visual ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVisualID()
+ * @generated
+ * @ordered
+ */
+ protected static final int VISUAL_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getVisualID() <em>Visual ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVisualID()
+ * @generated
+ * @ordered
+ */
+ protected int visualID = VISUAL_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isProcessed() <em>Processed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isProcessed()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PROCESSED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isProcessed() <em>Processed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isProcessed()
+ * @generated
+ * @ordered
+ */
+ protected boolean processed = PROCESSED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AbstractTraceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return TracePackage.Literals.ABSTRACT_TRACE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getVisualID() {
+ return visualID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVisualID(int newVisualID) {
+ int oldVisualID = visualID;
+ visualID = newVisualID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TracePackage.ABSTRACT_TRACE__VISUAL_ID, oldVisualID, visualID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isProcessed() {
+ return processed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProcessed(boolean newProcessed) {
+ boolean oldProcessed = processed;
+ processed = newProcessed;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TracePackage.ABSTRACT_TRACE__PROCESSED, oldProcessed, processed));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TracePackage.ABSTRACT_TRACE__VISUAL_ID:
+ return new Integer(getVisualID());
+ case TracePackage.ABSTRACT_TRACE__PROCESSED:
+ return isProcessed() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TracePackage.ABSTRACT_TRACE__VISUAL_ID:
+ setVisualID(((Integer)newValue).intValue());
+ return;
+ case TracePackage.ABSTRACT_TRACE__PROCESSED:
+ setProcessed(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TracePackage.ABSTRACT_TRACE__VISUAL_ID:
+ setVisualID(VISUAL_ID_EDEFAULT);
+ return;
+ case TracePackage.ABSTRACT_TRACE__PROCESSED:
+ setProcessed(PROCESSED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TracePackage.ABSTRACT_TRACE__VISUAL_ID:
+ return visualID != VISUAL_ID_EDEFAULT;
+ case TracePackage.ABSTRACT_TRACE__PROCESSED:
+ return processed != PROCESSED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (visualID: ");
+ result.append(visualID);
+ result.append(", processed: ");
+ result.append(processed);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AbstractTraceImpl \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenChildNodeTraceImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenChildNodeTraceImpl.java
new file mode 100644
index 000000000..7fe29073a
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenChildNodeTraceImpl.java
@@ -0,0 +1,41 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.gmf.internal.bridge.trace.GenChildNodeTrace;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Child Node Trace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class GenChildNodeTraceImpl extends GenNodeTraceImpl implements GenChildNodeTrace {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenChildNodeTraceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return TracePackage.Literals.GEN_CHILD_NODE_TRACE;
+ }
+
+} //GenChildNodeTraceImpl \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenCompartmentTraceImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenCompartmentTraceImpl.java
new file mode 100644
index 000000000..de9bfc0e7
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenCompartmentTraceImpl.java
@@ -0,0 +1,58 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ocl.query.Query;
+import org.eclipse.emf.ocl.query.QueryFactory;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.gmf.internal.bridge.trace.GenCompartmentTrace;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Compartment Trace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class GenCompartmentTraceImpl extends MatchingTraceImpl implements GenCompartmentTrace {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenCompartmentTraceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return TracePackage.Literals.GEN_COMPARTMENT_TRACE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setContext(GenCompartment genCompartment) {
+ setQueryText("true");
+ }
+
+ public Query createQuery() {
+ return QueryFactory.eINSTANCE.createQuery(getQueryText(), GMFGenPackage.eINSTANCE.getGenCompartment());
+ }
+
+} //GenCompartmentTraceImpl \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenLinkLabelTraceImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenLinkLabelTraceImpl.java
new file mode 100644
index 000000000..2fd39f68e
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenLinkLabelTraceImpl.java
@@ -0,0 +1,58 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ocl.query.Query;
+import org.eclipse.emf.ocl.query.QueryFactory;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.internal.bridge.trace.GenLinkLabelTrace;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Link Label Trace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class GenLinkLabelTraceImpl extends MatchingTraceImpl implements GenLinkLabelTrace {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenLinkLabelTraceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return TracePackage.Literals.GEN_LINK_LABEL_TRACE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setContext(GenLinkLabel genLinkLabel) {
+ setQueryText("true");
+ }
+
+ public Query createQuery() {
+ return QueryFactory.eINSTANCE.createQuery(getQueryText(), GMFGenPackage.eINSTANCE.getGenLinkLabel());
+ }
+
+} //GenLinkLabelTraceImpl \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenLinkTraceImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenLinkTraceImpl.java
new file mode 100644
index 000000000..73b76e352
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenLinkTraceImpl.java
@@ -0,0 +1,181 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.ocl.query.Query;
+import org.eclipse.emf.ocl.query.QueryFactory;
+import org.eclipse.gmf.codegen.gmfgen.FeatureModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.gmf.internal.bridge.trace.GenLinkLabelTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenLinkTrace;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Link Trace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.GenLinkTraceImpl#getLinkLabelTraces <em>Link Label Traces</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GenLinkTraceImpl extends MatchingTraceImpl implements GenLinkTrace {
+ /**
+ * The cached value of the '{@link #getLinkLabelTraces() <em>Link Label Traces</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLinkLabelTraces()
+ * @generated
+ * @ordered
+ */
+ protected EList linkLabelTraces = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenLinkTraceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return TracePackage.Literals.GEN_LINK_TRACE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getLinkLabelTraces() {
+ if (linkLabelTraces == null) {
+ linkLabelTraces = new EObjectContainmentEList(GenLinkLabelTrace.class, this, TracePackage.GEN_LINK_TRACE__LINK_LABEL_TRACES);
+ }
+ return linkLabelTraces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setContext(GenLink genLink) {
+ StringBuffer result = new StringBuffer();
+ if (genLink.getModelFacet() instanceof FeatureModelFacet) {
+ EStructuralFeature feature = ((FeatureModelFacet) genLink.getModelFacet()).getMetaFeature().getEcoreFeature();
+ result.append("modelFacet.oclIsKindOf(gmfgen::FeatureLinkModelFacet) and ");
+ result.append("(let _feature_:ecore::EStructuralFeature = modelFacet.oclAsType(gmfgen::FeatureLinkModelFacet).metaFeature.ecoreFeature in ");
+ result.append(getEStructuralFeatureComparison("_feature_", feature));
+ result.append(")");
+ } else if (genLink.getModelFacet() instanceof TypeLinkModelFacet) {
+ EClass eClass = ((TypeLinkModelFacet) genLink.getModelFacet()).getMetaClass().getEcoreClass();
+ result.append("modelFacet.oclIsKindOf(gmfgen::TypeLinkModelFacet) and ");
+ result.append("(let _eClass_:ecore::EClass = modelFacet.oclAsType(gmfgen::TypeLinkModelFacet).metaClass.ecoreClass in ");
+ result.append(getEClassComparision("_eClass_", eClass));
+ result.append(")");
+ } else if (genLink.getModelFacet() == null) {
+ result.append("modelFacet = null");
+ } else {
+ throw new IllegalArgumentException("Incorrect gen link passed - Feature/TypeLinkModelFacet should be used");
+ }
+ setQueryText(result.toString());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TracePackage.GEN_LINK_TRACE__LINK_LABEL_TRACES:
+ return ((InternalEList)getLinkLabelTraces()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TracePackage.GEN_LINK_TRACE__LINK_LABEL_TRACES:
+ return getLinkLabelTraces();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TracePackage.GEN_LINK_TRACE__LINK_LABEL_TRACES:
+ getLinkLabelTraces().clear();
+ getLinkLabelTraces().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TracePackage.GEN_LINK_TRACE__LINK_LABEL_TRACES:
+ getLinkLabelTraces().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TracePackage.GEN_LINK_TRACE__LINK_LABEL_TRACES:
+ return linkLabelTraces != null && !linkLabelTraces.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ public Query createQuery() {
+ return QueryFactory.eINSTANCE.createQuery(getQueryText(), GMFGenPackage.eINSTANCE.getGenLink());
+ }
+
+} //GenLinkTraceImpl \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenNodeLabelTraceImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenNodeLabelTraceImpl.java
new file mode 100644
index 000000000..c496f2fe9
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenNodeLabelTraceImpl.java
@@ -0,0 +1,58 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ocl.query.Query;
+import org.eclipse.emf.ocl.query.QueryFactory;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.gmf.internal.bridge.trace.GenNodeLabelTrace;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Node Label Trace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class GenNodeLabelTraceImpl extends MatchingTraceImpl implements GenNodeLabelTrace {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenNodeLabelTraceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return TracePackage.Literals.GEN_NODE_LABEL_TRACE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setContext(GenNodeLabel genNodeLabel) {
+ setQueryText("true");
+ }
+
+ public Query createQuery() {
+ return QueryFactory.eINSTANCE.createQuery(getQueryText(), GMFGenPackage.eINSTANCE.getGenNodeLabel());
+ }
+
+} //GenNodeLabelTraceImpl \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenNodeTraceImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenNodeTraceImpl.java
new file mode 100644
index 000000000..78a290295
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/GenNodeTraceImpl.java
@@ -0,0 +1,217 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.ocl.query.Query;
+import org.eclipse.emf.ocl.query.QueryFactory;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.gmf.internal.bridge.trace.GenCompartmentTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenNodeLabelTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenNodeTrace;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Node Trace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.GenNodeTraceImpl#getNodeLabelTraces <em>Node Label Traces</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.GenNodeTraceImpl#getCompartmentTraces <em>Compartment Traces</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GenNodeTraceImpl extends MatchingTraceImpl implements GenNodeTrace {
+ /**
+ * The cached value of the '{@link #getNodeLabelTraces() <em>Node Label Traces</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNodeLabelTraces()
+ * @generated
+ * @ordered
+ */
+ protected EList nodeLabelTraces = null;
+
+ /**
+ * The cached value of the '{@link #getCompartmentTraces() <em>Compartment Traces</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompartmentTraces()
+ * @generated
+ * @ordered
+ */
+ protected EList compartmentTraces = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenNodeTraceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return TracePackage.Literals.GEN_NODE_TRACE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getNodeLabelTraces() {
+ if (nodeLabelTraces == null) {
+ nodeLabelTraces = new EObjectContainmentEList(GenNodeLabelTrace.class, this, TracePackage.GEN_NODE_TRACE__NODE_LABEL_TRACES);
+ }
+ return nodeLabelTraces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getCompartmentTraces() {
+ if (compartmentTraces == null) {
+ compartmentTraces = new EObjectContainmentEList(GenCompartmentTrace.class, this, TracePackage.GEN_NODE_TRACE__COMPARTMENT_TRACES);
+ }
+ return compartmentTraces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setContext(GenNode genNode) {
+ StringBuffer query = new StringBuffer();
+ if (genNode.getModelFacet() != null) {
+ TypeModelFacet modelFacet = genNode.getModelFacet();
+ query.append("let _eClass_:ecore::EClass = modelFacet.metaClass.ecoreClass in ");
+ query.append(getEClassComparision("_eClass_", modelFacet.getMetaClass().getEcoreClass()));
+ if (modelFacet.getContainmentMetaFeature() != null) {
+ query.insert(0, "(");
+ query.append(") and (let _containmentMF_:ecore::EStructuralFeature = modelFacet.containmentMetaFeature.ecoreFeature in ");
+ query.append(getEStructuralFeatureComparison("_containmentMF_", modelFacet.getContainmentMetaFeature().getEcoreFeature()));
+ query.append(")");
+ if (modelFacet.getContainmentMetaFeature() != modelFacet.getChildMetaFeature()) {
+ query.append(" and ( let _childMF_:ecore::EStructuralFeature = modelFacet.childMetaFeature.ecoreFeature in ");
+ query.append(getEStructuralFeatureComparison("_childMF_", modelFacet.getChildMetaFeature().getEcoreFeature()));
+ query.append(")");
+ }
+ }
+ } else {
+ query.append("modelFacet = null");
+ }
+ setQueryText(query.toString());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TracePackage.GEN_NODE_TRACE__NODE_LABEL_TRACES:
+ return ((InternalEList)getNodeLabelTraces()).basicRemove(otherEnd, msgs);
+ case TracePackage.GEN_NODE_TRACE__COMPARTMENT_TRACES:
+ return ((InternalEList)getCompartmentTraces()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TracePackage.GEN_NODE_TRACE__NODE_LABEL_TRACES:
+ return getNodeLabelTraces();
+ case TracePackage.GEN_NODE_TRACE__COMPARTMENT_TRACES:
+ return getCompartmentTraces();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TracePackage.GEN_NODE_TRACE__NODE_LABEL_TRACES:
+ getNodeLabelTraces().clear();
+ getNodeLabelTraces().addAll((Collection)newValue);
+ return;
+ case TracePackage.GEN_NODE_TRACE__COMPARTMENT_TRACES:
+ getCompartmentTraces().clear();
+ getCompartmentTraces().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TracePackage.GEN_NODE_TRACE__NODE_LABEL_TRACES:
+ getNodeLabelTraces().clear();
+ return;
+ case TracePackage.GEN_NODE_TRACE__COMPARTMENT_TRACES:
+ getCompartmentTraces().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TracePackage.GEN_NODE_TRACE__NODE_LABEL_TRACES:
+ return nodeLabelTraces != null && !nodeLabelTraces.isEmpty();
+ case TracePackage.GEN_NODE_TRACE__COMPARTMENT_TRACES:
+ return compartmentTraces != null && !compartmentTraces.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ public Query createQuery() {
+ return QueryFactory.eINSTANCE.createQuery(getQueryText(), GMFGenPackage.eINSTANCE.getGenTopLevelNode());
+ }
+
+} //GenNodeTraceImpl \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/MatchingTraceImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/MatchingTraceImpl.java
new file mode 100644
index 000000000..27ea1310d
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/MatchingTraceImpl.java
@@ -0,0 +1,260 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ocl.query.Query;
+import org.eclipse.gmf.internal.bridge.trace.MatchingTrace;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Matching Trace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.MatchingTraceImpl#getQueryText <em>Query Text</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.MatchingTraceImpl#getQuery <em>Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class MatchingTraceImpl extends AbstractTraceImpl implements MatchingTrace {
+ /**
+ * The default value of the '{@link #getQueryText() <em>Query Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQueryText()
+ * @generated
+ * @ordered
+ */
+ protected static final String QUERY_TEXT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getQueryText() <em>Query Text</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQueryText()
+ * @generated
+ * @ordered
+ */
+ protected String queryText = QUERY_TEXT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getQuery() <em>Query</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQuery()
+ * @generated
+ * @ordered
+ */
+ protected Query query = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MatchingTraceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return TracePackage.Literals.MATCHING_TRACE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getQueryText() {
+ return queryText;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setQueryText(String newQueryText) {
+ String oldQueryText = queryText;
+ queryText = newQueryText;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TracePackage.MATCHING_TRACE__QUERY_TEXT, oldQueryText, queryText));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Query getQuery() {
+ if (query == null) {
+ query = createQuery();
+ }
+ return query;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetQuery(Query newQuery, NotificationChain msgs) {
+ Query oldQuery = query;
+ query = newQuery;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TracePackage.MATCHING_TRACE__QUERY, oldQuery, newQuery);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public abstract Query createQuery();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getEClassComparision(String varName, EClass eClass) {
+ StringBuffer result = new StringBuffer();
+ result.append(varName);
+ result.append(".ePackage.nsURI = '");
+ result.append(eClass.getEPackage().getNsURI());
+ result.append("' and ");
+ result.append(varName);
+ result.append(".name = '");
+ result.append(eClass.getName());
+ result.append("'");
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getEStructuralFeatureComparison(String varName, EStructuralFeature feature) {
+ StringBuffer result = new StringBuffer();
+ result.append("(let _eClass_:ecore::EClass = ");
+ result.append(varName);
+ result.append(".eContainingClass in ");
+ result.append(getEClassComparision("_eClass_", feature.getEContainingClass()));
+ result.append(") and ");
+ result.append(varName);
+ result.append(".name = '");
+ result.append(feature.getName());
+ result.append("'");
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TracePackage.MATCHING_TRACE__QUERY:
+ return basicSetQuery(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TracePackage.MATCHING_TRACE__QUERY_TEXT:
+ return getQueryText();
+ case TracePackage.MATCHING_TRACE__QUERY:
+ return getQuery();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TracePackage.MATCHING_TRACE__QUERY_TEXT:
+ setQueryText((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TracePackage.MATCHING_TRACE__QUERY_TEXT:
+ setQueryText(QUERY_TEXT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TracePackage.MATCHING_TRACE__QUERY_TEXT:
+ return QUERY_TEXT_EDEFAULT == null ? queryText != null : !QUERY_TEXT_EDEFAULT.equals(queryText);
+ case TracePackage.MATCHING_TRACE__QUERY:
+ return query != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (queryText: ");
+ result.append(queryText);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MatchingTraceImpl \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/ToolGroupTraceImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/ToolGroupTraceImpl.java
new file mode 100644
index 000000000..037f5a6d3
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/ToolGroupTraceImpl.java
@@ -0,0 +1,60 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ocl.query.Query;
+import org.eclipse.emf.ocl.query.QueryFactory;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.ToolGroup;
+import org.eclipse.gmf.internal.bridge.trace.ToolGroupTrace;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tool Group Trace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ToolGroupTraceImpl extends MatchingTraceImpl implements ToolGroupTrace {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ToolGroupTraceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return TracePackage.Literals.TOOL_GROUP_TRACE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setContext(ToolGroup toolGroup) {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ public Query createQuery() {
+ return QueryFactory.eINSTANCE.createQuery(getQueryText(), GMFGenPackage.eINSTANCE.getToolGroup());
+ }
+
+} //ToolGroupTraceImpl \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TraceFactoryImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TraceFactoryImpl.java
new file mode 100644
index 000000000..5eb81498e
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TraceFactoryImpl.java
@@ -0,0 +1,183 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+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;
+
+import org.eclipse.gmf.internal.bridge.trace.*;
+
+import org.eclipse.gmf.internal.bridge.trace.GenChildNodeTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenCompartmentTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenLinkLabelTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenLinkTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenNodeLabelTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenNodeTrace;
+import org.eclipse.gmf.internal.bridge.trace.ToolGroupTrace;
+import org.eclipse.gmf.internal.bridge.trace.TraceFactory;
+import org.eclipse.gmf.internal.bridge.trace.TraceModel;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TraceFactoryImpl extends EFactoryImpl implements TraceFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TraceFactory init() {
+ try {
+ TraceFactory theTraceFactory = (TraceFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/gmf/2006/Trace");
+ if (theTraceFactory != null) {
+ return theTraceFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new TraceFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TraceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case TracePackage.TRACE_MODEL: return createTraceModel();
+ case TracePackage.GEN_NODE_TRACE: return createGenNodeTrace();
+ case TracePackage.GEN_CHILD_NODE_TRACE: return createGenChildNodeTrace();
+ case TracePackage.GEN_NODE_LABEL_TRACE: return createGenNodeLabelTrace();
+ case TracePackage.GEN_LINK_TRACE: return createGenLinkTrace();
+ case TracePackage.GEN_COMPARTMENT_TRACE: return createGenCompartmentTrace();
+ case TracePackage.GEN_LINK_LABEL_TRACE: return createGenLinkLabelTrace();
+ case TracePackage.TOOL_GROUP_TRACE: return createToolGroupTrace();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TraceModel createTraceModel() {
+ TraceModelImpl traceModel = new TraceModelImpl();
+ return traceModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenNodeTrace createGenNodeTrace() {
+ GenNodeTraceImpl genNodeTrace = new GenNodeTraceImpl();
+ return genNodeTrace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenChildNodeTrace createGenChildNodeTrace() {
+ GenChildNodeTraceImpl genChildNodeTrace = new GenChildNodeTraceImpl();
+ return genChildNodeTrace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenNodeLabelTrace createGenNodeLabelTrace() {
+ GenNodeLabelTraceImpl genNodeLabelTrace = new GenNodeLabelTraceImpl();
+ return genNodeLabelTrace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenLinkTrace createGenLinkTrace() {
+ GenLinkTraceImpl genLinkTrace = new GenLinkTraceImpl();
+ return genLinkTrace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenCompartmentTrace createGenCompartmentTrace() {
+ GenCompartmentTraceImpl genCompartmentTrace = new GenCompartmentTraceImpl();
+ return genCompartmentTrace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenLinkLabelTrace createGenLinkLabelTrace() {
+ GenLinkLabelTraceImpl genLinkLabelTrace = new GenLinkLabelTraceImpl();
+ return genLinkLabelTrace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ToolGroupTrace createToolGroupTrace() {
+ ToolGroupTraceImpl toolGroupTrace = new ToolGroupTraceImpl();
+ return toolGroupTrace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TracePackage getTracePackage() {
+ return (TracePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static TracePackage getPackage() {
+ return TracePackage.eINSTANCE;
+ }
+
+} //TraceFactoryImpl
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TraceModelImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TraceModelImpl.java
new file mode 100644
index 000000000..7a51b960b
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TraceModelImpl.java
@@ -0,0 +1,366 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
+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.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.gmf.internal.bridge.trace.AbstractTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenChildNodeTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenLinkTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenNodeTrace;
+import org.eclipse.gmf.internal.bridge.trace.GmfTracePlugin;
+import org.eclipse.gmf.internal.bridge.trace.ToolGroupTrace;
+import org.eclipse.gmf.internal.bridge.trace.TraceModel;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.TraceModelImpl#getNodeTraces <em>Node Traces</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.TraceModelImpl#getChildNodeTraces <em>Child Node Traces</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.TraceModelImpl#getLinkTraces <em>Link Traces</em>}</li>
+ * <li>{@link org.eclipse.gmf.internal.bridge.trace.impl.TraceModelImpl#getToolGroupTraces <em>Tool Group Traces</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TraceModelImpl extends EObjectImpl implements TraceModel {
+ /**
+ * The cached value of the '{@link #getNodeTraces() <em>Node Traces</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNodeTraces()
+ * @generated
+ * @ordered
+ */
+ protected EList nodeTraces = null;
+
+ /**
+ * The cached value of the '{@link #getChildNodeTraces() <em>Child Node Traces</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChildNodeTraces()
+ * @generated
+ * @ordered
+ */
+ protected EList childNodeTraces = null;
+
+ /**
+ * The cached value of the '{@link #getLinkTraces() <em>Link Traces</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLinkTraces()
+ * @generated
+ * @ordered
+ */
+ protected EList linkTraces = null;
+
+ /**
+ * The cached value of the '{@link #getToolGroupTraces() <em>Tool Group Traces</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getToolGroupTraces()
+ * @generated
+ * @ordered
+ */
+ protected EList toolGroupTraces = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TraceModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return TracePackage.Literals.TRACE_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getNodeTraces() {
+ if (nodeTraces == null) {
+ nodeTraces = new EObjectContainmentEList(GenNodeTrace.class, this, TracePackage.TRACE_MODEL__NODE_TRACES);
+ }
+ return nodeTraces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getChildNodeTraces() {
+ if (childNodeTraces == null) {
+ childNodeTraces = new EObjectContainmentEList(GenChildNodeTrace.class, this, TracePackage.TRACE_MODEL__CHILD_NODE_TRACES);
+ }
+ return childNodeTraces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getLinkTraces() {
+ if (linkTraces == null) {
+ linkTraces = new EObjectContainmentEList(GenLinkTrace.class, this, TracePackage.TRACE_MODEL__LINK_TRACES);
+ }
+ return linkTraces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getToolGroupTraces() {
+ if (toolGroupTraces == null) {
+ toolGroupTraces = new EObjectContainmentEList(ToolGroupTrace.class, this, TracePackage.TRACE_MODEL__TOOL_GROUP_TRACES);
+ }
+ return toolGroupTraces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public GenNodeTrace getNodeTrace(int visualID) {
+ for (Iterator it = getNodeTraces().iterator(); it.hasNext();) {
+ GenNodeTrace nextTrace = (GenNodeTrace) it.next();
+ if (nextTrace.getVisualID() == visualID) {
+ return nextTrace;
+ }
+ }
+ for (Iterator it = getChildNodeTraces().iterator(); it.hasNext();) {
+ GenChildNodeTrace nextTrace = (GenChildNodeTrace) it.next();
+ if (nextTrace.getVisualID() == visualID) {
+ return nextTrace;
+ }
+ }
+
+ throw new IllegalArgumentException("Node trace with id = " + visualID + " was not found");
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public GenLinkTrace getLinkTrace(int visualID) {
+ for (Iterator it = getLinkTraces().iterator(); it.hasNext();) {
+ GenLinkTrace nextTrace = (GenLinkTrace) it.next();
+ if (nextTrace.getVisualID() == visualID) {
+ return nextTrace;
+ }
+ }
+ throw new IllegalArgumentException("Link trace with id = " + visualID + " was not found");
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList getAllAbstractTraces() {
+ Collection result = new ArrayList();
+ result.addAll(getNodeTraces());
+ addNodeChildTraces(result, getNodeTraces());
+
+ result.addAll(getChildNodeTraces());
+ addNodeChildTraces(result, getChildNodeTraces());
+
+ result.addAll(getLinkTraces());
+ for (Iterator it = getLinkTraces().iterator(); it.hasNext();) {
+ GenLinkTrace trace = (GenLinkTrace) it.next();
+ result.addAll(trace.getLinkLabelTraces());
+ }
+
+ result.addAll(getToolGroupTraces());
+ return new BasicEList.UnmodifiableEList(result.size(), result.toArray());
+ }
+
+ private void addNodeChildTraces(Collection collection, Collection nodeTraces) {
+ for (Iterator it = nodeTraces.iterator(); it.hasNext();) {
+ GenNodeTrace trace = (GenNodeTrace) it.next();
+ collection.addAll(trace.getCompartmentTraces());
+ collection.addAll(trace.getNodeLabelTraces());
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void purgeUnprocessedTraces() {
+ for (Iterator it = getAllAbstractTraces().iterator(); it.hasNext();) {
+ AbstractTrace trace = (AbstractTrace) it.next();
+ if (trace.isProcessed()) {
+ continue;
+ }
+ GmfTracePlugin.getInstance().logDebugInfo("Removing unused trace with visual ID = " + trace.getVisualID());
+ switch (trace.eClass().getClassifierID()) {
+ case TracePackage.GEN_NODE_TRACE:
+ getNodeTraces().remove(trace);
+ break;
+ case TracePackage.GEN_CHILD_NODE_TRACE:
+ getChildNodeTraces().remove(trace);
+ break;
+ case TracePackage.GEN_LINK_TRACE:
+ getLinkTraces().remove(trace);
+ break;
+ case TracePackage.TOOL_GROUP_TRACE:
+ getToolGroupTraces().remove(trace);
+ break;
+ case TracePackage.GEN_NODE_LABEL_TRACE:
+ ((GenNodeTrace) trace.eContainer()).getNodeLabelTraces().remove(trace);
+ break;
+ case TracePackage.GEN_COMPARTMENT_TRACE:
+ ((GenNodeTrace) trace.eContainer()).getCompartmentTraces().remove(trace);
+ break;
+ case TracePackage.GEN_LINK_LABEL_TRACE:
+ ((GenLinkTrace) trace.eContainer()).getLinkLabelTraces().remove(trace);
+ break;
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TracePackage.TRACE_MODEL__NODE_TRACES:
+ return ((InternalEList)getNodeTraces()).basicRemove(otherEnd, msgs);
+ case TracePackage.TRACE_MODEL__CHILD_NODE_TRACES:
+ return ((InternalEList)getChildNodeTraces()).basicRemove(otherEnd, msgs);
+ case TracePackage.TRACE_MODEL__LINK_TRACES:
+ return ((InternalEList)getLinkTraces()).basicRemove(otherEnd, msgs);
+ case TracePackage.TRACE_MODEL__TOOL_GROUP_TRACES:
+ return ((InternalEList)getToolGroupTraces()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TracePackage.TRACE_MODEL__NODE_TRACES:
+ return getNodeTraces();
+ case TracePackage.TRACE_MODEL__CHILD_NODE_TRACES:
+ return getChildNodeTraces();
+ case TracePackage.TRACE_MODEL__LINK_TRACES:
+ return getLinkTraces();
+ case TracePackage.TRACE_MODEL__TOOL_GROUP_TRACES:
+ return getToolGroupTraces();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TracePackage.TRACE_MODEL__NODE_TRACES:
+ getNodeTraces().clear();
+ getNodeTraces().addAll((Collection)newValue);
+ return;
+ case TracePackage.TRACE_MODEL__CHILD_NODE_TRACES:
+ getChildNodeTraces().clear();
+ getChildNodeTraces().addAll((Collection)newValue);
+ return;
+ case TracePackage.TRACE_MODEL__LINK_TRACES:
+ getLinkTraces().clear();
+ getLinkTraces().addAll((Collection)newValue);
+ return;
+ case TracePackage.TRACE_MODEL__TOOL_GROUP_TRACES:
+ getToolGroupTraces().clear();
+ getToolGroupTraces().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TracePackage.TRACE_MODEL__NODE_TRACES:
+ getNodeTraces().clear();
+ return;
+ case TracePackage.TRACE_MODEL__CHILD_NODE_TRACES:
+ getChildNodeTraces().clear();
+ return;
+ case TracePackage.TRACE_MODEL__LINK_TRACES:
+ getLinkTraces().clear();
+ return;
+ case TracePackage.TRACE_MODEL__TOOL_GROUP_TRACES:
+ getToolGroupTraces().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TracePackage.TRACE_MODEL__NODE_TRACES:
+ return nodeTraces != null && !nodeTraces.isEmpty();
+ case TracePackage.TRACE_MODEL__CHILD_NODE_TRACES:
+ return childNodeTraces != null && !childNodeTraces.isEmpty();
+ case TracePackage.TRACE_MODEL__LINK_TRACES:
+ return linkTraces != null && !linkTraces.isEmpty();
+ case TracePackage.TRACE_MODEL__TOOL_GROUP_TRACES:
+ return toolGroupTraces != null && !toolGroupTraces.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TraceModelImpl \ No newline at end of file
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TracePackageImpl.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TracePackageImpl.java
new file mode 100644
index 000000000..ff7732f28
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/impl/TracePackageImpl.java
@@ -0,0 +1,551 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.impl;
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
+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;
+import org.eclipse.emf.ocl.expressions.ExpressionsPackage;
+import org.eclipse.emf.ocl.query.QueryPackage;
+import org.eclipse.emf.ocl.types.TypesPackage;
+import org.eclipse.emf.ocl.uml.UMLPackage;
+import org.eclipse.emf.ocl.utilities.UtilitiesPackage;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.internal.bridge.trace.AbstractTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenChildNodeTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenCompartmentTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenLinkLabelTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenLinkTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenNodeLabelTrace;
+import org.eclipse.gmf.internal.bridge.trace.GenNodeTrace;
+import org.eclipse.gmf.internal.bridge.trace.MatchingTrace;
+import org.eclipse.gmf.internal.bridge.trace.ToolGroupTrace;
+import org.eclipse.gmf.internal.bridge.trace.TraceFactory;
+import org.eclipse.gmf.internal.bridge.trace.TraceModel;
+import org.eclipse.gmf.internal.bridge.trace.TracePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TracePackageImpl extends EPackageImpl implements TracePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass traceModelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass abstractTraceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass matchingTraceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genNodeTraceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genChildNodeTraceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genNodeLabelTraceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genLinkTraceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genCompartmentTraceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genLinkLabelTraceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass toolGroupTraceEClass = 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.gmf.internal.bridge.trace.TracePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private TracePackageImpl() {
+ super(eNS_URI, TraceFactory.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. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static TracePackage init() {
+ if (isInited) return (TracePackage)EPackage.Registry.INSTANCE.getEPackage(TracePackage.eNS_URI);
+
+ // Obtain or create and register package
+ TracePackageImpl theTracePackage = (TracePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof TracePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new TracePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ GenModelPackage.eINSTANCE.eClass();
+ GMFGenPackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ ExpressionsPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+ UtilitiesPackage.eINSTANCE.eClass();
+ QueryPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theTracePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theTracePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theTracePackage.freeze();
+
+ return theTracePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTraceModel() {
+ return traceModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTraceModel_NodeTraces() {
+ return (EReference)traceModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTraceModel_ChildNodeTraces() {
+ return (EReference)traceModelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTraceModel_LinkTraces() {
+ return (EReference)traceModelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTraceModel_ToolGroupTraces() {
+ return (EReference)traceModelEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAbstractTrace() {
+ return abstractTraceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAbstractTrace_VisualID() {
+ return (EAttribute)abstractTraceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAbstractTrace_Processed() {
+ return (EAttribute)abstractTraceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMatchingTrace() {
+ return matchingTraceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMatchingTrace_QueryText() {
+ return (EAttribute)matchingTraceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMatchingTrace_Query() {
+ return (EReference)matchingTraceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenNodeTrace() {
+ return genNodeTraceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenNodeTrace_NodeLabelTraces() {
+ return (EReference)genNodeTraceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenNodeTrace_CompartmentTraces() {
+ return (EReference)genNodeTraceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenChildNodeTrace() {
+ return genChildNodeTraceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenNodeLabelTrace() {
+ return genNodeLabelTraceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenLinkTrace() {
+ return genLinkTraceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenLinkTrace_LinkLabelTraces() {
+ return (EReference)genLinkTraceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenCompartmentTrace() {
+ return genCompartmentTraceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenLinkLabelTrace() {
+ return genLinkLabelTraceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getToolGroupTrace() {
+ return toolGroupTraceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TraceFactory getTraceFactory() {
+ return (TraceFactory)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
+ traceModelEClass = createEClass(TRACE_MODEL);
+ createEReference(traceModelEClass, TRACE_MODEL__NODE_TRACES);
+ createEReference(traceModelEClass, TRACE_MODEL__CHILD_NODE_TRACES);
+ createEReference(traceModelEClass, TRACE_MODEL__LINK_TRACES);
+ createEReference(traceModelEClass, TRACE_MODEL__TOOL_GROUP_TRACES);
+
+ abstractTraceEClass = createEClass(ABSTRACT_TRACE);
+ createEAttribute(abstractTraceEClass, ABSTRACT_TRACE__VISUAL_ID);
+ createEAttribute(abstractTraceEClass, ABSTRACT_TRACE__PROCESSED);
+
+ matchingTraceEClass = createEClass(MATCHING_TRACE);
+ createEAttribute(matchingTraceEClass, MATCHING_TRACE__QUERY_TEXT);
+ createEReference(matchingTraceEClass, MATCHING_TRACE__QUERY);
+
+ genNodeTraceEClass = createEClass(GEN_NODE_TRACE);
+ createEReference(genNodeTraceEClass, GEN_NODE_TRACE__NODE_LABEL_TRACES);
+ createEReference(genNodeTraceEClass, GEN_NODE_TRACE__COMPARTMENT_TRACES);
+
+ genChildNodeTraceEClass = createEClass(GEN_CHILD_NODE_TRACE);
+
+ genNodeLabelTraceEClass = createEClass(GEN_NODE_LABEL_TRACE);
+
+ genLinkTraceEClass = createEClass(GEN_LINK_TRACE);
+ createEReference(genLinkTraceEClass, GEN_LINK_TRACE__LINK_LABEL_TRACES);
+
+ genCompartmentTraceEClass = createEClass(GEN_COMPARTMENT_TRACE);
+
+ genLinkLabelTraceEClass = createEClass(GEN_LINK_LABEL_TRACE);
+
+ toolGroupTraceEClass = createEClass(TOOL_GROUP_TRACE);
+ }
+
+ /**
+ * <!-- 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
+ QueryPackage theQueryPackage = (QueryPackage)EPackage.Registry.INSTANCE.getEPackage(QueryPackage.eNS_URI);
+ GMFGenPackage theGMFGenPackage = (GMFGenPackage)EPackage.Registry.INSTANCE.getEPackage(GMFGenPackage.eNS_URI);
+
+ // Add supertypes to classes
+ matchingTraceEClass.getESuperTypes().add(this.getAbstractTrace());
+ genNodeTraceEClass.getESuperTypes().add(this.getMatchingTrace());
+ genChildNodeTraceEClass.getESuperTypes().add(this.getGenNodeTrace());
+ genNodeLabelTraceEClass.getESuperTypes().add(this.getMatchingTrace());
+ genLinkTraceEClass.getESuperTypes().add(this.getMatchingTrace());
+ genCompartmentTraceEClass.getESuperTypes().add(this.getMatchingTrace());
+ genLinkLabelTraceEClass.getESuperTypes().add(this.getMatchingTrace());
+ toolGroupTraceEClass.getESuperTypes().add(this.getMatchingTrace());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(traceModelEClass, TraceModel.class, "TraceModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTraceModel_NodeTraces(), this.getGenNodeTrace(), null, "nodeTraces", null, 0, -1, TraceModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTraceModel_ChildNodeTraces(), this.getGenChildNodeTrace(), null, "childNodeTraces", null, 0, -1, TraceModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTraceModel_LinkTraces(), this.getGenLinkTrace(), null, "linkTraces", null, 0, -1, TraceModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTraceModel_ToolGroupTraces(), this.getToolGroupTrace(), null, "toolGroupTraces", null, 0, -1, TraceModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ EOperation op = addEOperation(traceModelEClass, this.getGenNodeTrace(), "getNodeTrace", 0, 1);
+ addEParameter(op, ecorePackage.getEInt(), "visualID", 0, 1);
+
+ op = addEOperation(traceModelEClass, this.getGenLinkTrace(), "getLinkTrace", 0, 1);
+ addEParameter(op, ecorePackage.getEInt(), "visualID", 0, 1);
+
+ addEOperation(traceModelEClass, this.getAbstractTrace(), "getAllAbstractTraces", 0, -1);
+
+ addEOperation(traceModelEClass, null, "purgeUnprocessedTraces");
+
+ initEClass(abstractTraceEClass, AbstractTrace.class, "AbstractTrace", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAbstractTrace_VisualID(), ecorePackage.getEInt(), "visualID", null, 0, 1, AbstractTrace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAbstractTrace_Processed(), ecorePackage.getEBoolean(), "processed", "false", 0, 1, AbstractTrace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(matchingTraceEClass, MatchingTrace.class, "MatchingTrace", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getMatchingTrace_QueryText(), ecorePackage.getEString(), "queryText", null, 0, 1, MatchingTrace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getMatchingTrace_Query(), theQueryPackage.getQuery(), null, "query", null, 0, 1, MatchingTrace.class, IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ addEOperation(matchingTraceEClass, theQueryPackage.getQuery(), "createQuery", 0, 1);
+
+ op = addEOperation(matchingTraceEClass, ecorePackage.getEString(), "getEClassComparision", 0, 1);
+ addEParameter(op, ecorePackage.getEString(), "varName", 0, 1);
+ addEParameter(op, ecorePackage.getEClass(), "eClass", 0, 1);
+
+ op = addEOperation(matchingTraceEClass, ecorePackage.getEString(), "getEStructuralFeatureComparison", 0, 1);
+ addEParameter(op, ecorePackage.getEString(), "varName", 0, 1);
+ addEParameter(op, ecorePackage.getEStructuralFeature(), "feature", 0, 1);
+
+ initEClass(genNodeTraceEClass, GenNodeTrace.class, "GenNodeTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getGenNodeTrace_NodeLabelTraces(), this.getGenNodeLabelTrace(), null, "nodeLabelTraces", null, 0, -1, GenNodeTrace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getGenNodeTrace_CompartmentTraces(), this.getGenCompartmentTrace(), null, "compartmentTraces", null, 0, -1, GenNodeTrace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ op = addEOperation(genNodeTraceEClass, null, "setContext");
+ addEParameter(op, theGMFGenPackage.getGenNode(), "genNode", 0, 1);
+
+ initEClass(genChildNodeTraceEClass, GenChildNodeTrace.class, "GenChildNodeTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(genNodeLabelTraceEClass, GenNodeLabelTrace.class, "GenNodeLabelTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ op = addEOperation(genNodeLabelTraceEClass, null, "setContext");
+ addEParameter(op, theGMFGenPackage.getGenNodeLabel(), "genNodeLabel", 0, 1);
+
+ initEClass(genLinkTraceEClass, GenLinkTrace.class, "GenLinkTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getGenLinkTrace_LinkLabelTraces(), this.getGenLinkLabelTrace(), null, "linkLabelTraces", null, 0, -1, GenLinkTrace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ op = addEOperation(genLinkTraceEClass, null, "setContext");
+ addEParameter(op, theGMFGenPackage.getGenLink(), "genLink", 0, 1);
+
+ initEClass(genCompartmentTraceEClass, GenCompartmentTrace.class, "GenCompartmentTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ op = addEOperation(genCompartmentTraceEClass, null, "setContext");
+ addEParameter(op, theGMFGenPackage.getGenCompartment(), "genCompartment", 0, 1);
+
+ initEClass(genLinkLabelTraceEClass, GenLinkLabelTrace.class, "GenLinkLabelTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ op = addEOperation(genLinkLabelTraceEClass, null, "setContext");
+ addEParameter(op, theGMFGenPackage.getGenLinkLabel(), "genLinkLabel", 0, 1);
+
+ initEClass(toolGroupTraceEClass, ToolGroupTrace.class, "ToolGroupTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ op = addEOperation(toolGroupTraceEClass, null, "setContext");
+ addEParameter(op, theGMFGenPackage.getToolGroup(), "toolGroup", 0, 1);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //TracePackageImpl
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/util/TraceAdapterFactory.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/util/TraceAdapterFactory.java
new file mode 100644
index 000000000..068c2e7a9
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/util/TraceAdapterFactory.java
@@ -0,0 +1,273 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.util;
+
+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;
+
+import org.eclipse.gmf.internal.bridge.trace.*;
+
+/**
+ * <!-- 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.gmf.internal.bridge.trace.TracePackage
+ * @generated
+ */
+public class TraceAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static TracePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TraceAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = TracePackage.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
+ */
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch the delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TraceSwitch modelSwitch =
+ new TraceSwitch() {
+ public Object caseTraceModel(TraceModel object) {
+ return createTraceModelAdapter();
+ }
+ public Object caseAbstractTrace(AbstractTrace object) {
+ return createAbstractTraceAdapter();
+ }
+ public Object caseMatchingTrace(MatchingTrace object) {
+ return createMatchingTraceAdapter();
+ }
+ public Object caseGenNodeTrace(GenNodeTrace object) {
+ return createGenNodeTraceAdapter();
+ }
+ public Object caseGenChildNodeTrace(GenChildNodeTrace object) {
+ return createGenChildNodeTraceAdapter();
+ }
+ public Object caseGenNodeLabelTrace(GenNodeLabelTrace object) {
+ return createGenNodeLabelTraceAdapter();
+ }
+ public Object caseGenLinkTrace(GenLinkTrace object) {
+ return createGenLinkTraceAdapter();
+ }
+ public Object caseGenCompartmentTrace(GenCompartmentTrace object) {
+ return createGenCompartmentTraceAdapter();
+ }
+ public Object caseGenLinkLabelTrace(GenLinkLabelTrace object) {
+ return createGenLinkLabelTraceAdapter();
+ }
+ public Object caseToolGroupTrace(ToolGroupTrace object) {
+ return createToolGroupTraceAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.internal.bridge.trace.TraceModel <em>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.gmf.internal.bridge.trace.TraceModel
+ * @generated
+ */
+ public Adapter createTraceModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.internal.bridge.trace.AbstractTrace <em>Abstract Trace</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.gmf.internal.bridge.trace.AbstractTrace
+ * @generated
+ */
+ public Adapter createAbstractTraceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.internal.bridge.trace.MatchingTrace <em>Matching Trace</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.gmf.internal.bridge.trace.MatchingTrace
+ * @generated
+ */
+ public Adapter createMatchingTraceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.internal.bridge.trace.GenNodeTrace <em>Gen Node Trace</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.gmf.internal.bridge.trace.GenNodeTrace
+ * @generated
+ */
+ public Adapter createGenNodeTraceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.internal.bridge.trace.GenChildNodeTrace <em>Gen Child Node Trace</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.gmf.internal.bridge.trace.GenChildNodeTrace
+ * @generated
+ */
+ public Adapter createGenChildNodeTraceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.internal.bridge.trace.GenNodeLabelTrace <em>Gen Node Label Trace</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.gmf.internal.bridge.trace.GenNodeLabelTrace
+ * @generated
+ */
+ public Adapter createGenNodeLabelTraceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.internal.bridge.trace.GenLinkTrace <em>Gen Link Trace</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.gmf.internal.bridge.trace.GenLinkTrace
+ * @generated
+ */
+ public Adapter createGenLinkTraceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.internal.bridge.trace.GenCompartmentTrace <em>Gen Compartment Trace</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.gmf.internal.bridge.trace.GenCompartmentTrace
+ * @generated
+ */
+ public Adapter createGenCompartmentTraceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.internal.bridge.trace.GenLinkLabelTrace <em>Gen Link Label Trace</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.gmf.internal.bridge.trace.GenLinkLabelTrace
+ * @generated
+ */
+ public Adapter createGenLinkLabelTraceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.gmf.internal.bridge.trace.ToolGroupTrace <em>Tool Group Trace</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.gmf.internal.bridge.trace.ToolGroupTrace
+ * @generated
+ */
+ public Adapter createToolGroupTraceAdapter() {
+ 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;
+ }
+
+} //TraceAdapterFactory
diff --git a/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/util/TraceSwitch.java b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/util/TraceSwitch.java
new file mode 100644
index 000000000..c6214c36d
--- /dev/null
+++ b/plugins/org.eclipse.gmf.bridge.trace/src/org/eclipse/gmf/internal/bridge/trace/util/TraceSwitch.java
@@ -0,0 +1,335 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.gmf.internal.bridge.trace.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.gmf.internal.bridge.trace.*;
+
+/**
+ * <!-- 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.gmf.internal.bridge.trace.TracePackage
+ * @generated
+ */
+public class TraceSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static TracePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TraceSwitch() {
+ if (modelPackage == null) {
+ modelPackage = TracePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case TracePackage.TRACE_MODEL: {
+ TraceModel traceModel = (TraceModel)theEObject;
+ Object result = caseTraceModel(traceModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TracePackage.ABSTRACT_TRACE: {
+ AbstractTrace abstractTrace = (AbstractTrace)theEObject;
+ Object result = caseAbstractTrace(abstractTrace);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TracePackage.MATCHING_TRACE: {
+ MatchingTrace matchingTrace = (MatchingTrace)theEObject;
+ Object result = caseMatchingTrace(matchingTrace);
+ if (result == null) result = caseAbstractTrace(matchingTrace);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TracePackage.GEN_NODE_TRACE: {
+ GenNodeTrace genNodeTrace = (GenNodeTrace)theEObject;
+ Object result = caseGenNodeTrace(genNodeTrace);
+ if (result == null) result = caseMatchingTrace(genNodeTrace);
+ if (result == null) result = caseAbstractTrace(genNodeTrace);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TracePackage.GEN_CHILD_NODE_TRACE: {
+ GenChildNodeTrace genChildNodeTrace = (GenChildNodeTrace)theEObject;
+ Object result = caseGenChildNodeTrace(genChildNodeTrace);
+ if (result == null) result = caseGenNodeTrace(genChildNodeTrace);
+ if (result == null) result = caseMatchingTrace(genChildNodeTrace);
+ if (result == null) result = caseAbstractTrace(genChildNodeTrace);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TracePackage.GEN_NODE_LABEL_TRACE: {
+ GenNodeLabelTrace genNodeLabelTrace = (GenNodeLabelTrace)theEObject;
+ Object result = caseGenNodeLabelTrace(genNodeLabelTrace);
+ if (result == null) result = caseMatchingTrace(genNodeLabelTrace);
+ if (result == null) result = caseAbstractTrace(genNodeLabelTrace);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TracePackage.GEN_LINK_TRACE: {
+ GenLinkTrace genLinkTrace = (GenLinkTrace)theEObject;
+ Object result = caseGenLinkTrace(genLinkTrace);
+ if (result == null) result = caseMatchingTrace(genLinkTrace);
+ if (result == null) result = caseAbstractTrace(genLinkTrace);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TracePackage.GEN_COMPARTMENT_TRACE: {
+ GenCompartmentTrace genCompartmentTrace = (GenCompartmentTrace)theEObject;
+ Object result = caseGenCompartmentTrace(genCompartmentTrace);
+ if (result == null) result = caseMatchingTrace(genCompartmentTrace);
+ if (result == null) result = caseAbstractTrace(genCompartmentTrace);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TracePackage.GEN_LINK_LABEL_TRACE: {
+ GenLinkLabelTrace genLinkLabelTrace = (GenLinkLabelTrace)theEObject;
+ Object result = caseGenLinkLabelTrace(genLinkLabelTrace);
+ if (result == null) result = caseMatchingTrace(genLinkLabelTrace);
+ if (result == null) result = caseAbstractTrace(genLinkLabelTrace);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TracePackage.TOOL_GROUP_TRACE: {
+ ToolGroupTrace toolGroupTrace = (ToolGroupTrace)theEObject;
+ Object result = caseToolGroupTrace(toolGroupTrace);
+ if (result == null) result = caseMatchingTrace(toolGroupTrace);
+ if (result == null) result = caseAbstractTrace(toolGroupTrace);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>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 interpretting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseTraceModel(TraceModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Abstract Trace</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 interpretting the object as an instance of '<em>Abstract Trace</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseAbstractTrace(AbstractTrace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Matching Trace</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 interpretting the object as an instance of '<em>Matching Trace</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseMatchingTrace(MatchingTrace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Gen Node Trace</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 interpretting the object as an instance of '<em>Gen Node Trace</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseGenNodeTrace(GenNodeTrace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Gen Child Node Trace</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 interpretting the object as an instance of '<em>Gen Child Node Trace</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseGenChildNodeTrace(GenChildNodeTrace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Gen Node Label Trace</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 interpretting the object as an instance of '<em>Gen Node Label Trace</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseGenNodeLabelTrace(GenNodeLabelTrace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Gen Link Trace</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 interpretting the object as an instance of '<em>Gen Link Trace</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseGenLinkTrace(GenLinkTrace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Gen Compartment Trace</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 interpretting the object as an instance of '<em>Gen Compartment Trace</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseGenCompartmentTrace(GenCompartmentTrace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Gen Link Label Trace</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 interpretting the object as an instance of '<em>Gen Link Label Trace</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseGenLinkLabelTrace(GenLinkLabelTrace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Tool Group Trace</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 interpretting the object as an instance of '<em>Tool Group Trace</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseToolGroupTrace(ToolGroupTrace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting 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 interpretting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //TraceSwitch

Back to the top