Merge branch 'master' of https://sedlund@git.eclipse.org/r/stem/org.eclipse.stem.git
diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/common/impl/DublinCoreImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/common/impl/DublinCoreImpl.java
index 79e1a45..06f3b3c 100644
--- a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/common/impl/DublinCoreImpl.java
+++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/common/impl/DublinCoreImpl.java
@@ -1548,7 +1548,7 @@
if (getCreated() != null && !getCreated().equals("")) {
result.append("created=\"");
result.append(getCreated().trim());
- result.append("\" ");
+ result.append("\" ");
}
if (getLicense() != null && !getLicense().equals("")) {
result.append("license=\"");
@@ -1590,6 +1590,40 @@
public static String createISO8601DateString(final Date date) {
return (new SimpleDateFormat("yyyy-MM-dd")).format(date);
} // createISO8601DateString
+
+ /**
+ * Create a date string that conforms to ISO 8601 <a
+ * href="http://www.w3.org/TR/NOTE-datetime">
+ * http://www.w3.org/TR/NOTE-datetime</a>.
+ * <ul>
+ * <li>Example:</li>
+ * 2006-03-29
+ * </ul>
+ *
+ * @see #getDate()
+ * @see #getCreated()
+ * @see #getValid()
+ */
+ public static String createISO8601DateStringMillis(final Date date) {
+ return (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")).format(date);
+ } // createISO8601DateString
+
+ /**
+ * Create a date string that conforms to ISO 8601 <a
+ * href="http://www.w3.org/TR/NOTE-datetime">
+ * http://www.w3.org/TR/NOTE-datetime</a>.
+ * <ul>
+ * <li>Example:</li>
+ * 2006-03-29
+ * </ul>
+ *
+ * @see #getDate()
+ * @see #getCreated()
+ * @see #getValid()
+ */
+ public static String createISO8601DateStringSeconds(final Date date) {
+ return (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss")).format(date);
+ } // createISO8601DateString
/**
* Create a Date from a string that conforms to ISO 8601 <a
diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/graph/impl/DynamicEdgeLabelImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/graph/impl/DynamicEdgeLabelImpl.java
index 8a98c9b..8cab965 100644
--- a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/graph/impl/DynamicEdgeLabelImpl.java
+++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/graph/impl/DynamicEdgeLabelImpl.java
@@ -26,7 +26,7 @@
//import org.eclipse.stem.core.model.Decorator;
//import org.eclipse.stem.core.model.ModelPackage;
-/**
+/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Dynamic Edge Label</b></em>'.
* <!-- end-user-doc -->
diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/graph/impl/DynamicLabelImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/graph/impl/DynamicLabelImpl.java
index 8df5397..4d95db5 100644
--- a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/graph/impl/DynamicLabelImpl.java
+++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/graph/impl/DynamicLabelImpl.java
@@ -231,7 +231,7 @@
* @generated NOT
*/
public void switchToNextValue() {
- assert isNextValueValid();
+ if (!isNextValueValid()) return;
// This is the old code causing
// an inverse removal and attachment
diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/logger/provider/LoggerItemProvider.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/logger/provider/LoggerItemProvider.java
index add40e5..d9e4dd2 100644
--- a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/logger/provider/LoggerItemProvider.java
+++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/logger/provider/LoggerItemProvider.java
@@ -13,7 +13,6 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -22,7 +21,6 @@
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.core.common.provider.CoreEditPlugin;
import org.eclipse.stem.core.common.provider.IdentifiableItemProvider;
-import org.eclipse.stem.core.logger.Logger;
/**
* This is the item provider adapter for a {@link org.eclipse.stem.core.logger.Logger} object.
@@ -78,15 +76,11 @@
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
@Override
public String getText(Object object) {
- URI labelValue = ((Logger)object).getURI();
- String label = labelValue == null ? null : labelValue.toString();
- return label == null || label.length() == 0 ?
- getString("_UI_Logger_type") : //$NON-NLS-1$
- getString("_UI_Logger_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ return super.getText(object);
}
/**
diff --git a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/scenario/impl/ScenarioImpl.java b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/scenario/impl/ScenarioImpl.java
index d7935a7..40ee631 100644
--- a/core/org.eclipse.stem.core/src/org/eclipse/stem/core/scenario/impl/ScenarioImpl.java
+++ b/core/org.eclipse.stem.core/src/org/eclipse/stem/core/scenario/impl/ScenarioImpl.java
@@ -13,7 +13,10 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.Iterator;
+import java.util.Map.Entry;
+import java.util.Set;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
@@ -31,6 +34,8 @@
import org.eclipse.stem.core.common.impl.IdentifiableFilterImpl;
import org.eclipse.stem.core.common.impl.IdentifiableImpl;
import org.eclipse.stem.core.graph.Graph;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.NodeLabel;
import org.eclipse.stem.core.graph.UnresolvedIdentifiable;
import org.eclipse.stem.core.logger.Logger;
import org.eclipse.stem.core.model.Decorator;
@@ -38,6 +43,7 @@
import org.eclipse.stem.core.model.Model;
import org.eclipse.stem.core.model.ModelPackage;
import org.eclipse.stem.core.model.STEMTime;
+import org.eclipse.stem.core.model.TransformationDecorator;
import org.eclipse.stem.core.scenario.Scenario;
import org.eclipse.stem.core.scenario.ScenarioInitializationException;
import org.eclipse.stem.core.scenario.ScenarioPackage;
@@ -424,14 +430,37 @@
ArrayList<Decorator>intDecorators = new ArrayList<Decorator>();
ArrayList<Decorator>otherDecorators = new ArrayList<Decorator>();
+ Set<URI> initialDecoratorUris = new HashSet<URI>();
+ getAllIntegrationDecoratorsFromModel(getModel(), initialDecoratorUris);
+
for (final Iterator<Decorator> graphDecoratorIter = getCanonicalGraph().getDecorators()
.iterator(); graphDecoratorIter.hasNext();) {
final Decorator decorator = graphDecoratorIter
.next();
- if(decorator instanceof IntegrationDecorator)intDecorators.add(decorator);
- else otherDecorators.add(decorator);
+
+ boolean remove = true;
+ if (decorator instanceof IntegrationDecorator &&
+ !(decorator instanceof TransformationDecorator)) {
+ for (URI uri : initialDecoratorUris) {
+ if (uri != null && decorator.getURI() != null && uri.equals(decorator.getURI())) {
+ remove = false;
+ break;
+ }
+ }
+ if (remove) {
+ graphDecoratorIter.remove();
+ continue;
+ }
+
+ }
+
+ if (decorator instanceof IntegrationDecorator) {
+ intDecorators.add(decorator);
+ } else {
+ otherDecorators.add(decorator);
+ }
}
- for(Decorator decorator:intDecorators){
+ for(Decorator decorator : intDecorators){
// Is the Decorator enabled?
if (decorator.isEnabled()) {
// Yes
@@ -450,10 +479,60 @@
// Reset the solver
} // for each decorator
+ pruneLabels();
getSolver().reset();
}// reset
/**
+ * Removes labels whose decorator is not contained within the canonical graph.
+ * This is a clean up step for returning the scenario back to initial state
+ * during a reset
+ */
+ private void pruneLabels() {
+ final EList<Decorator> currentDecorators = getCanonicalGraph().getDecorators();
+ for (final Iterator<Entry<URI,NodeLabel>> nodeIter = getCanonicalGraph().getNodeLabels()
+ .iterator(); nodeIter.hasNext();) {
+ final NodeLabel label = nodeIter.next().getValue();
+ if (label instanceof IntegrationLabel) {
+ Decorator d = ((IntegrationLabel)label).getDecorator();
+ if (!currentDecorators.contains(d)) {
+ nodeIter.remove();
+ }
+ }
+ }
+ }
+
+ /**
+ * Returns a unique set of {@link URI}s containing all {@link IntegrationDecorator} instances
+ * from the underlying {@link Model} list of node, edge, and graph decorators.
+ * @param model The STEM {@link Model} object to search
+ * @param filtered The filtered list of {@link Model} {@link URI}s
+ */
+ private static void getAllIntegrationDecoratorsFromModel(Model model, Set<URI> filtered) {
+ filterIntegrationDecorators(model.getNodeDecorators(), filtered);
+ filterIntegrationDecorators(model.getEdgeDecorators(), filtered);
+ filterIntegrationDecorators(model.getGraphDecorators(), filtered);
+ for (Model childModel : model.getModels()) {
+ getAllIntegrationDecoratorsFromModel(childModel, filtered);
+ }
+ }
+
+ /**
+ * Filter {@link IntegrationDecorator} instances and add the associated {@link URI} to
+ * from the list of {@link Decorator}s.
+ *
+ * @param decorators
+ * @param filtered
+ */
+ private static void filterIntegrationDecorators(EList<? extends Decorator> decorators, Set<URI> filtered) {
+ for (Decorator d : decorators) {
+ if (d instanceof IntegrationDecorator) {
+ filtered.add(d.getURI());
+ }
+ }
+ }
+
+ /**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated NOT
diff --git a/core/org.eclipse.stem.definitions/META-INF/MANIFEST.MF b/core/org.eclipse.stem.definitions/META-INF/MANIFEST.MF
index 39d4084..c1462e1 100644
--- a/core/org.eclipse.stem.definitions/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.stem.definitions/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.stem.definitions; singleton:=true
+Bundle-SymbolicName: org.eclipse.stem.definitions;singleton:=true
Bundle-Version: 3.0.0.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.stem.definitions.Activator
@@ -15,6 +15,7 @@
org.eclipse.stem.definitions.adapters.spatial.geo.preferences,
org.eclipse.stem.definitions.edges,
org.eclipse.stem.definitions.edges.impl,
+ org.eclipse.stem.definitions.edges.presentation,
org.eclipse.stem.definitions.edges.provider,
org.eclipse.stem.definitions.edges.util,
org.eclipse.stem.definitions.functions,
@@ -36,7 +37,12 @@
org.eclipse.stem.definitions.types.util
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.emf.ecore;visibility:=reexport,
org.eclipse.stem.core;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
org.eclipse.stem.geography,
org.eclipse.ui.ide;visibility:=reexport
Bundle-ActivationPolicy: lazy
diff --git a/core/org.eclipse.stem.definitions/icons/full/obj16/DoubleLabelValue.gif b/core/org.eclipse.stem.definitions/icons/full/obj16/DoubleLabelValue.gif
new file mode 100644
index 0000000..48e3cf2
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/icons/full/obj16/DoubleLabelValue.gif
Binary files differ
diff --git a/core/org.eclipse.stem.definitions/icons/full/obj16/GenericLabelValue.gif b/core/org.eclipse.stem.definitions/icons/full/obj16/GenericLabelValue.gif
new file mode 100644
index 0000000..cb1755a
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/icons/full/obj16/GenericLabelValue.gif
Binary files differ
diff --git a/core/org.eclipse.stem.definitions/icons/full/obj16/IntegerLabelValue.gif b/core/org.eclipse.stem.definitions/icons/full/obj16/IntegerLabelValue.gif
new file mode 100644
index 0000000..b3643da
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/icons/full/obj16/IntegerLabelValue.gif
Binary files differ
diff --git a/core/org.eclipse.stem.definitions/icons/full/obj16/KeyValueLabelValue.gif b/core/org.eclipse.stem.definitions/icons/full/obj16/KeyValueLabelValue.gif
new file mode 100644
index 0000000..90d10f9
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/icons/full/obj16/KeyValueLabelValue.gif
Binary files differ
diff --git a/core/org.eclipse.stem.definitions/icons/full/obj16/LongLabelValue.gif b/core/org.eclipse.stem.definitions/icons/full/obj16/LongLabelValue.gif
new file mode 100644
index 0000000..89ad5da
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/icons/full/obj16/LongLabelValue.gif
Binary files differ
diff --git a/core/org.eclipse.stem.definitions/icons/full/obj16/StringLabelValue.gif b/core/org.eclipse.stem.definitions/icons/full/obj16/StringLabelValue.gif
new file mode 100644
index 0000000..afb82ea
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/icons/full/obj16/StringLabelValue.gif
Binary files differ
diff --git a/core/org.eclipse.stem.definitions/model/definitions.genmodel b/core/org.eclipse.stem.definitions/model/definitions.genmodel
index 3f78f0d..1e549a5 100644
--- a/core/org.eclipse.stem.definitions/model/definitions.genmodel
+++ b/core/org.eclipse.stem.definitions/model/definitions.genmodel
@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0"
- xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
- xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText=""
- modelDirectory="/org.eclipse.stem.definitions/src" editDirectory="/org.eclipse.stem.definitions/src"
- editorDirectory="/org.eclipse.stem.definitions/src" modelPluginID="org.eclipse.stem.definitions"
- redirection="" modelName="Definitions" nonNLSMarkers="true" testsDirectory="/org.eclipse.stem.tests.definitions/src"
- importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
- runtimeVersion="2.6" usedGenPackages="../../org.eclipse.stem.core/model/core.genmodel#//graph ../../org.eclipse.stem.core/model/core.genmodel#//common ../../org.eclipse.stem.core/model/core.genmodel#//model platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.stem.core/model/core.genmodel#//modifier ../../org.eclipse.stem.core/model/core.genmodel#//scenario ../../org.eclipse.stem.core/model/core.genmodel#//sequencer ../../org.eclipse.stem.core/model/core.genmodel#//solver ../../org.eclipse.stem.core/model/core.genmodel#//logger">
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="" modelDirectory="/org.eclipse.stem.definitions/src"
+ editDirectory="/org.eclipse.stem.definitions/src" editorDirectory="/org.eclipse.stem.definitions/src"
+ modelPluginID="org.eclipse.stem.definitions" redirection="" modelName="Definitions"
+ nonNLSMarkers="true" testsDirectory="/org.eclipse.stem.tests.definitions/src"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"
+ runtimeVersion="2.9" usedGenPackages="../../org.eclipse.stem.core/model/core.genmodel#//graph ../../org.eclipse.stem.core/model/core.genmodel#//common ../../org.eclipse.stem.core/model/core.genmodel#//model platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.stem.core/model/core.genmodel#//modifier ../../org.eclipse.stem.core/model/core.genmodel#//scenario ../../org.eclipse.stem.core/model/core.genmodel#//sequencer ../../org.eclipse.stem.core/model/core.genmodel#//solver ../../org.eclipse.stem.core/model/core.genmodel#//logger">
<foreignModel>edges.ecore</foreignModel>
<foreignModel>labels.ecore</foreignModel>
<foreignModel>nodes.ecore</foreignModel>
@@ -128,6 +127,18 @@
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute labels.ecore#//EarthScienceLabelValue/range"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute labels.ecore#//EarthScienceLabelValue/validYear"/>
</genClasses>
+ <genClasses ecoreClass="labels.ecore#//GenericLabelValue">
+ <genTypeParameters ecoreTypeParameter="labels.ecore#//GenericLabelValue/T"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute labels.ecore#//GenericLabelValue/value"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute labels.ecore#//GenericLabelValue/unit"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute labels.ecore#//GenericLabelValue/measure"/>
+ <genOperations ecoreOperation="labels.ecore#//GenericLabelValue/getJavaTypeClass"/>
+ </genClasses>
+ <genClasses ecoreClass="labels.ecore#//DoubleLabelValue"/>
+ <genClasses ecoreClass="labels.ecore#//IntegerLabelValue"/>
+ <genClasses ecoreClass="labels.ecore#//LongLabelValue"/>
+ <genClasses ecoreClass="labels.ecore#//StringLabelValue"/>
+ <genClasses ecoreClass="labels.ecore#//KeyValueLabelValue"/>
</genPackages>
<genPackages prefix="Nodes" basePackage="org.eclipse.stem.definitions" disposableProviderFactory="true"
generateExampleClass="false" multipleEditorPages="false" generateModelWizard="false"
diff --git a/core/org.eclipse.stem.definitions/model/labels.ecore b/core/org.eclipse.stem.definitions/model/labels.ecore
index 33b8c9d..a3a6559 100644
--- a/core/org.eclipse.stem.definitions/model/labels.ecore
+++ b/core/org.eclipse.stem.definitions/model/labels.ecore
@@ -126,4 +126,45 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="validYear" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
defaultValueLiteral="0"/>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenericLabelValue" eSuperTypes="../../org.eclipse.stem.core/model/graph.ecore#//LabelValue">
+ <eTypeParameters name="T"/>
+ <eOperations name="getJavaTypeClass">
+ <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
+ <eTypeArguments/>
+ </eGenericType>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value">
+ <eGenericType eTypeParameter="#//GenericLabelValue/T"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="measure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DoubleLabelValue">
+ <eGenericSuperTypes eClassifier="#//GenericLabelValue">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ </eGenericSuperTypes>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IntegerLabelValue">
+ <eGenericSuperTypes eClassifier="#//GenericLabelValue">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
+ </eGenericSuperTypes>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LongLabelValue">
+ <eGenericSuperTypes eClassifier="#//GenericLabelValue">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELongObject"/>
+ </eGenericSuperTypes>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StringLabelValue">
+ <eGenericSuperTypes eClassifier="#//GenericLabelValue">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eGenericSuperTypes>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="KeyValueLabelValue">
+ <eGenericSuperTypes eClassifier="#//GenericLabelValue">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eTypeArguments eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eTypeArguments/>
+ </eTypeArguments>
+ </eGenericSuperTypes>
+ </eClassifiers>
</ecore:EPackage>
diff --git a/core/org.eclipse.stem.definitions/plugin.properties b/core/org.eclipse.stem.definitions/plugin.properties
index 584f8c7..7a282d9 100644
--- a/core/org.eclipse.stem.definitions/plugin.properties
+++ b/core/org.eclipse.stem.definitions/plugin.properties
Binary files differ
diff --git a/core/org.eclipse.stem.definitions/plugin.xml b/core/org.eclipse.stem.definitions/plugin.xml
index ba8014d..6733e6b 100644
--- a/core/org.eclipse.stem.definitions/plugin.xml
+++ b/core/org.eclipse.stem.definitions/plugin.xml
@@ -46,6 +46,19 @@
org.eclipse.emf.edit.provider.IItemPropertySource"/>
</extension>
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated definitions -->
+ <factory
+ uri="http:///org/eclipse/stem/definitions/types.ecore"
+ class="org.eclipse.stem.definitions.types.provider.TypesItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
<extension point="org.eclipse.emf.ecore.generated_package">
<package
uri="http:///org/eclipse/stem/definitions/edges.ecore"
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/MixingEdge.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/MixingEdge.java
index 84193ac..9eac599 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/MixingEdge.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/MixingEdge.java
@@ -14,10 +14,10 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.edges.MixingEdge#isUseAbsoluteValues <em>Use Absolute Values</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.definitions.edges.EdgesPackage#getMixingEdge()
* @model
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/MixingEdgeLabelValue.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/MixingEdgeLabelValue.java
index 9c3ce3d..55e44bd 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/MixingEdgeLabelValue.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/MixingEdgeLabelValue.java
@@ -15,10 +15,10 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.edges.MixingEdgeLabelValue#getMixingRate <em>Mixing Rate</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.definitions.edges.EdgesPackage#getMixingEdgeLabelValue()
* @model
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/PopulationEdge.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/PopulationEdge.java
index 817c4df..9ac6bb6 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/PopulationEdge.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/PopulationEdge.java
@@ -19,10 +19,10 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.edges.PopulationEdge#getPopulationIdentifier <em>Population Identifier</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.definitions.edges.EdgesPackage#getPopulationEdge()
* @model
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/EdgesFactoryImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/EdgesFactoryImpl.java
index 05c6759..6595fb0 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/EdgesFactoryImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/EdgesFactoryImpl.java
@@ -16,6 +16,7 @@
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.stem.definitions.edges.*;
import org.eclipse.stem.definitions.edges.EdgesFactory;
import org.eclipse.stem.definitions.edges.EdgesPackage;
import org.eclipse.stem.definitions.edges.MigrationEdge;
@@ -41,7 +42,7 @@
*/
public static EdgesFactory init() {
try {
- EdgesFactory theEdgesFactory = (EdgesFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/stem/definitions/edges.ecore"); //$NON-NLS-1$
+ EdgesFactory theEdgesFactory = (EdgesFactory)EPackage.Registry.INSTANCE.getEFactory(EdgesPackage.eNS_URI);
if (theEdgesFactory != null) {
return theEdgesFactory;
}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeImpl.java
index 615cc3d..6e920b3 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeImpl.java
@@ -26,10 +26,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.edges.impl.MigrationEdgeImpl#isUseAbsoluteValues <em>Use Absolute Values</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeLabelImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeLabelImpl.java
index adae48c..3f34659 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeLabelImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeLabelImpl.java
@@ -29,8 +29,6 @@
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Migration Edge Label</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeLabelValueImpl.java
index 0ce430c..a3dcdf1 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeLabelValueImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MigrationEdgeLabelValueImpl.java
@@ -24,11 +24,11 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.edges.impl.MigrationEdgeLabelValueImpl#getMigrationRate <em>Migration Rate</em>}</li>
* <li>{@link org.eclipse.stem.definitions.edges.impl.MigrationEdgeLabelValueImpl#getTimePeriod <em>Time Period</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeImpl.java
index 3ab9bd3..e3873c8 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeImpl.java
@@ -21,11 +21,11 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.edges.impl.MixingEdgeImpl#isUseAbsoluteValues <em>Use Absolute Values</em>}</li>
* </ul>
- * </p>
- *
+ *
* @generated
*/
public class MixingEdgeImpl extends PopulationEdgeImpl implements MixingEdge {
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeLabelImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeLabelImpl.java
index 0637292..ba13883 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeLabelImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeLabelImpl.java
@@ -24,8 +24,6 @@
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Mixing Edge Label</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeLabelValueImpl.java
index 708e8a3..e504f5a 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeLabelValueImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/MixingEdgeLabelValueImpl.java
@@ -19,10 +19,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.edges.impl.MixingEdgeLabelValueImpl#getMixingRate <em>Mixing Rate</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/PopulationEdgeImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/PopulationEdgeImpl.java
index 341f951..a9dd7ee 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/PopulationEdgeImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/impl/PopulationEdgeImpl.java
@@ -24,10 +24,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.edges.impl.PopulationEdgeImpl#getPopulationIdentifier <em>Population Identifier</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/presentation/EdgesActionBarContributor.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/presentation/EdgesActionBarContributor.java
index e93cd88..471429d 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/presentation/EdgesActionBarContributor.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/presentation/EdgesActionBarContributor.java
@@ -206,8 +206,7 @@
//
submenuManager.addMenuListener
(new IMenuListener() {
- @Override
- public void menuAboutToShow(IMenuManager menuManager) {
+ public void menuAboutToShow(IMenuManager menuManager) {
menuManager.updateAll(true);
}
});
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/presentation/EdgesEditor.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/presentation/EdgesEditor.java
index 66ac52b..45db06a 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/presentation/EdgesEditor.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/presentation/EdgesEditor.java
@@ -80,6 +80,7 @@
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ISelectionProvider;
@@ -105,6 +106,7 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
@@ -187,7 +189,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected PropertySheetPage propertySheetPage;
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
/**
* This is the viewer that shadows the selection in the content outline.
@@ -247,7 +249,6 @@
*/
protected IPartListener partListener =
new IPartListener() {
- @Override
public void partActivated(IWorkbenchPart p) {
if (p instanceof ContentOutline) {
if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
@@ -257,7 +258,7 @@
}
}
else if (p instanceof PropertySheet) {
- if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
getActionBarContributor().setActiveEditor(EdgesEditor.this);
handleActivate();
}
@@ -266,19 +267,15 @@
handleActivate();
}
}
- @Override
public void partBroughtToTop(IWorkbenchPart p) {
// Ignore.
}
- @Override
public void partClosed(IWorkbenchPart p) {
// Ignore.
}
- @Override
public void partDeactivated(IWorkbenchPart p) {
// Ignore.
}
- @Override
public void partOpened(IWorkbenchPart p) {
// Ignore.
}
@@ -351,8 +348,7 @@
if (updateProblemIndication) {
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
updateProblemIndication();
}
});
@@ -374,6 +370,15 @@
@Override
protected void unsetTarget(Resource target) {
basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
}
};
@@ -385,7 +390,6 @@
*/
protected IResourceChangeListener resourceChangeListener =
new IResourceChangeListener() {
- @Override
public void resourceChanged(IResourceChangeEvent event) {
IResourceDelta delta = event.getDelta();
try {
@@ -394,7 +398,6 @@
protected Collection<Resource> changedResources = new ArrayList<Resource>();
protected Collection<Resource> removedResources = new ArrayList<Resource>();
- @Override
public boolean visit(IResourceDelta delta) {
if (delta.getResource().getType() == IResource.FILE) {
if (delta.getKind() == IResourceDelta.REMOVED ||
@@ -409,6 +412,7 @@
}
}
}
+ return false;
}
return true;
@@ -429,8 +433,7 @@
if (!visitor.getRemovedResources().isEmpty()) {
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
removedResources.addAll(visitor.getRemovedResources());
if (!isDirty()) {
getSite().getPage().closeEditor(EdgesEditor.this, false);
@@ -442,8 +445,7 @@
if (!visitor.getChangedResources().isEmpty()) {
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
changedResources.addAll(visitor.getChangedResources());
if (getSite().getPage().getActiveEditor() == EdgesEditor.this) {
handleActivate();
@@ -647,12 +649,10 @@
//
commandStack.addCommandStackListener
(new CommandStackListener() {
- @Override
- public void commandStackChanged(final EventObject event) {
+ public void commandStackChanged(final EventObject event) {
getContainer().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
firePropertyChange(IEditorPart.PROP_DIRTY);
// Try to select the affected objects.
@@ -661,8 +661,14 @@
if (mostRecentCommand != null) {
setSelectionToViewer(mostRecentCommand.getAffectedObjects());
}
- if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
- propertySheetPage.refresh();
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed()) {
+ i.remove();
+ }
+ else {
+ propertySheetPage.refresh();
+ }
}
}
});
@@ -698,7 +704,6 @@
if (theSelection != null && !theSelection.isEmpty()) {
Runnable runnable =
new Runnable() {
- @Override
public void run() {
// Try to select the items in the current content viewer of the editor.
//
@@ -801,7 +806,6 @@
new ISelectionChangedListener() {
// This just notifies those things that are affected by the section.
//
- @Override
public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
setSelection(selectionChangedEvent.getSelection());
}
@@ -857,7 +861,7 @@
getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
- Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
}
@@ -897,10 +901,11 @@
* @generated
*/
public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
- if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ boolean hasErrors = !resource.getErrors().isEmpty();
+ if (hasErrors || !resource.getWarnings().isEmpty()) {
BasicDiagnostic basicDiagnostic =
new BasicDiagnostic
- (Diagnostic.ERROR,
+ (hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING,
"org.eclipse.stem.definitions", //$NON-NLS-1$
0,
getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
@@ -956,8 +961,7 @@
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
setActivePage(0);
}
});
@@ -981,8 +985,7 @@
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
updateProblemIndication();
}
});
@@ -1117,8 +1120,7 @@
(new ISelectionChangedListener() {
// This ensures that we handle selections correctly.
//
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
+ public void selectionChanged(SelectionChangedEvent event) {
handleContentOutlineSelection(event.getSelection());
}
});
@@ -1134,23 +1136,22 @@
* @generated
*/
public IPropertySheetPage getPropertySheetPage() {
- if (propertySheetPage == null) {
- propertySheetPage =
- new ExtendedPropertySheetPage(editingDomain) {
- @Override
- public void setSelectionToViewer(List<?> selection) {
- EdgesEditor.this.setSelectionToViewer(selection);
- EdgesEditor.this.setFocus();
- }
+ PropertySheetPage propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ EdgesEditor.this.setSelectionToViewer(selection);
+ EdgesEditor.this.setFocus();
+ }
- @Override
- public void setActionBars(IActionBars actionBars) {
- super.setActionBars(actionBars);
- getActionBarContributor().shareGlobalActions(this, actionBars);
- }
- };
- propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
- }
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
return propertySheetPage;
}
@@ -1205,6 +1206,7 @@
//
final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
// Do the work within an operation because this is a long running activity that modifies the workbench.
//
@@ -1257,7 +1259,7 @@
/**
* This returns whether something has been persisted to the URI of the specified resource.
- * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -1330,20 +1332,9 @@
*/
@Override
public void gotoMarker(IMarker marker) {
- try {
- if (marker.getType().equals(EValidator.MARKER)) {
- String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
- if (uriAttribute != null) {
- URI uri = URI.createURI(uriAttribute);
- EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
- if (eObject != null) {
- setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
- }
- }
- }
- }
- catch (CoreException exception) {
- DefinitionsEditPlugin.INSTANCE.log(exception);
+ List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+ if (!targetObjects.isEmpty()) {
+ setSelectionToViewer(targetObjects);
}
}
@@ -1534,7 +1525,7 @@
getActionBarContributor().setActiveEditor(null);
}
- if (propertySheetPage != null) {
+ for (PropertySheetPage propertySheetPage : propertySheetPages) {
propertySheetPage.dispose();
}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeItemProvider.java
index f48fb4c..2886e32 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeItemProvider.java
@@ -37,13 +37,7 @@
* @generated
*/
public class MigrationEdgeItemProvider
- extends PopulationEdgeItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends PopulationEdgeItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeLabelItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeLabelItemProvider.java
index 39b0508..04d91fe 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeLabelItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeLabelItemProvider.java
@@ -37,13 +37,7 @@
* @generated
*/
public class MigrationEdgeLabelItemProvider
- extends EdgeLabelItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends EdgeLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeLabelValueItemProvider.java
index 759a264..a070609 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeLabelValueItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MigrationEdgeLabelValueItemProvider.java
@@ -38,13 +38,7 @@
* @generated
*/
public class MigrationEdgeLabelValueItemProvider
- extends LabelValueItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends LabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeItemProvider.java
index fcfed9f..fbf4cea 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeItemProvider.java
@@ -12,6 +12,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -31,13 +32,7 @@
* @generated
*/
public class MixingEdgeItemProvider
- extends PopulationEdgeItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends PopulationEdgeItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeLabelItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeLabelItemProvider.java
index 0b464be..be26309 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeLabelItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeLabelItemProvider.java
@@ -13,6 +13,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -22,6 +23,7 @@
import org.eclipse.stem.core.graph.Edge;
import org.eclipse.stem.core.graph.EdgeLabel;
import org.eclipse.stem.core.graph.provider.EdgeLabelItemProvider;
+import org.eclipse.stem.definitions.edges.MixingEdgeLabel;
import org.eclipse.stem.geography.names.GeographicNames;
/**
@@ -31,13 +33,7 @@
* @generated
*/
public class MixingEdgeLabelItemProvider
- extends EdgeLabelItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends EdgeLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeLabelValueItemProvider.java
index 23bc185..b80fbe1 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeLabelValueItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/MixingEdgeLabelValueItemProvider.java
@@ -33,13 +33,7 @@
* @generated
*/
public class MixingEdgeLabelValueItemProvider
- extends LabelValueItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends LabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/PopulationEdgeItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/PopulationEdgeItemProvider.java
index 8634208..efe9eec 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/PopulationEdgeItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/provider/PopulationEdgeItemProvider.java
@@ -41,13 +41,7 @@
* @generated
*/
public class PopulationEdgeItemProvider
- extends EdgeItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends EdgeItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/util/EdgesAdapterFactory.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/util/EdgesAdapterFactory.java
index a4e4f4f..71d4468 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/util/EdgesAdapterFactory.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/util/EdgesAdapterFactory.java
@@ -22,6 +22,7 @@
import org.eclipse.stem.core.graph.Label;
import org.eclipse.stem.core.graph.LabelValue;
import org.eclipse.stem.core.modifier.Modifiable;
+import org.eclipse.stem.definitions.edges.*;
import org.eclipse.stem.definitions.edges.EdgesPackage;
import org.eclipse.stem.definitions.edges.MigrationEdge;
import org.eclipse.stem.definitions.edges.MigrationEdgeLabel;
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/util/EdgesSwitch.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/util/EdgesSwitch.java
index 8b19fe6..748b733 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/util/EdgesSwitch.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/edges/util/EdgesSwitch.java
@@ -15,6 +15,8 @@
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
import org.eclipse.stem.core.common.Identifiable;
import org.eclipse.stem.core.common.SanityChecker;
import org.eclipse.stem.core.graph.Edge;
@@ -22,6 +24,7 @@
import org.eclipse.stem.core.graph.Label;
import org.eclipse.stem.core.graph.LabelValue;
import org.eclipse.stem.core.modifier.Modifiable;
+import org.eclipse.stem.definitions.edges.*;
import org.eclipse.stem.definitions.edges.EdgesPackage;
import org.eclipse.stem.definitions.edges.MigrationEdge;
import org.eclipse.stem.definitions.edges.MigrationEdgeLabel;
@@ -44,7 +47,7 @@
* @see org.eclipse.stem.definitions.edges.EdgesPackage
* @generated
*/
-public class EdgesSwitch<T1> {
+public class EdgesSwitch<T1> extends Switch<T1> {
/**
* The cached model package
* <!-- begin-user-doc -->
@@ -66,14 +69,16 @@
}
/**
- * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * Checks whether this is a switch for the given package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
* @generated
*/
- public T1 doSwitch(EObject theEObject) {
- return doSwitch(theEObject.eClass(), theEObject);
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
}
/**
@@ -83,26 +88,7 @@
* @return the first non-null result returned by a <code>caseXXX</code> call.
* @generated
*/
- protected T1 doSwitch(EClass theEClass, EObject theEObject) {
- if (theEClass.eContainer() == modelPackage) {
- return doSwitch(theEClass.getClassifierID(), theEObject);
- }
- else {
- List<EClass> eSuperTypes = theEClass.getESuperTypes();
- return
- eSuperTypes.isEmpty() ?
- defaultCase(theEObject) :
- doSwitch(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
- */
+ @Override
protected T1 doSwitch(int classifierID, EObject theEObject) {
switch (classifierID) {
case EdgesPackage.MIGRATION_EDGE: {
@@ -420,6 +406,7 @@
* @see #doSwitch(org.eclipse.emf.ecore.EObject)
* @generated
*/
+ @Override
public T1 defaultCase(EObject object) {
return null;
}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/DoubleLabelValue.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/DoubleLabelValue.java
new file mode 100644
index 0000000..94a9d60
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/DoubleLabelValue.java
@@ -0,0 +1,17 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Double Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.definitions.labels.LabelsPackage#getDoubleLabelValue()
+ * @model superTypes="org.eclipse.stem.definitions.labels.GenericLabelValue<org.eclipse.emf.ecore.EDoubleObject>"
+ * @generated
+ */
+public interface DoubleLabelValue extends GenericLabelValue<Double> {
+} // DoubleLabelValue
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/EarthScienceLabel.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/EarthScienceLabel.java
index 0565d80..3cbe146 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/EarthScienceLabel.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/EarthScienceLabel.java
@@ -21,10 +21,10 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.EarthScienceLabel#getCurrentEarthScienceValue <em>Current Earth Science Value</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.definitions.labels.LabelsPackage#getEarthScienceLabel()
* @model
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/EarthScienceLabelValue.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/EarthScienceLabelValue.java
index 1b8c984..aadc8bb 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/EarthScienceLabelValue.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/EarthScienceLabelValue.java
@@ -20,6 +20,7 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.EarthScienceLabelValue#getDataType <em>Data Type</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.EarthScienceLabelValue#getUnits <em>Units</em>}</li>
@@ -35,7 +36,6 @@
* <li>{@link org.eclipse.stem.definitions.labels.EarthScienceLabelValue#getRange <em>Range</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.EarthScienceLabelValue#getValidYear <em>Valid Year</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.definitions.labels.LabelsPackage#getEarthScienceLabelValue()
* @model
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/GenericLabelValue.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/GenericLabelValue.java
new file mode 100644
index 0000000..98c8851
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/GenericLabelValue.java
@@ -0,0 +1,112 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels;
+
+import org.eclipse.stem.core.graph.LabelValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generic Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.stem.definitions.labels.GenericLabelValue#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.stem.definitions.labels.GenericLabelValue#getUnit <em>Unit</em>}</li>
+ * <li>{@link org.eclipse.stem.definitions.labels.GenericLabelValue#getMeasure <em>Measure</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.stem.definitions.labels.LabelsPackage#getGenericLabelValue()
+ * @model
+ * @generated
+ */
+public interface GenericLabelValue<T> extends LabelValue {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(Object)
+ * @see org.eclipse.stem.definitions.labels.LabelsPackage#getGenericLabelValue_Value()
+ * @model
+ * @generated
+ */
+ T getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.definitions.labels.GenericLabelValue#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(T value);
+
+ /**
+ * Returns the value of the '<em><b>Unit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unit</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unit</em>' attribute.
+ * @see #setUnit(String)
+ * @see org.eclipse.stem.definitions.labels.LabelsPackage#getGenericLabelValue_Unit()
+ * @model
+ * @generated
+ */
+ String getUnit();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.definitions.labels.GenericLabelValue#getUnit <em>Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unit</em>' attribute.
+ * @see #getUnit()
+ * @generated
+ */
+ void setUnit(String value);
+
+ /**
+ * Returns the value of the '<em><b>Measure</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Measure</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Measure</em>' attribute.
+ * @see #setMeasure(String)
+ * @see org.eclipse.stem.definitions.labels.LabelsPackage#getGenericLabelValue_Measure()
+ * @model
+ * @generated
+ */
+ String getMeasure();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.definitions.labels.GenericLabelValue#getMeasure <em>Measure</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Measure</em>' attribute.
+ * @see #getMeasure()
+ * @generated
+ */
+ void setMeasure(String value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation"
+ * @generated
+ */
+ Class<?> getJavaTypeClass();
+
+} // GenericLabelValue
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/IntegerLabelValue.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/IntegerLabelValue.java
new file mode 100644
index 0000000..35fd3a1
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/IntegerLabelValue.java
@@ -0,0 +1,17 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Integer Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.definitions.labels.LabelsPackage#getIntegerLabelValue()
+ * @model superTypes="org.eclipse.stem.definitions.labels.GenericLabelValue<org.eclipse.emf.ecore.EIntegerObject>"
+ * @generated
+ */
+public interface IntegerLabelValue extends GenericLabelValue<Integer> {
+} // IntegerLabelValue
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/KeyValueLabelValue.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/KeyValueLabelValue.java
new file mode 100644
index 0000000..5b4cdb6
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/KeyValueLabelValue.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels;
+
+import java.util.Map;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Key Value Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.definitions.labels.LabelsPackage#getKeyValueLabelValue()
+ * @model superTypes="org.eclipse.stem.definitions.labels.GenericLabelValue<org.eclipse.emf.ecore.EMap<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EJavaObject>>"
+ * @generated
+ */
+public interface KeyValueLabelValue extends GenericLabelValue<Map<String, Object>> {
+} // KeyValueLabelValue
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LabelsFactory.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LabelsFactory.java
index c880aac..27a0890 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LabelsFactory.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LabelsFactory.java
@@ -166,6 +166,60 @@
EarthScienceLabelValue createEarthScienceLabelValue();
/**
+ * Returns a new object of class '<em>Generic Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Generic Label Value</em>'.
+ * @generated
+ */
+ <T> GenericLabelValue<T> createGenericLabelValue();
+
+ /**
+ * Returns a new object of class '<em>Double Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Double Label Value</em>'.
+ * @generated
+ */
+ DoubleLabelValue createDoubleLabelValue();
+
+ /**
+ * Returns a new object of class '<em>Integer Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Integer Label Value</em>'.
+ * @generated
+ */
+ IntegerLabelValue createIntegerLabelValue();
+
+ /**
+ * Returns a new object of class '<em>Long Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Long Label Value</em>'.
+ * @generated
+ */
+ LongLabelValue createLongLabelValue();
+
+ /**
+ * Returns a new object of class '<em>String Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>String Label Value</em>'.
+ * @generated
+ */
+ StringLabelValue createStringLabelValue();
+
+ /**
+ * Returns a new object of class '<em>Key Value Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Key Value Label Value</em>'.
+ * @generated
+ */
+ KeyValueLabelValue createKeyValueLabelValue();
+
+ /**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LabelsPackage.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LabelsPackage.java
index 7281f34..d2bbc1f 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LabelsPackage.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LabelsPackage.java
@@ -1271,6 +1271,282 @@
int EARTH_SCIENCE_LABEL_VALUE_FEATURE_COUNT = GraphPackage.LABEL_VALUE_FEATURE_COUNT + 13;
/**
+ * The meta object id for the '{@link org.eclipse.stem.definitions.labels.impl.GenericLabelValueImpl <em>Generic Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.GenericLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getGenericLabelValue()
+ * @generated
+ */
+ int GENERIC_LABEL_VALUE = 16;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_LABEL_VALUE__VALUE = GraphPackage.LABEL_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Unit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_LABEL_VALUE__UNIT = GraphPackage.LABEL_VALUE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Measure</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_LABEL_VALUE__MEASURE = GraphPackage.LABEL_VALUE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Generic Label Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERIC_LABEL_VALUE_FEATURE_COUNT = GraphPackage.LABEL_VALUE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.definitions.labels.impl.DoubleLabelValueImpl <em>Double Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.DoubleLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getDoubleLabelValue()
+ * @generated
+ */
+ int DOUBLE_LABEL_VALUE = 17;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOUBLE_LABEL_VALUE__VALUE = GENERIC_LABEL_VALUE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Unit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOUBLE_LABEL_VALUE__UNIT = GENERIC_LABEL_VALUE__UNIT;
+
+ /**
+ * The feature id for the '<em><b>Measure</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOUBLE_LABEL_VALUE__MEASURE = GENERIC_LABEL_VALUE__MEASURE;
+
+ /**
+ * The number of structural features of the '<em>Double Label Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DOUBLE_LABEL_VALUE_FEATURE_COUNT = GENERIC_LABEL_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.definitions.labels.impl.IntegerLabelValueImpl <em>Integer Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.IntegerLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getIntegerLabelValue()
+ * @generated
+ */
+ int INTEGER_LABEL_VALUE = 18;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_LABEL_VALUE__VALUE = GENERIC_LABEL_VALUE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Unit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_LABEL_VALUE__UNIT = GENERIC_LABEL_VALUE__UNIT;
+
+ /**
+ * The feature id for the '<em><b>Measure</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_LABEL_VALUE__MEASURE = GENERIC_LABEL_VALUE__MEASURE;
+
+ /**
+ * The number of structural features of the '<em>Integer Label Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTEGER_LABEL_VALUE_FEATURE_COUNT = GENERIC_LABEL_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.definitions.labels.impl.LongLabelValueImpl <em>Long Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.LongLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getLongLabelValue()
+ * @generated
+ */
+ int LONG_LABEL_VALUE = 19;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LONG_LABEL_VALUE__VALUE = GENERIC_LABEL_VALUE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Unit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LONG_LABEL_VALUE__UNIT = GENERIC_LABEL_VALUE__UNIT;
+
+ /**
+ * The feature id for the '<em><b>Measure</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LONG_LABEL_VALUE__MEASURE = GENERIC_LABEL_VALUE__MEASURE;
+
+ /**
+ * The number of structural features of the '<em>Long Label Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LONG_LABEL_VALUE_FEATURE_COUNT = GENERIC_LABEL_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.definitions.labels.impl.StringLabelValueImpl <em>String Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.StringLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getStringLabelValue()
+ * @generated
+ */
+ int STRING_LABEL_VALUE = 20;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_LABEL_VALUE__VALUE = GENERIC_LABEL_VALUE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Unit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_LABEL_VALUE__UNIT = GENERIC_LABEL_VALUE__UNIT;
+
+ /**
+ * The feature id for the '<em><b>Measure</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_LABEL_VALUE__MEASURE = GENERIC_LABEL_VALUE__MEASURE;
+
+ /**
+ * The number of structural features of the '<em>String Label Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_LABEL_VALUE_FEATURE_COUNT = GENERIC_LABEL_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.definitions.labels.impl.KeyValueLabelValueImpl <em>Key Value Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.KeyValueLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getKeyValueLabelValue()
+ * @generated
+ */
+ int KEY_VALUE_LABEL_VALUE = 21;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KEY_VALUE_LABEL_VALUE__VALUE = GENERIC_LABEL_VALUE__VALUE;
+
+ /**
+ * The feature id for the '<em><b>Unit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KEY_VALUE_LABEL_VALUE__UNIT = GENERIC_LABEL_VALUE__UNIT;
+
+ /**
+ * The feature id for the '<em><b>Measure</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KEY_VALUE_LABEL_VALUE__MEASURE = GENERIC_LABEL_VALUE__MEASURE;
+
+ /**
+ * The number of structural features of the '<em>Key Value Label Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KEY_VALUE_LABEL_VALUE_FEATURE_COUNT = GENERIC_LABEL_VALUE_FEATURE_COUNT + 0;
+
+ /**
* The meta object id for the '{@link org.eclipse.stem.definitions.labels.RelativePhysicalRelationship <em>Relative Physical Relationship</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1278,7 +1554,7 @@
* @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getRelativePhysicalRelationship()
* @generated
*/
- int RELATIVE_PHYSICAL_RELATIONSHIP = 16;
+ int RELATIVE_PHYSICAL_RELATIONSHIP = 22;
/**
* The meta object id for the '{@link org.eclipse.stem.definitions.labels.TransportMode <em>Transport Mode</em>}' enum.
@@ -1288,7 +1564,7 @@
* @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getTransportMode()
* @generated
*/
- int TRANSPORT_MODE = 17;
+ int TRANSPORT_MODE = 23;
/**
@@ -1903,6 +2179,99 @@
EAttribute getEarthScienceLabelValue_ValidYear();
/**
+ * Returns the meta object for class '{@link org.eclipse.stem.definitions.labels.GenericLabelValue <em>Generic Label Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Generic Label Value</em>'.
+ * @see org.eclipse.stem.definitions.labels.GenericLabelValue
+ * @generated
+ */
+ EClass getGenericLabelValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.definitions.labels.GenericLabelValue#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.stem.definitions.labels.GenericLabelValue#getValue()
+ * @see #getGenericLabelValue()
+ * @generated
+ */
+ EAttribute getGenericLabelValue_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.definitions.labels.GenericLabelValue#getUnit <em>Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Unit</em>'.
+ * @see org.eclipse.stem.definitions.labels.GenericLabelValue#getUnit()
+ * @see #getGenericLabelValue()
+ * @generated
+ */
+ EAttribute getGenericLabelValue_Unit();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.definitions.labels.GenericLabelValue#getMeasure <em>Measure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Measure</em>'.
+ * @see org.eclipse.stem.definitions.labels.GenericLabelValue#getMeasure()
+ * @see #getGenericLabelValue()
+ * @generated
+ */
+ EAttribute getGenericLabelValue_Measure();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.definitions.labels.DoubleLabelValue <em>Double Label Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Double Label Value</em>'.
+ * @see org.eclipse.stem.definitions.labels.DoubleLabelValue
+ * @generated
+ */
+ EClass getDoubleLabelValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.definitions.labels.IntegerLabelValue <em>Integer Label Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Integer Label Value</em>'.
+ * @see org.eclipse.stem.definitions.labels.IntegerLabelValue
+ * @generated
+ */
+ EClass getIntegerLabelValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.definitions.labels.LongLabelValue <em>Long Label Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Long Label Value</em>'.
+ * @see org.eclipse.stem.definitions.labels.LongLabelValue
+ * @generated
+ */
+ EClass getLongLabelValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.definitions.labels.StringLabelValue <em>String Label Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>String Label Value</em>'.
+ * @see org.eclipse.stem.definitions.labels.StringLabelValue
+ * @generated
+ */
+ EClass getStringLabelValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.definitions.labels.KeyValueLabelValue <em>Key Value Label Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Key Value Label Value</em>'.
+ * @see org.eclipse.stem.definitions.labels.KeyValueLabelValue
+ * @generated
+ */
+ EClass getKeyValueLabelValue();
+
+ /**
* Returns the meta object for enum '{@link org.eclipse.stem.definitions.labels.RelativePhysicalRelationship <em>Relative Physical Relationship</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2433,6 +2802,90 @@
EAttribute EARTH_SCIENCE_LABEL_VALUE__VALID_YEAR = eINSTANCE.getEarthScienceLabelValue_ValidYear();
/**
+ * The meta object literal for the '{@link org.eclipse.stem.definitions.labels.impl.GenericLabelValueImpl <em>Generic Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.GenericLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getGenericLabelValue()
+ * @generated
+ */
+ EClass GENERIC_LABEL_VALUE = eINSTANCE.getGenericLabelValue();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute GENERIC_LABEL_VALUE__VALUE = eINSTANCE.getGenericLabelValue_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Unit</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute GENERIC_LABEL_VALUE__UNIT = eINSTANCE.getGenericLabelValue_Unit();
+
+ /**
+ * The meta object literal for the '<em><b>Measure</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute GENERIC_LABEL_VALUE__MEASURE = eINSTANCE.getGenericLabelValue_Measure();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.definitions.labels.impl.DoubleLabelValueImpl <em>Double Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.DoubleLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getDoubleLabelValue()
+ * @generated
+ */
+ EClass DOUBLE_LABEL_VALUE = eINSTANCE.getDoubleLabelValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.definitions.labels.impl.IntegerLabelValueImpl <em>Integer Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.IntegerLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getIntegerLabelValue()
+ * @generated
+ */
+ EClass INTEGER_LABEL_VALUE = eINSTANCE.getIntegerLabelValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.definitions.labels.impl.LongLabelValueImpl <em>Long Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.LongLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getLongLabelValue()
+ * @generated
+ */
+ EClass LONG_LABEL_VALUE = eINSTANCE.getLongLabelValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.definitions.labels.impl.StringLabelValueImpl <em>String Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.StringLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getStringLabelValue()
+ * @generated
+ */
+ EClass STRING_LABEL_VALUE = eINSTANCE.getStringLabelValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.definitions.labels.impl.KeyValueLabelValueImpl <em>Key Value Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.definitions.labels.impl.KeyValueLabelValueImpl
+ * @see org.eclipse.stem.definitions.labels.impl.LabelsPackageImpl#getKeyValueLabelValue()
+ * @generated
+ */
+ EClass KEY_VALUE_LABEL_VALUE = eINSTANCE.getKeyValueLabelValue();
+
+ /**
* The meta object literal for the '{@link org.eclipse.stem.definitions.labels.RelativePhysicalRelationship <em>Relative Physical Relationship</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LongLabelValue.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LongLabelValue.java
new file mode 100644
index 0000000..4d852d3
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/LongLabelValue.java
@@ -0,0 +1,17 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Long Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.definitions.labels.LabelsPackage#getLongLabelValue()
+ * @model superTypes="org.eclipse.stem.definitions.labels.GenericLabelValue<org.eclipse.emf.ecore.ELongObject>"
+ * @generated
+ */
+public interface LongLabelValue extends GenericLabelValue<Long> {
+} // LongLabelValue
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/RelativePhysicalRelationship.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/RelativePhysicalRelationship.java
index 78cccdf..0438873 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/RelativePhysicalRelationship.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/RelativePhysicalRelationship.java
@@ -265,6 +265,8 @@
* Returns the '<em><b>Relative Physical Relationship</b></em>' literal with the specified literal value.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static RelativePhysicalRelationship get(String literal) {
@@ -281,6 +283,8 @@
* Returns the '<em><b>Relative Physical Relationship</b></em>' literal with the specified name.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static RelativePhysicalRelationship getByName(String name) {
@@ -297,6 +301,8 @@
* Returns the '<em><b>Relative Physical Relationship</b></em>' literal with the specified integer value.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static RelativePhysicalRelationship get(int value) {
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/StringLabelValue.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/StringLabelValue.java
new file mode 100644
index 0000000..5278de4
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/StringLabelValue.java
@@ -0,0 +1,17 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.definitions.labels.LabelsPackage#getStringLabelValue()
+ * @model superTypes="org.eclipse.stem.definitions.labels.GenericLabelValue<org.eclipse.emf.ecore.EString>"
+ * @generated
+ */
+public interface StringLabelValue extends GenericLabelValue<String> {
+} // StringLabelValue
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/TransportMode.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/TransportMode.java
index c448fd2..0549288 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/TransportMode.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/TransportMode.java
@@ -147,6 +147,8 @@
* Returns the '<em><b>Transport Mode</b></em>' literal with the specified literal value.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static TransportMode get(String literal) {
@@ -163,6 +165,8 @@
* Returns the '<em><b>Transport Mode</b></em>' literal with the specified name.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static TransportMode getByName(String name) {
@@ -179,6 +183,8 @@
* Returns the '<em><b>Transport Mode</b></em>' literal with the specified integer value.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static TransportMode get(int value) {
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/AreaLabelImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/AreaLabelImpl.java
index 8c6ab94..b978877 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/AreaLabelImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/AreaLabelImpl.java
@@ -25,10 +25,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.AreaLabelImpl#getCurrentAreaValue <em>Current Area Value</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/AreaLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/AreaLabelValueImpl.java
index 3668f24..124c5f7 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/AreaLabelValueImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/AreaLabelValueImpl.java
@@ -23,11 +23,11 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.AreaLabelValueImpl#getArea <em>Area</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.AreaLabelValueImpl#getAverageExtent <em>Average Extent</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/CommonBorderRelationshipLabelImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/CommonBorderRelationshipLabelImpl.java
index 54532d7..c26144c 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/CommonBorderRelationshipLabelImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/CommonBorderRelationshipLabelImpl.java
@@ -27,8 +27,6 @@
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Common Border Relationship Label</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/CommonBorderRelationshipLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/CommonBorderRelationshipLabelValueImpl.java
index 35b9f69..de7bb16 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/CommonBorderRelationshipLabelValueImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/CommonBorderRelationshipLabelValueImpl.java
@@ -22,10 +22,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.CommonBorderRelationshipLabelValueImpl#getBorderLength <em>Border Length</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/DoubleLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/DoubleLabelValueImpl.java
new file mode 100644
index 0000000..989d8bc
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/DoubleLabelValueImpl.java
@@ -0,0 +1,48 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.stem.definitions.labels.DoubleLabelValue;
+import org.eclipse.stem.definitions.labels.LabelsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Double Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DoubleLabelValueImpl extends GenericLabelValueImpl<Double> implements DoubleLabelValue {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DoubleLabelValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LabelsPackage.Literals.DOUBLE_LABEL_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setValue(Double newValue) {
+ super.setValue(newValue);
+ }
+
+} //DoubleLabelValueImpl
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/EarthScienceLabelImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/EarthScienceLabelImpl.java
index 789ad8a..3138117 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/EarthScienceLabelImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/EarthScienceLabelImpl.java
@@ -25,10 +25,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.EarthScienceLabelImpl#getCurrentEarthScienceValue <em>Current Earth Science Value</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/EarthScienceLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/EarthScienceLabelValueImpl.java
index 838dd5e..e85d886 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/EarthScienceLabelValueImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/EarthScienceLabelValueImpl.java
@@ -27,6 +27,7 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.EarthScienceLabelValueImpl#getDataType <em>Data Type</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.EarthScienceLabelValueImpl#getUnits <em>Units</em>}</li>
@@ -42,7 +43,6 @@
* <li>{@link org.eclipse.stem.definitions.labels.impl.EarthScienceLabelValueImpl#getRange <em>Range</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.EarthScienceLabelValueImpl#getValidYear <em>Valid Year</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/GenericLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/GenericLabelValueImpl.java
new file mode 100644
index 0000000..f7ba993
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/GenericLabelValueImpl.java
@@ -0,0 +1,274 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.stem.core.graph.impl.LabelValueImpl;
+
+import org.eclipse.stem.definitions.labels.GenericLabelValue;
+import org.eclipse.stem.definitions.labels.LabelsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generic Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.stem.definitions.labels.impl.GenericLabelValueImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.stem.definitions.labels.impl.GenericLabelValueImpl#getUnit <em>Unit</em>}</li>
+ * <li>{@link org.eclipse.stem.definitions.labels.impl.GenericLabelValueImpl#getMeasure <em>Measure</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GenericLabelValueImpl<T> extends LabelValueImpl implements GenericLabelValue<T> {
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected T value;
+
+ /**
+ * The default value of the '{@link #getUnit() <em>Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUnit()
+ * @generated
+ * @ordered
+ */
+ protected static final String UNIT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUnit() <em>Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUnit()
+ * @generated
+ * @ordered
+ */
+ protected String unit = UNIT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMeasure() <em>Measure</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMeasure()
+ * @generated
+ * @ordered
+ */
+ protected static final String MEASURE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMeasure() <em>Measure</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMeasure()
+ * @generated
+ * @ordered
+ */
+ protected String measure = MEASURE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenericLabelValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LabelsPackage.Literals.GENERIC_LABEL_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public T getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(T newValue) {
+ T oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LabelsPackage.GENERIC_LABEL_VALUE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUnit() {
+ return unit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnit(String newUnit) {
+ String oldUnit = unit;
+ unit = newUnit;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LabelsPackage.GENERIC_LABEL_VALUE__UNIT, oldUnit, unit));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getMeasure() {
+ return measure;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMeasure(String newMeasure) {
+ String oldMeasure = measure;
+ measure = newMeasure;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LabelsPackage.GENERIC_LABEL_VALUE__MEASURE, oldMeasure, measure));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Class<?> getJavaTypeClass() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LabelsPackage.GENERIC_LABEL_VALUE__VALUE:
+ return getValue();
+ case LabelsPackage.GENERIC_LABEL_VALUE__UNIT:
+ return getUnit();
+ case LabelsPackage.GENERIC_LABEL_VALUE__MEASURE:
+ return getMeasure();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LabelsPackage.GENERIC_LABEL_VALUE__VALUE:
+ setValue((T)newValue);
+ return;
+ case LabelsPackage.GENERIC_LABEL_VALUE__UNIT:
+ setUnit((String)newValue);
+ return;
+ case LabelsPackage.GENERIC_LABEL_VALUE__MEASURE:
+ setMeasure((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LabelsPackage.GENERIC_LABEL_VALUE__VALUE:
+ setValue((T)null);
+ return;
+ case LabelsPackage.GENERIC_LABEL_VALUE__UNIT:
+ setUnit(UNIT_EDEFAULT);
+ return;
+ case LabelsPackage.GENERIC_LABEL_VALUE__MEASURE:
+ setMeasure(MEASURE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LabelsPackage.GENERIC_LABEL_VALUE__VALUE:
+ return value != null;
+ case LabelsPackage.GENERIC_LABEL_VALUE__UNIT:
+ return UNIT_EDEFAULT == null ? unit != null : !UNIT_EDEFAULT.equals(unit);
+ case LabelsPackage.GENERIC_LABEL_VALUE__MEASURE:
+ return MEASURE_EDEFAULT == null ? measure != null : !MEASURE_EDEFAULT.equals(measure);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: "); //$NON-NLS-1$
+ result.append(value);
+ result.append(", unit: "); //$NON-NLS-1$
+ result.append(unit);
+ result.append(", measure: "); //$NON-NLS-1$
+ result.append(measure);
+ result.append(')');
+ return result.toString();
+ }
+
+} //GenericLabelValueImpl
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/IntegerLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/IntegerLabelValueImpl.java
new file mode 100644
index 0000000..f521bf7
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/IntegerLabelValueImpl.java
@@ -0,0 +1,48 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.stem.definitions.labels.IntegerLabelValue;
+import org.eclipse.stem.definitions.labels.LabelsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Integer Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IntegerLabelValueImpl extends GenericLabelValueImpl<Integer> implements IntegerLabelValue {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IntegerLabelValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LabelsPackage.Literals.INTEGER_LABEL_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setValue(Integer newValue) {
+ super.setValue(newValue);
+ }
+
+} //IntegerLabelValueImpl
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/KeyValueLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/KeyValueLabelValueImpl.java
new file mode 100644
index 0000000..3b6e9a9
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/KeyValueLabelValueImpl.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.impl;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.stem.definitions.labels.KeyValueLabelValue;
+import org.eclipse.stem.definitions.labels.LabelsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Key Value Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class KeyValueLabelValueImpl extends GenericLabelValueImpl<Map<String, Object>> implements KeyValueLabelValue {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected KeyValueLabelValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LabelsPackage.Literals.KEY_VALUE_LABEL_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setValue(Map<String, Object> newValue) {
+ super.setValue(newValue);
+ }
+
+} //KeyValueLabelValueImpl
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LabelsFactoryImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LabelsFactoryImpl.java
index 3050c64..b6e94ff 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LabelsFactoryImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LabelsFactoryImpl.java
@@ -17,6 +17,7 @@
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.stem.definitions.labels.*;
import org.eclipse.stem.definitions.labels.AreaLabel;
import org.eclipse.stem.definitions.labels.AreaLabelValue;
import org.eclipse.stem.definitions.labels.CommonBorderRelationshipLabel;
@@ -52,7 +53,7 @@
*/
public static LabelsFactory init() {
try {
- LabelsFactory theLabelsFactory = (LabelsFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/stem/definitions/labels.ecore"); //$NON-NLS-1$
+ LabelsFactory theLabelsFactory = (LabelsFactory)EPackage.Registry.INSTANCE.getEFactory(LabelsPackage.eNS_URI);
if (theLabelsFactory != null) {
return theLabelsFactory;
}
@@ -96,6 +97,12 @@
case LabelsPackage.ROAD_TRANSPORT_RELATIONSHIP_LABEL_VALUE: return createRoadTransportRelationshipLabelValue();
case LabelsPackage.EARTH_SCIENCE_LABEL: return createEarthScienceLabel();
case LabelsPackage.EARTH_SCIENCE_LABEL_VALUE: return createEarthScienceLabelValue();
+ case LabelsPackage.GENERIC_LABEL_VALUE: return createGenericLabelValue();
+ case LabelsPackage.DOUBLE_LABEL_VALUE: return createDoubleLabelValue();
+ case LabelsPackage.INTEGER_LABEL_VALUE: return createIntegerLabelValue();
+ case LabelsPackage.LONG_LABEL_VALUE: return createLongLabelValue();
+ case LabelsPackage.STRING_LABEL_VALUE: return createStringLabelValue();
+ case LabelsPackage.KEY_VALUE_LABEL_VALUE: return createKeyValueLabelValue();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -305,6 +312,72 @@
* <!-- end-user-doc -->
* @generated
*/
+ @Override
+ public <T> GenericLabelValue<T> createGenericLabelValue() {
+ GenericLabelValueImpl<T> genericLabelValue = new GenericLabelValueImpl<T>();
+ return genericLabelValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DoubleLabelValue createDoubleLabelValue() {
+ DoubleLabelValueImpl doubleLabelValue = new DoubleLabelValueImpl();
+ return doubleLabelValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public IntegerLabelValue createIntegerLabelValue() {
+ IntegerLabelValueImpl integerLabelValue = new IntegerLabelValueImpl();
+ return integerLabelValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LongLabelValue createLongLabelValue() {
+ LongLabelValueImpl longLabelValue = new LongLabelValueImpl();
+ return longLabelValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public StringLabelValue createStringLabelValue() {
+ StringLabelValueImpl stringLabelValue = new StringLabelValueImpl();
+ return stringLabelValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public KeyValueLabelValue createKeyValueLabelValue() {
+ KeyValueLabelValueImpl keyValueLabelValue = new KeyValueLabelValueImpl();
+ return keyValueLabelValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public RelativePhysicalRelationship createRelativePhysicalRelationshipFromString(EDataType eDataType, String initialValue) {
RelativePhysicalRelationship result = RelativePhysicalRelationship.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LabelsPackageImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LabelsPackageImpl.java
index cbfe052..5238759 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LabelsPackageImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LabelsPackageImpl.java
@@ -14,8 +14,11 @@
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.ETypeParameter;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.stem.core.common.CommonPackage;
@@ -32,10 +35,15 @@
import org.eclipse.stem.definitions.labels.AreaLabelValue;
import org.eclipse.stem.definitions.labels.CommonBorderRelationshipLabel;
import org.eclipse.stem.definitions.labels.CommonBorderRelationshipLabelValue;
+import org.eclipse.stem.definitions.labels.DoubleLabelValue;
import org.eclipse.stem.definitions.labels.EarthScienceLabel;
import org.eclipse.stem.definitions.labels.EarthScienceLabelValue;
+import org.eclipse.stem.definitions.labels.GenericLabelValue;
+import org.eclipse.stem.definitions.labels.IntegerLabelValue;
+import org.eclipse.stem.definitions.labels.KeyValueLabelValue;
import org.eclipse.stem.definitions.labels.LabelsFactory;
import org.eclipse.stem.definitions.labels.LabelsPackage;
+import org.eclipse.stem.definitions.labels.LongLabelValue;
import org.eclipse.stem.definitions.labels.PhysicalRelationshipLabel;
import org.eclipse.stem.definitions.labels.PhysicalRelationshipLabelValue;
import org.eclipse.stem.definitions.labels.PopulationLabel;
@@ -45,6 +53,7 @@
import org.eclipse.stem.definitions.labels.RelativePhysicalRelationshipLabelValue;
import org.eclipse.stem.definitions.labels.RoadTransportRelationshipLabel;
import org.eclipse.stem.definitions.labels.RoadTransportRelationshipLabelValue;
+import org.eclipse.stem.definitions.labels.StringLabelValue;
import org.eclipse.stem.definitions.labels.TransportMode;
import org.eclipse.stem.definitions.labels.TransportRelationshipLabel;
import org.eclipse.stem.definitions.labels.TransportRelationshipLabelValue;
@@ -177,6 +186,48 @@
* <!-- end-user-doc -->
* @generated
*/
+ private EClass genericLabelValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass doubleLabelValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass integerLabelValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass longLabelValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stringLabelValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass keyValueLabelValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EEnum relativePhysicalRelationshipEEnum = null;
/**
@@ -844,6 +895,96 @@
* @generated
*/
@Override
+ public EClass getGenericLabelValue() {
+ return genericLabelValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getGenericLabelValue_Value() {
+ return (EAttribute)genericLabelValueEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getGenericLabelValue_Unit() {
+ return (EAttribute)genericLabelValueEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getGenericLabelValue_Measure() {
+ return (EAttribute)genericLabelValueEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDoubleLabelValue() {
+ return doubleLabelValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getIntegerLabelValue() {
+ return integerLabelValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLongLabelValue() {
+ return longLabelValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getStringLabelValue() {
+ return stringLabelValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getKeyValueLabelValue() {
+ return keyValueLabelValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EEnum getRelativePhysicalRelationship() {
return relativePhysicalRelationshipEEnum;
}
@@ -960,6 +1101,21 @@
createEAttribute(earthScienceLabelValueEClass, EARTH_SCIENCE_LABEL_VALUE__RANGE);
createEAttribute(earthScienceLabelValueEClass, EARTH_SCIENCE_LABEL_VALUE__VALID_YEAR);
+ genericLabelValueEClass = createEClass(GENERIC_LABEL_VALUE);
+ createEAttribute(genericLabelValueEClass, GENERIC_LABEL_VALUE__VALUE);
+ createEAttribute(genericLabelValueEClass, GENERIC_LABEL_VALUE__UNIT);
+ createEAttribute(genericLabelValueEClass, GENERIC_LABEL_VALUE__MEASURE);
+
+ doubleLabelValueEClass = createEClass(DOUBLE_LABEL_VALUE);
+
+ integerLabelValueEClass = createEClass(INTEGER_LABEL_VALUE);
+
+ longLabelValueEClass = createEClass(LONG_LABEL_VALUE);
+
+ stringLabelValueEClass = createEClass(STRING_LABEL_VALUE);
+
+ keyValueLabelValueEClass = createEClass(KEY_VALUE_LABEL_VALUE);
+
// Create enums
relativePhysicalRelationshipEEnum = createEEnum(RELATIVE_PHYSICAL_RELATIONSHIP);
transportModeEEnum = createEEnum(TRANSPORT_MODE);
@@ -993,6 +1149,7 @@
EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
// Create type parameters
+ ETypeParameter genericLabelValueEClass_T = addETypeParameter(genericLabelValueEClass, "T"); //$NON-NLS-1$
// Set bounds for type parameters
@@ -1013,6 +1170,31 @@
roadTransportRelationshipLabelValueEClass.getESuperTypes().add(this.getPhysicalRelationshipLabelValue());
earthScienceLabelEClass.getESuperTypes().add(theGraphPackage.getStaticNodeLabel());
earthScienceLabelValueEClass.getESuperTypes().add(theGraphPackage.getLabelValue());
+ genericLabelValueEClass.getESuperTypes().add(theGraphPackage.getLabelValue());
+ EGenericType g1 = createEGenericType(this.getGenericLabelValue());
+ EGenericType g2 = createEGenericType(ecorePackage.getEDoubleObject());
+ g1.getETypeArguments().add(g2);
+ doubleLabelValueEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getGenericLabelValue());
+ g2 = createEGenericType(ecorePackage.getEIntegerObject());
+ g1.getETypeArguments().add(g2);
+ integerLabelValueEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getGenericLabelValue());
+ g2 = createEGenericType(ecorePackage.getELongObject());
+ g1.getETypeArguments().add(g2);
+ longLabelValueEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getGenericLabelValue());
+ g2 = createEGenericType(ecorePackage.getEString());
+ g1.getETypeArguments().add(g2);
+ stringLabelValueEClass.getEGenericSuperTypes().add(g1);
+ g1 = createEGenericType(this.getGenericLabelValue());
+ g2 = createEGenericType(ecorePackage.getEMap());
+ g1.getETypeArguments().add(g2);
+ EGenericType g3 = createEGenericType(ecorePackage.getEString());
+ g2.getETypeArguments().add(g3);
+ g3 = createEGenericType(ecorePackage.getEJavaObject());
+ g2.getETypeArguments().add(g3);
+ keyValueLabelValueEClass.getEGenericSuperTypes().add(g1);
// Initialize classes and features; add operations and parameters
initEClass(areaLabelEClass, AreaLabel.class, "AreaLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
@@ -1088,6 +1270,28 @@
initEAttribute(getEarthScienceLabelValue_Range(), theEcorePackage.getEDouble(), "range", null, 0, -1, EarthScienceLabelValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
initEAttribute(getEarthScienceLabelValue_ValidYear(), theEcorePackage.getEInt(), "validYear", "0", 0, 1, EarthScienceLabelValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEClass(genericLabelValueEClass, GenericLabelValue.class, "GenericLabelValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ g1 = createEGenericType(genericLabelValueEClass_T);
+ initEAttribute(getGenericLabelValue_Value(), g1, "value", null, 0, 1, GenericLabelValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getGenericLabelValue_Unit(), ecorePackage.getEString(), "unit", null, 0, 1, GenericLabelValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getGenericLabelValue_Measure(), ecorePackage.getEString(), "measure", null, 0, 1, GenericLabelValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ EOperation op = addEOperation(genericLabelValueEClass, null, "getJavaTypeClass", 0, 1, IS_UNIQUE, IS_ORDERED); //$NON-NLS-1$
+ g1 = createEGenericType(ecorePackage.getEJavaClass());
+ g2 = createEGenericType();
+ g1.getETypeArguments().add(g2);
+ initEOperation(op, g1);
+
+ initEClass(doubleLabelValueEClass, DoubleLabelValue.class, "DoubleLabelValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(integerLabelValueEClass, IntegerLabelValue.class, "IntegerLabelValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(longLabelValueEClass, LongLabelValue.class, "LongLabelValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(stringLabelValueEClass, StringLabelValue.class, "StringLabelValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(keyValueLabelValueEClass, KeyValueLabelValue.class, "KeyValueLabelValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
// Initialize enums and add enum literals
initEEnum(relativePhysicalRelationshipEEnum, RelativePhysicalRelationship.class, "RelativePhysicalRelationship"); //$NON-NLS-1$
addEEnumLiteral(relativePhysicalRelationshipEEnum, RelativePhysicalRelationship.UNSPECIFIED_LITERAL);
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LongLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LongLabelValueImpl.java
new file mode 100644
index 0000000..a80c2c8
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/LongLabelValueImpl.java
@@ -0,0 +1,48 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.stem.definitions.labels.LabelsPackage;
+import org.eclipse.stem.definitions.labels.LongLabelValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Long Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class LongLabelValueImpl extends GenericLabelValueImpl<Long> implements LongLabelValue {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LongLabelValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LabelsPackage.Literals.LONG_LABEL_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setValue(Long newValue) {
+ super.setValue(newValue);
+ }
+
+} //LongLabelValueImpl
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PhysicalRelationshipLabelImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PhysicalRelationshipLabelImpl.java
index dbc7a34..8ec1282 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PhysicalRelationshipLabelImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PhysicalRelationshipLabelImpl.java
@@ -23,8 +23,6 @@
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Physical Relationship Label</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PhysicalRelationshipLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PhysicalRelationshipLabelValueImpl.java
index 267269b..5957e01 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PhysicalRelationshipLabelValueImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PhysicalRelationshipLabelValueImpl.java
@@ -20,8 +20,6 @@
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Physical Relationship Label Value</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PopulationLabelImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PopulationLabelImpl.java
index 506a88b..524eef0 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PopulationLabelImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PopulationLabelImpl.java
@@ -31,13 +31,13 @@
* <em><b>Population Label</b></em>'. <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.PopulationLabelImpl#getPopulationIdentifier <em>Population Identifier</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.PopulationLabelImpl#getCurrentPopulationValue <em>Current Population Value</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.PopulationLabelImpl#getPopulatedArea <em>Populated Area</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.PopulationLabelImpl#getValidYear <em>Valid Year</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PopulationLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PopulationLabelValueImpl.java
index 0364f06..d52649a 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PopulationLabelValueImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/PopulationLabelValueImpl.java
@@ -23,10 +23,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.PopulationLabelValueImpl#getCount <em>Count</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RelativePhysicalRelationshipLabelImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RelativePhysicalRelationshipLabelImpl.java
index ea2d931..59ba6e5 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RelativePhysicalRelationshipLabelImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RelativePhysicalRelationshipLabelImpl.java
@@ -22,10 +22,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.RelativePhysicalRelationshipLabelImpl#getCurrentRelationship <em>Current Relationship</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RelativePhysicalRelationshipLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RelativePhysicalRelationshipLabelValueImpl.java
index 708d603..e5346b9 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RelativePhysicalRelationshipLabelValueImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RelativePhysicalRelationshipLabelValueImpl.java
@@ -24,11 +24,11 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.RelativePhysicalRelationshipLabelValueImpl#isAdjacent <em>Adjacent</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.RelativePhysicalRelationshipLabelValueImpl#getRelationship <em>Relationship</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RoadTransportRelationshipLabelImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RoadTransportRelationshipLabelImpl.java
index d764d18..f9eb929 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RoadTransportRelationshipLabelImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RoadTransportRelationshipLabelImpl.java
@@ -29,8 +29,6 @@
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Road Transport Relationship Label</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RoadTransportRelationshipLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RoadTransportRelationshipLabelValueImpl.java
index 5d007ed..1ff7624 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RoadTransportRelationshipLabelValueImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/RoadTransportRelationshipLabelValueImpl.java
@@ -24,12 +24,12 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.RoadTransportRelationshipLabelValueImpl#getRoadName <em>Road Name</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.RoadTransportRelationshipLabelValueImpl#getRoadClass <em>Road Class</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.RoadTransportRelationshipLabelValueImpl#getNumberCrossings <em>Number Crossings</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/StringLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/StringLabelValueImpl.java
new file mode 100644
index 0000000..0623213
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/StringLabelValueImpl.java
@@ -0,0 +1,48 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.stem.definitions.labels.LabelsPackage;
+import org.eclipse.stem.definitions.labels.StringLabelValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class StringLabelValueImpl extends GenericLabelValueImpl<String> implements StringLabelValue {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StringLabelValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return LabelsPackage.Literals.STRING_LABEL_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * This is specialized for the more specific type known in this context.
+ * @generated
+ */
+ @Override
+ public void setValue(String newValue) {
+ super.setValue(newValue);
+ }
+
+} //StringLabelValueImpl
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/TransportRelationshipLabelImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/TransportRelationshipLabelImpl.java
index ab84405..f52185d 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/TransportRelationshipLabelImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/TransportRelationshipLabelImpl.java
@@ -39,6 +39,7 @@
* <em><b>Transport Relationship Label</b></em>'. <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.TransportRelationshipLabelImpl#getTransportMode <em>Transport Mode</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.TransportRelationshipLabelImpl#getPopulationIdentifier <em>Population Identifier</em>}</li>
@@ -52,7 +53,6 @@
* <li>{@link org.eclipse.stem.definitions.labels.impl.TransportRelationshipLabelImpl#getTransitTime <em>Transit Time</em>}</li>
* <li>{@link org.eclipse.stem.definitions.labels.impl.TransportRelationshipLabelImpl#getStartUpDelay <em>Start Up Delay</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/TransportRelationshipLabelValueImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/TransportRelationshipLabelValueImpl.java
index ac2f31d..07453d1 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/TransportRelationshipLabelValueImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/impl/TransportRelationshipLabelValueImpl.java
@@ -23,10 +23,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.labels.impl.TransportRelationshipLabelValueImpl#getAvailableDepartureCapacityProportion <em>Available Departure Capacity Proportion</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/presentation/LabelsActionBarContributor.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/presentation/LabelsActionBarContributor.java
index 1c92167..875e11b 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/presentation/LabelsActionBarContributor.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/presentation/LabelsActionBarContributor.java
@@ -206,8 +206,7 @@
//
submenuManager.addMenuListener
(new IMenuListener() {
- @Override
- public void menuAboutToShow(IMenuManager menuManager) {
+ public void menuAboutToShow(IMenuManager menuManager) {
menuManager.updateAll(true);
}
});
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/presentation/LabelsEditor.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/presentation/LabelsEditor.java
index 692c4f8..b97d98d 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/presentation/LabelsEditor.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/presentation/LabelsEditor.java
@@ -81,6 +81,7 @@
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ISelectionProvider;
@@ -106,6 +107,7 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
@@ -188,7 +190,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected PropertySheetPage propertySheetPage;
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
/**
* This is the viewer that shadows the selection in the content outline.
@@ -248,7 +250,6 @@
*/
protected IPartListener partListener =
new IPartListener() {
- @Override
public void partActivated(IWorkbenchPart p) {
if (p instanceof ContentOutline) {
if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
@@ -258,7 +259,7 @@
}
}
else if (p instanceof PropertySheet) {
- if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
getActionBarContributor().setActiveEditor(LabelsEditor.this);
handleActivate();
}
@@ -267,19 +268,15 @@
handleActivate();
}
}
- @Override
public void partBroughtToTop(IWorkbenchPart p) {
// Ignore.
}
- @Override
public void partClosed(IWorkbenchPart p) {
// Ignore.
}
- @Override
public void partDeactivated(IWorkbenchPart p) {
// Ignore.
}
- @Override
public void partOpened(IWorkbenchPart p) {
// Ignore.
}
@@ -352,8 +349,7 @@
if (updateProblemIndication) {
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
updateProblemIndication();
}
});
@@ -375,6 +371,15 @@
@Override
protected void unsetTarget(Resource target) {
basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
}
};
@@ -386,7 +391,6 @@
*/
protected IResourceChangeListener resourceChangeListener =
new IResourceChangeListener() {
- @Override
public void resourceChanged(IResourceChangeEvent event) {
IResourceDelta delta = event.getDelta();
try {
@@ -395,7 +399,6 @@
protected Collection<Resource> changedResources = new ArrayList<Resource>();
protected Collection<Resource> removedResources = new ArrayList<Resource>();
- @Override
public boolean visit(IResourceDelta delta) {
if (delta.getResource().getType() == IResource.FILE) {
if (delta.getKind() == IResourceDelta.REMOVED ||
@@ -410,6 +413,7 @@
}
}
}
+ return false;
}
return true;
@@ -430,8 +434,7 @@
if (!visitor.getRemovedResources().isEmpty()) {
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
removedResources.addAll(visitor.getRemovedResources());
if (!isDirty()) {
getSite().getPage().closeEditor(LabelsEditor.this, false);
@@ -443,8 +446,7 @@
if (!visitor.getChangedResources().isEmpty()) {
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
changedResources.addAll(visitor.getChangedResources());
if (getSite().getPage().getActiveEditor() == LabelsEditor.this) {
handleActivate();
@@ -648,12 +650,10 @@
//
commandStack.addCommandStackListener
(new CommandStackListener() {
- @Override
- public void commandStackChanged(final EventObject event) {
+ public void commandStackChanged(final EventObject event) {
getContainer().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
firePropertyChange(IEditorPart.PROP_DIRTY);
// Try to select the affected objects.
@@ -662,8 +662,14 @@
if (mostRecentCommand != null) {
setSelectionToViewer(mostRecentCommand.getAffectedObjects());
}
- if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
- propertySheetPage.refresh();
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed()) {
+ i.remove();
+ }
+ else {
+ propertySheetPage.refresh();
+ }
}
}
});
@@ -699,7 +705,6 @@
if (theSelection != null && !theSelection.isEmpty()) {
Runnable runnable =
new Runnable() {
- @Override
public void run() {
// Try to select the items in the current content viewer of the editor.
//
@@ -777,7 +782,6 @@
new ISelectionChangedListener() {
// This just notifies those things that are affected by the section.
//
- @Override
public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
setSelection(selectionChangedEvent.getSelection());
}
@@ -833,7 +837,7 @@
getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
- Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
}
@@ -873,10 +877,11 @@
* @generated
*/
public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
- if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ boolean hasErrors = !resource.getErrors().isEmpty();
+ if (hasErrors || !resource.getWarnings().isEmpty()) {
BasicDiagnostic basicDiagnostic =
new BasicDiagnostic
- (Diagnostic.ERROR,
+ (hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING,
"org.eclipse.stem.definitions", //$NON-NLS-1$
0,
getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
@@ -932,8 +937,7 @@
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
setActivePage(0);
}
});
@@ -957,8 +961,7 @@
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
updateProblemIndication();
}
});
@@ -1093,8 +1096,7 @@
(new ISelectionChangedListener() {
// This ensures that we handle selections correctly.
//
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
+ public void selectionChanged(SelectionChangedEvent event) {
handleContentOutlineSelection(event.getSelection());
}
});
@@ -1110,23 +1112,22 @@
* @generated
*/
public IPropertySheetPage getPropertySheetPage() {
- if (propertySheetPage == null) {
- propertySheetPage =
- new ExtendedPropertySheetPage(editingDomain) {
- @Override
- public void setSelectionToViewer(List<?> selection) {
- LabelsEditor.this.setSelectionToViewer(selection);
- LabelsEditor.this.setFocus();
- }
+ PropertySheetPage propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ LabelsEditor.this.setSelectionToViewer(selection);
+ LabelsEditor.this.setFocus();
+ }
- @Override
- public void setActionBars(IActionBars actionBars) {
- super.setActionBars(actionBars);
- getActionBarContributor().shareGlobalActions(this, actionBars);
- }
- };
- propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
- }
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
return propertySheetPage;
}
@@ -1181,6 +1182,7 @@
//
final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
// Do the work within an operation because this is a long running activity that modifies the workbench.
//
@@ -1233,7 +1235,7 @@
/**
* This returns whether something has been persisted to the URI of the specified resource.
- * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -1306,20 +1308,9 @@
*/
@Override
public void gotoMarker(IMarker marker) {
- try {
- if (marker.getType().equals(EValidator.MARKER)) {
- String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
- if (uriAttribute != null) {
- URI uri = URI.createURI(uriAttribute);
- EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
- if (eObject != null) {
- setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
- }
- }
- }
- }
- catch (CoreException exception) {
- DefinitionsEditPlugin.INSTANCE.log(exception);
+ List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+ if (!targetObjects.isEmpty()) {
+ setSelectionToViewer(targetObjects);
}
}
@@ -1510,7 +1501,7 @@
getActionBarContributor().setActiveEditor(null);
}
- if (propertySheetPage != null) {
+ for (PropertySheetPage propertySheetPage : propertySheetPages) {
propertySheetPage.dispose();
}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/AreaLabelItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/AreaLabelItemProvider.java
index 896ceaa..ced890e 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/AreaLabelItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/AreaLabelItemProvider.java
@@ -39,9 +39,7 @@
*
* @generated
*/
-public class AreaLabelItemProvider extends StaticNodeLabelItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class AreaLabelItemProvider extends StaticNodeLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/AreaLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/AreaLabelValueItemProvider.java
index 26a1e44..7ebf011 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/AreaLabelValueItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/AreaLabelValueItemProvider.java
@@ -39,9 +39,7 @@
*
* @generated
*/
-public class AreaLabelValueItemProvider extends LabelValueItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class AreaLabelValueItemProvider extends LabelValueItemProvider {
private static final int NUMBER_OF_FACTIONAL_DIGITS = 2;
private static NumberFormat formatter;
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/CommonBorderRelationshipLabelItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/CommonBorderRelationshipLabelItemProvider.java
index 3c210d0..87b5ad8 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/CommonBorderRelationshipLabelItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/CommonBorderRelationshipLabelItemProvider.java
@@ -34,9 +34,7 @@
* @generated
*/
public class CommonBorderRelationshipLabelItemProvider extends
- PhysicalRelationshipLabelItemProvider implements
- IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+ PhysicalRelationshipLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc --> <!-- end-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/CommonBorderRelationshipLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/CommonBorderRelationshipLabelValueItemProvider.java
index a3d285c..36f7870 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/CommonBorderRelationshipLabelValueItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/CommonBorderRelationshipLabelValueItemProvider.java
@@ -34,9 +34,7 @@
* @generated
*/
public class CommonBorderRelationshipLabelValueItemProvider extends
- PhysicalRelationshipLabelValueItemProvider implements
- IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+ PhysicalRelationshipLabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc --> <!-- end-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/DoubleLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/DoubleLabelValueItemProvider.java
new file mode 100644
index 0000000..6383db5
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/DoubleLabelValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.definitions.labels.DoubleLabelValue;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.definitions.labels.DoubleLabelValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DoubleLabelValueItemProvider extends GenericLabelValueItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DoubleLabelValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns DoubleLabelValue.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/DoubleLabelValue")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ Object labelValue = ((DoubleLabelValue)object).getValue();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_DoubleLabelValue_type") : //$NON-NLS-1$
+ getString("_UI_DoubleLabelValue_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/EarthScienceLabelItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/EarthScienceLabelItemProvider.java
index f6f7c43..cb9ac00 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/EarthScienceLabelItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/EarthScienceLabelItemProvider.java
@@ -37,13 +37,7 @@
* @generated
*/
public class EarthScienceLabelItemProvider
- extends StaticNodeLabelItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends StaticNodeLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/EarthScienceLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/EarthScienceLabelValueItemProvider.java
index 14e4aa4..0379901 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/EarthScienceLabelValueItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/EarthScienceLabelValueItemProvider.java
@@ -38,13 +38,7 @@
* @generated
*/
public class EarthScienceLabelValueItemProvider
- extends LabelValueItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends LabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/GenericLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/GenericLabelValueItemProvider.java
new file mode 100644
index 0000000..7525ec0
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/GenericLabelValueItemProvider.java
@@ -0,0 +1,198 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.stem.core.graph.provider.LabelValueItemProvider;
+
+import org.eclipse.stem.definitions.edges.provider.DefinitionsEditPlugin;
+
+import org.eclipse.stem.definitions.labels.GenericLabelValue;
+import org.eclipse.stem.definitions.labels.LabelsPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.definitions.labels.GenericLabelValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GenericLabelValueItemProvider extends LabelValueItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenericLabelValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addValuePropertyDescriptor(object);
+ addUnitPropertyDescriptor(object);
+ addMeasurePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Value feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_GenericLabelValue_value_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_GenericLabelValue_value_feature", "_UI_GenericLabelValue_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ LabelsPackage.Literals.GENERIC_LABEL_VALUE__VALUE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Unit feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUnitPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_GenericLabelValue_unit_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_GenericLabelValue_unit_feature", "_UI_GenericLabelValue_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ LabelsPackage.Literals.GENERIC_LABEL_VALUE__UNIT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Measure feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addMeasurePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_GenericLabelValue_measure_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_GenericLabelValue_measure_feature", "_UI_GenericLabelValue_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ LabelsPackage.Literals.GENERIC_LABEL_VALUE__MEASURE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns GenericLabelValue.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/GenericLabelValue")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ Object labelValue = ((GenericLabelValue<?>)object).getValue();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_GenericLabelValue_type") : //$NON-NLS-1$
+ getString("_UI_GenericLabelValue_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(GenericLabelValue.class)) {
+ case LabelsPackage.GENERIC_LABEL_VALUE__VALUE:
+ case LabelsPackage.GENERIC_LABEL_VALUE__UNIT:
+ case LabelsPackage.GENERIC_LABEL_VALUE__MEASURE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return DefinitionsEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/IntegerLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/IntegerLabelValueItemProvider.java
new file mode 100644
index 0000000..043e0e0
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/IntegerLabelValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.definitions.labels.IntegerLabelValue;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.definitions.labels.IntegerLabelValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class IntegerLabelValueItemProvider extends GenericLabelValueItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IntegerLabelValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns IntegerLabelValue.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/IntegerLabelValue")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ Object labelValue = ((IntegerLabelValue)object).getValue();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_IntegerLabelValue_type") : //$NON-NLS-1$
+ getString("_UI_IntegerLabelValue_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/KeyValueLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/KeyValueLabelValueItemProvider.java
new file mode 100644
index 0000000..df955eb
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/KeyValueLabelValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.definitions.labels.KeyValueLabelValue;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.definitions.labels.KeyValueLabelValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class KeyValueLabelValueItemProvider extends GenericLabelValueItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public KeyValueLabelValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns KeyValueLabelValue.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/KeyValueLabelValue")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ Object labelValue = ((KeyValueLabelValue)object).getValue();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_KeyValueLabelValue_type") : //$NON-NLS-1$
+ getString("_UI_KeyValueLabelValue_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/LabelsItemProviderAdapterFactory.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/LabelsItemProviderAdapterFactory.java
index 7644148..dfaf98d 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/LabelsItemProviderAdapterFactory.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/LabelsItemProviderAdapterFactory.java
@@ -426,6 +426,144 @@
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.definitions.labels.GenericLabelValue} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenericLabelValueItemProvider genericLabelValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.definitions.labels.GenericLabelValue}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createGenericLabelValueAdapter() {
+ if (genericLabelValueItemProvider == null) {
+ genericLabelValueItemProvider = new GenericLabelValueItemProvider(this);
+ }
+
+ return genericLabelValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.definitions.labels.DoubleLabelValue} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DoubleLabelValueItemProvider doubleLabelValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.definitions.labels.DoubleLabelValue}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createDoubleLabelValueAdapter() {
+ if (doubleLabelValueItemProvider == null) {
+ doubleLabelValueItemProvider = new DoubleLabelValueItemProvider(this);
+ }
+
+ return doubleLabelValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.definitions.labels.IntegerLabelValue} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IntegerLabelValueItemProvider integerLabelValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.definitions.labels.IntegerLabelValue}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createIntegerLabelValueAdapter() {
+ if (integerLabelValueItemProvider == null) {
+ integerLabelValueItemProvider = new IntegerLabelValueItemProvider(this);
+ }
+
+ return integerLabelValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.definitions.labels.LongLabelValue} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LongLabelValueItemProvider longLabelValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.definitions.labels.LongLabelValue}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createLongLabelValueAdapter() {
+ if (longLabelValueItemProvider == null) {
+ longLabelValueItemProvider = new LongLabelValueItemProvider(this);
+ }
+
+ return longLabelValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.definitions.labels.StringLabelValue} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StringLabelValueItemProvider stringLabelValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.definitions.labels.StringLabelValue}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createStringLabelValueAdapter() {
+ if (stringLabelValueItemProvider == null) {
+ stringLabelValueItemProvider = new StringLabelValueItemProvider(this);
+ }
+
+ return stringLabelValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.definitions.labels.KeyValueLabelValue} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected KeyValueLabelValueItemProvider keyValueLabelValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.definitions.labels.KeyValueLabelValue}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createKeyValueLabelValueAdapter() {
+ if (keyValueLabelValueItemProvider == null) {
+ keyValueLabelValueItemProvider = new KeyValueLabelValueItemProvider(this);
+ }
+
+ return keyValueLabelValueItemProvider;
+ }
+
+ /**
* This returns the root adapter factory that contains this factory. <!--
* begin-user-doc -->
*
@@ -577,6 +715,12 @@
if (roadTransportRelationshipLabelValueItemProvider != null) roadTransportRelationshipLabelValueItemProvider.dispose();
if (earthScienceLabelItemProvider != null) earthScienceLabelItemProvider.dispose();
if (earthScienceLabelValueItemProvider != null) earthScienceLabelValueItemProvider.dispose();
+ if (genericLabelValueItemProvider != null) genericLabelValueItemProvider.dispose();
+ if (doubleLabelValueItemProvider != null) doubleLabelValueItemProvider.dispose();
+ if (integerLabelValueItemProvider != null) integerLabelValueItemProvider.dispose();
+ if (longLabelValueItemProvider != null) longLabelValueItemProvider.dispose();
+ if (stringLabelValueItemProvider != null) stringLabelValueItemProvider.dispose();
+ if (keyValueLabelValueItemProvider != null) keyValueLabelValueItemProvider.dispose();
}
}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/LongLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/LongLabelValueItemProvider.java
new file mode 100644
index 0000000..31878a2
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/LongLabelValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.definitions.labels.LongLabelValue;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.definitions.labels.LongLabelValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LongLabelValueItemProvider extends GenericLabelValueItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LongLabelValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns LongLabelValue.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/LongLabelValue")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ Object labelValue = ((LongLabelValue)object).getValue();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_LongLabelValue_type") : //$NON-NLS-1$
+ getString("_UI_LongLabelValue_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PhysicalRelationshipLabelItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PhysicalRelationshipLabelItemProvider.java
index eb96375..4c27c52 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PhysicalRelationshipLabelItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PhysicalRelationshipLabelItemProvider.java
@@ -36,9 +36,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
-public class PhysicalRelationshipLabelItemProvider extends StaticEdgeLabelItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class PhysicalRelationshipLabelItemProvider extends StaticEdgeLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc --> <!-- end-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PhysicalRelationshipLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PhysicalRelationshipLabelValueItemProvider.java
index 753f8fa..5d313df 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PhysicalRelationshipLabelValueItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PhysicalRelationshipLabelValueItemProvider.java
@@ -34,13 +34,7 @@
* @generated
*/
public class PhysicalRelationshipLabelValueItemProvider
- extends LabelValueItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends LabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PopulationLabelItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PopulationLabelItemProvider.java
index 677f88d..7115de5 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PopulationLabelItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PopulationLabelItemProvider.java
@@ -40,9 +40,7 @@
*
* @generated
*/
-public class PopulationLabelItemProvider extends StaticNodeLabelItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class PopulationLabelItemProvider extends StaticNodeLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PopulationLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PopulationLabelValueItemProvider.java
index 1756734..d3848b7 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PopulationLabelValueItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/PopulationLabelValueItemProvider.java
@@ -36,9 +36,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
-public class PopulationLabelValueItemProvider extends LabelValueItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class PopulationLabelValueItemProvider extends LabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RelativePhysicalRelationshipLabelItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RelativePhysicalRelationshipLabelItemProvider.java
index 411f26a..f66f64b 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RelativePhysicalRelationshipLabelItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RelativePhysicalRelationshipLabelItemProvider.java
@@ -35,13 +35,7 @@
* @generated
*/
public class RelativePhysicalRelationshipLabelItemProvider
- extends PhysicalRelationshipLabelItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends PhysicalRelationshipLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RelativePhysicalRelationshipLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RelativePhysicalRelationshipLabelValueItemProvider.java
index 7da5b4d..0b98192 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RelativePhysicalRelationshipLabelValueItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RelativePhysicalRelationshipLabelValueItemProvider.java
@@ -40,13 +40,7 @@
* @generated
*/
public class RelativePhysicalRelationshipLabelValueItemProvider
- extends LabelValueItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends LabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RoadTransportRelationshipLabelItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RoadTransportRelationshipLabelItemProvider.java
index 8dc8890..019ac29 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RoadTransportRelationshipLabelItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RoadTransportRelationshipLabelItemProvider.java
@@ -35,13 +35,7 @@
* @generated
*/
public class RoadTransportRelationshipLabelItemProvider
- extends PhysicalRelationshipLabelItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends PhysicalRelationshipLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RoadTransportRelationshipLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RoadTransportRelationshipLabelValueItemProvider.java
index 6c215f0..7cdc5a3 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RoadTransportRelationshipLabelValueItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/RoadTransportRelationshipLabelValueItemProvider.java
@@ -35,13 +35,7 @@
* @generated
*/
public class RoadTransportRelationshipLabelValueItemProvider
- extends PhysicalRelationshipLabelValueItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends PhysicalRelationshipLabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/StringLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/StringLabelValueItemProvider.java
new file mode 100644
index 0000000..4a60977
--- /dev/null
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/StringLabelValueItemProvider.java
@@ -0,0 +1,100 @@
+/**
+ */
+package org.eclipse.stem.definitions.labels.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.definitions.labels.StringLabelValue;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.definitions.labels.StringLabelValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StringLabelValueItemProvider extends GenericLabelValueItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StringLabelValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns StringLabelValue.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/StringLabelValue")); //$NON-NLS-1$
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ Object labelValue = ((StringLabelValue)object).getValue();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_StringLabelValue_type") : //$NON-NLS-1$
+ getString("_UI_StringLabelValue_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/TransportRelationshipLabelItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/TransportRelationshipLabelItemProvider.java
index 96dfed8..a630917 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/TransportRelationshipLabelItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/TransportRelationshipLabelItemProvider.java
@@ -40,9 +40,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
-public class TransportRelationshipLabelItemProvider extends DynamicEdgeLabelItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class TransportRelationshipLabelItemProvider extends DynamicEdgeLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc --> <!-- end-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/TransportRelationshipLabelValueItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/TransportRelationshipLabelValueItemProvider.java
index 4c7f857..d632dae 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/TransportRelationshipLabelValueItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/provider/TransportRelationshipLabelValueItemProvider.java
@@ -37,9 +37,7 @@
* @generated
*/
public class TransportRelationshipLabelValueItemProvider extends
- LabelValueItemProvider implements IEditingDomainItemProvider,
- IStructuredItemContentProvider, ITreeItemContentProvider,
- IItemLabelProvider, IItemPropertySource {
+ LabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc --> <!-- end-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/util/LabelsAdapterFactory.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/util/LabelsAdapterFactory.java
index dfd277d..04b4ecd 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/util/LabelsAdapterFactory.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/util/LabelsAdapterFactory.java
@@ -27,6 +27,7 @@
import org.eclipse.stem.core.graph.StaticLabel;
import org.eclipse.stem.core.graph.StaticNodeLabel;
import org.eclipse.stem.core.modifier.Modifiable;
+import org.eclipse.stem.definitions.labels.*;
import org.eclipse.stem.definitions.labels.AreaLabel;
import org.eclipse.stem.definitions.labels.AreaLabelValue;
import org.eclipse.stem.definitions.labels.CommonBorderRelationshipLabel;
@@ -168,6 +169,30 @@
return createEarthScienceLabelValueAdapter();
}
@Override
+ public <T> Adapter caseGenericLabelValue(GenericLabelValue<T> object) {
+ return createGenericLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseDoubleLabelValue(DoubleLabelValue object) {
+ return createDoubleLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseIntegerLabelValue(IntegerLabelValue object) {
+ return createIntegerLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseLongLabelValue(LongLabelValue object) {
+ return createLongLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseStringLabelValue(StringLabelValue object) {
+ return createStringLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseKeyValueLabelValue(KeyValueLabelValue object) {
+ return createKeyValueLabelValueAdapter();
+ }
+ @Override
public <T> Adapter caseComparable(Comparable<T> object) {
return createComparableAdapter();
}
@@ -455,6 +480,90 @@
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.definitions.labels.GenericLabelValue <em>Generic Label Value</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.stem.definitions.labels.GenericLabelValue
+ * @generated
+ */
+ public Adapter createGenericLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.definitions.labels.DoubleLabelValue <em>Double Label Value</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.stem.definitions.labels.DoubleLabelValue
+ * @generated
+ */
+ public Adapter createDoubleLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.definitions.labels.IntegerLabelValue <em>Integer Label Value</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.stem.definitions.labels.IntegerLabelValue
+ * @generated
+ */
+ public Adapter createIntegerLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.definitions.labels.LongLabelValue <em>Long Label Value</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.stem.definitions.labels.LongLabelValue
+ * @generated
+ */
+ public Adapter createLongLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.definitions.labels.StringLabelValue <em>String Label Value</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.stem.definitions.labels.StringLabelValue
+ * @generated
+ */
+ public Adapter createStringLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.definitions.labels.KeyValueLabelValue <em>Key Value Label Value</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.stem.definitions.labels.KeyValueLabelValue
+ * @generated
+ */
+ public Adapter createKeyValueLabelValueAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link java.lang.Comparable <em>Comparable</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/util/LabelsSwitch.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/util/LabelsSwitch.java
index 5b3239a..aaea53d 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/util/LabelsSwitch.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/labels/util/LabelsSwitch.java
@@ -15,6 +15,8 @@
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
import org.eclipse.stem.core.common.Identifiable;
import org.eclipse.stem.core.common.SanityChecker;
import org.eclipse.stem.core.graph.DynamicEdgeLabel;
@@ -27,6 +29,7 @@
import org.eclipse.stem.core.graph.StaticLabel;
import org.eclipse.stem.core.graph.StaticNodeLabel;
import org.eclipse.stem.core.modifier.Modifiable;
+import org.eclipse.stem.definitions.labels.*;
import org.eclipse.stem.definitions.labels.AreaLabel;
import org.eclipse.stem.definitions.labels.AreaLabelValue;
import org.eclipse.stem.definitions.labels.CommonBorderRelationshipLabel;
@@ -55,7 +58,7 @@
* @see org.eclipse.stem.definitions.labels.LabelsPackage
* @generated
*/
-public class LabelsSwitch<T1> {
+public class LabelsSwitch<T1> extends Switch<T1> {
/**
* The cached model package
* <!-- begin-user-doc --> <!-- end-user-doc -->
@@ -76,14 +79,16 @@
}
/**
- * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * Checks whether this is a switch for the given package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
* @generated
*/
- public T1 doSwitch(EObject theEObject) {
- return doSwitch(theEObject.eClass(), theEObject);
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
}
/**
@@ -93,26 +98,7 @@
* @return the first non-null result returned by a <code>caseXXX</code> call.
* @generated
*/
- protected T1 doSwitch(EClass theEClass, EObject theEObject) {
- if (theEClass.eContainer() == modelPackage) {
- return doSwitch(theEClass.getClassifierID(), theEObject);
- }
- else {
- List<EClass> eSuperTypes = theEClass.getESuperTypes();
- return
- eSuperTypes.isEmpty() ?
- defaultCase(theEObject) :
- doSwitch(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
- */
+ @Override
protected T1 doSwitch(int classifierID, EObject theEObject) {
switch (classifierID) {
case LabelsPackage.AREA_LABEL: {
@@ -295,6 +281,59 @@
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case LabelsPackage.GENERIC_LABEL_VALUE: {
+ GenericLabelValue<?> genericLabelValue = (GenericLabelValue<?>)theEObject;
+ T1 result = caseGenericLabelValue(genericLabelValue);
+ if (result == null) result = caseLabelValue(genericLabelValue);
+ if (result == null) result = caseSanityChecker(genericLabelValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LabelsPackage.DOUBLE_LABEL_VALUE: {
+ DoubleLabelValue doubleLabelValue = (DoubleLabelValue)theEObject;
+ T1 result = caseDoubleLabelValue(doubleLabelValue);
+ if (result == null) result = caseGenericLabelValue(doubleLabelValue);
+ if (result == null) result = caseLabelValue(doubleLabelValue);
+ if (result == null) result = caseSanityChecker(doubleLabelValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LabelsPackage.INTEGER_LABEL_VALUE: {
+ IntegerLabelValue integerLabelValue = (IntegerLabelValue)theEObject;
+ T1 result = caseIntegerLabelValue(integerLabelValue);
+ if (result == null) result = caseGenericLabelValue(integerLabelValue);
+ if (result == null) result = caseLabelValue(integerLabelValue);
+ if (result == null) result = caseSanityChecker(integerLabelValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LabelsPackage.LONG_LABEL_VALUE: {
+ LongLabelValue longLabelValue = (LongLabelValue)theEObject;
+ T1 result = caseLongLabelValue(longLabelValue);
+ if (result == null) result = caseGenericLabelValue(longLabelValue);
+ if (result == null) result = caseLabelValue(longLabelValue);
+ if (result == null) result = caseSanityChecker(longLabelValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LabelsPackage.STRING_LABEL_VALUE: {
+ StringLabelValue stringLabelValue = (StringLabelValue)theEObject;
+ T1 result = caseStringLabelValue(stringLabelValue);
+ if (result == null) result = caseGenericLabelValue(stringLabelValue);
+ if (result == null) result = caseLabelValue(stringLabelValue);
+ if (result == null) result = caseSanityChecker(stringLabelValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LabelsPackage.KEY_VALUE_LABEL_VALUE: {
+ KeyValueLabelValue keyValueLabelValue = (KeyValueLabelValue)theEObject;
+ T1 result = caseKeyValueLabelValue(keyValueLabelValue);
+ if (result == null) result = caseGenericLabelValue(keyValueLabelValue);
+ if (result == null) result = caseLabelValue(keyValueLabelValue);
+ if (result == null) result = caseSanityChecker(keyValueLabelValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
default: return defaultCase(theEObject);
}
}
@@ -526,6 +565,96 @@
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Generic Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Generic Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public <T> T1 caseGenericLabelValue(GenericLabelValue<T> object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Double Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Double Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDoubleLabelValue(DoubleLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Integer Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Integer Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseIntegerLabelValue(IntegerLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Long Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Long Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseLongLabelValue(LongLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>String Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>String Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseStringLabelValue(StringLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Key Value Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Key Value Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseKeyValueLabelValue(KeyValueLabelValue object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Comparable</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
@@ -720,6 +849,7 @@
* @see #doSwitch(org.eclipse.emf.ecore.EObject)
* @generated
*/
+ @Override
public T1 defaultCase(EObject object) {
return null;
}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/GeographicFeatureImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/GeographicFeatureImpl.java
index 89f7ecb..b05c8b6 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/GeographicFeatureImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/GeographicFeatureImpl.java
@@ -20,8 +20,6 @@
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Geographic Feature</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/NodesFactoryImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/NodesFactoryImpl.java
index 90336bd..3697ea2 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/NodesFactoryImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/NodesFactoryImpl.java
@@ -16,6 +16,7 @@
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.stem.definitions.nodes.*;
import org.eclipse.stem.definitions.nodes.NodesFactory;
import org.eclipse.stem.definitions.nodes.NodesPackage;
import org.eclipse.stem.definitions.nodes.Region;
@@ -35,7 +36,7 @@
*/
public static NodesFactory init() {
try {
- NodesFactory theNodesFactory = (NodesFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/stem/definitions/nodes.ecore"); //$NON-NLS-1$
+ NodesFactory theNodesFactory = (NodesFactory)EPackage.Registry.INSTANCE.getEFactory(NodesPackage.eNS_URI);
if (theNodesFactory != null) {
return theNodesFactory;
}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/RegionImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/RegionImpl.java
index b1b66a5..d1ddd46 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/RegionImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/impl/RegionImpl.java
@@ -20,8 +20,6 @@
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Region</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/presentation/NodesActionBarContributor.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/presentation/NodesActionBarContributor.java
index 358324d..2c075b6 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/presentation/NodesActionBarContributor.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/presentation/NodesActionBarContributor.java
@@ -206,8 +206,7 @@
//
submenuManager.addMenuListener
(new IMenuListener() {
- @Override
- public void menuAboutToShow(IMenuManager menuManager) {
+ public void menuAboutToShow(IMenuManager menuManager) {
menuManager.updateAll(true);
}
});
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/presentation/NodesEditor.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/presentation/NodesEditor.java
index d201fd2..dafaca6 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/presentation/NodesEditor.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/presentation/NodesEditor.java
@@ -81,6 +81,7 @@
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.util.LocalSelectionTransfer;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ISelectionProvider;
@@ -106,6 +107,7 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
@@ -188,7 +190,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected PropertySheetPage propertySheetPage;
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
/**
* This is the viewer that shadows the selection in the content outline.
@@ -248,7 +250,6 @@
*/
protected IPartListener partListener =
new IPartListener() {
- @Override
public void partActivated(IWorkbenchPart p) {
if (p instanceof ContentOutline) {
if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
@@ -258,7 +259,7 @@
}
}
else if (p instanceof PropertySheet) {
- if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
getActionBarContributor().setActiveEditor(NodesEditor.this);
handleActivate();
}
@@ -267,19 +268,15 @@
handleActivate();
}
}
- @Override
public void partBroughtToTop(IWorkbenchPart p) {
// Ignore.
}
- @Override
public void partClosed(IWorkbenchPart p) {
// Ignore.
}
- @Override
public void partDeactivated(IWorkbenchPart p) {
// Ignore.
}
- @Override
public void partOpened(IWorkbenchPart p) {
// Ignore.
}
@@ -352,8 +349,7 @@
if (updateProblemIndication) {
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
updateProblemIndication();
}
});
@@ -375,6 +371,15 @@
@Override
protected void unsetTarget(Resource target) {
basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
}
};
@@ -386,7 +391,6 @@
*/
protected IResourceChangeListener resourceChangeListener =
new IResourceChangeListener() {
- @Override
public void resourceChanged(IResourceChangeEvent event) {
IResourceDelta delta = event.getDelta();
try {
@@ -395,7 +399,6 @@
protected Collection<Resource> changedResources = new ArrayList<Resource>();
protected Collection<Resource> removedResources = new ArrayList<Resource>();
- @Override
public boolean visit(IResourceDelta delta) {
if (delta.getResource().getType() == IResource.FILE) {
if (delta.getKind() == IResourceDelta.REMOVED ||
@@ -410,6 +413,7 @@
}
}
}
+ return false;
}
return true;
@@ -430,8 +434,7 @@
if (!visitor.getRemovedResources().isEmpty()) {
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
removedResources.addAll(visitor.getRemovedResources());
if (!isDirty()) {
getSite().getPage().closeEditor(NodesEditor.this, false);
@@ -443,8 +446,7 @@
if (!visitor.getChangedResources().isEmpty()) {
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
changedResources.addAll(visitor.getChangedResources());
if (getSite().getPage().getActiveEditor() == NodesEditor.this) {
handleActivate();
@@ -648,12 +650,10 @@
//
commandStack.addCommandStackListener
(new CommandStackListener() {
- @Override
- public void commandStackChanged(final EventObject event) {
+ public void commandStackChanged(final EventObject event) {
getContainer().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
firePropertyChange(IEditorPart.PROP_DIRTY);
// Try to select the affected objects.
@@ -662,8 +662,14 @@
if (mostRecentCommand != null) {
setSelectionToViewer(mostRecentCommand.getAffectedObjects());
}
- if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
- propertySheetPage.refresh();
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed()) {
+ i.remove();
+ }
+ else {
+ propertySheetPage.refresh();
+ }
}
}
});
@@ -699,7 +705,6 @@
if (theSelection != null && !theSelection.isEmpty()) {
Runnable runnable =
new Runnable() {
- @Override
public void run() {
// Try to select the items in the current content viewer of the editor.
//
@@ -777,7 +782,6 @@
new ISelectionChangedListener() {
// This just notifies those things that are affected by the section.
//
- @Override
public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
setSelection(selectionChangedEvent.getSelection());
}
@@ -833,7 +837,7 @@
getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
- Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
}
@@ -873,10 +877,11 @@
* @generated
*/
public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
- if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ boolean hasErrors = !resource.getErrors().isEmpty();
+ if (hasErrors || !resource.getWarnings().isEmpty()) {
BasicDiagnostic basicDiagnostic =
new BasicDiagnostic
- (Diagnostic.ERROR,
+ (hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING,
"org.eclipse.stem.definitions", //$NON-NLS-1$
0,
getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
@@ -932,8 +937,7 @@
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
setActivePage(0);
}
});
@@ -957,8 +961,7 @@
getSite().getShell().getDisplay().asyncExec
(new Runnable() {
- @Override
- public void run() {
+ public void run() {
updateProblemIndication();
}
});
@@ -1093,8 +1096,7 @@
(new ISelectionChangedListener() {
// This ensures that we handle selections correctly.
//
- @Override
- public void selectionChanged(SelectionChangedEvent event) {
+ public void selectionChanged(SelectionChangedEvent event) {
handleContentOutlineSelection(event.getSelection());
}
});
@@ -1110,23 +1112,22 @@
* @generated
*/
public IPropertySheetPage getPropertySheetPage() {
- if (propertySheetPage == null) {
- propertySheetPage =
- new ExtendedPropertySheetPage(editingDomain) {
- @Override
- public void setSelectionToViewer(List<?> selection) {
- NodesEditor.this.setSelectionToViewer(selection);
- NodesEditor.this.setFocus();
- }
+ PropertySheetPage propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ NodesEditor.this.setSelectionToViewer(selection);
+ NodesEditor.this.setFocus();
+ }
- @Override
- public void setActionBars(IActionBars actionBars) {
- super.setActionBars(actionBars);
- getActionBarContributor().shareGlobalActions(this, actionBars);
- }
- };
- propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
- }
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
return propertySheetPage;
}
@@ -1181,6 +1182,7 @@
//
final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
// Do the work within an operation because this is a long running activity that modifies the workbench.
//
@@ -1233,7 +1235,7 @@
/**
* This returns whether something has been persisted to the URI of the specified resource.
- * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -1306,20 +1308,9 @@
*/
@Override
public void gotoMarker(IMarker marker) {
- try {
- if (marker.getType().equals(EValidator.MARKER)) {
- String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
- if (uriAttribute != null) {
- URI uri = URI.createURI(uriAttribute);
- EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
- if (eObject != null) {
- setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
- }
- }
- }
- }
- catch (CoreException exception) {
- DefinitionsEditPlugin.INSTANCE.log(exception);
+ List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+ if (!targetObjects.isEmpty()) {
+ setSelectionToViewer(targetObjects);
}
}
@@ -1510,7 +1501,7 @@
getActionBarContributor().setActiveEditor(null);
}
- if (propertySheetPage != null) {
+ for (PropertySheetPage propertySheetPage : propertySheetPages) {
propertySheetPage.dispose();
}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/provider/GeographicFeatureItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/provider/GeographicFeatureItemProvider.java
index 2891d5a..b5c6fa4 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/provider/GeographicFeatureItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/provider/GeographicFeatureItemProvider.java
@@ -35,13 +35,7 @@
* @generated
*/
public class GeographicFeatureItemProvider
- extends NodeItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends NodeItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/provider/RegionItemProvider.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/provider/RegionItemProvider.java
index 6c558b5..9974558 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/provider/RegionItemProvider.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/provider/RegionItemProvider.java
@@ -34,13 +34,7 @@
* @generated
*/
public class RegionItemProvider
- extends GeographicFeatureItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends GeographicFeatureItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/util/NodesAdapterFactory.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/util/NodesAdapterFactory.java
index b75aeb9..2f5722a 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/util/NodesAdapterFactory.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/util/NodesAdapterFactory.java
@@ -19,6 +19,7 @@
import org.eclipse.stem.core.common.Identifiable;
import org.eclipse.stem.core.common.SanityChecker;
import org.eclipse.stem.core.graph.Node;
+import org.eclipse.stem.definitions.nodes.*;
import org.eclipse.stem.definitions.nodes.GeographicFeature;
import org.eclipse.stem.definitions.nodes.NodesPackage;
import org.eclipse.stem.definitions.nodes.Region;
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/util/NodesSwitch.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/util/NodesSwitch.java
index f93c137..42903a6 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/util/NodesSwitch.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/nodes/util/NodesSwitch.java
@@ -15,9 +15,12 @@
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
import org.eclipse.stem.core.common.Identifiable;
import org.eclipse.stem.core.common.SanityChecker;
import org.eclipse.stem.core.graph.Node;
+import org.eclipse.stem.definitions.nodes.*;
import org.eclipse.stem.definitions.nodes.GeographicFeature;
import org.eclipse.stem.definitions.nodes.NodesPackage;
import org.eclipse.stem.definitions.nodes.Region;
@@ -35,7 +38,7 @@
* @see org.eclipse.stem.definitions.nodes.NodesPackage
* @generated
*/
-public class NodesSwitch<T1> {
+public class NodesSwitch<T1> extends Switch<T1> {
/**
* The cached model package
* <!-- begin-user-doc -->
@@ -57,14 +60,16 @@
}
/**
- * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * Checks whether this is a switch for the given package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
* @generated
*/
- public T1 doSwitch(EObject theEObject) {
- return doSwitch(theEObject.eClass(), theEObject);
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
}
/**
@@ -74,26 +79,7 @@
* @return the first non-null result returned by a <code>caseXXX</code> call.
* @generated
*/
- protected T1 doSwitch(EClass theEClass, EObject theEObject) {
- if (theEClass.eContainer() == modelPackage) {
- return doSwitch(theEClass.getClassifierID(), theEObject);
- }
- else {
- List<EClass> eSuperTypes = theEClass.getESuperTypes();
- return
- eSuperTypes.isEmpty() ?
- defaultCase(theEObject) :
- doSwitch(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
- */
+ @Override
protected T1 doSwitch(int classifierID, EObject theEObject) {
switch (classifierID) {
case NodesPackage.GEOGRAPHIC_FEATURE: {
@@ -117,6 +103,12 @@
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case NodesPackage.NODE: {
+ Node node = (Node)theEObject;
+ T1 result = caseNode(node);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
default: return defaultCase(theEObject);
}
}
@@ -237,6 +229,7 @@
* @see #doSwitch(org.eclipse.emf.ecore.EObject)
* @generated
*/
+ @Override
public T1 defaultCase(EObject object) {
return null;
}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/impl/RateImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/impl/RateImpl.java
index b7b6834..165209e 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/impl/RateImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/impl/RateImpl.java
@@ -24,10 +24,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.definitions.types.impl.RateImpl#getRate <em>Rate</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/impl/TypesFactoryImpl.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/impl/TypesFactoryImpl.java
index 0031e1e..25303e0 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/impl/TypesFactoryImpl.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/impl/TypesFactoryImpl.java
@@ -16,6 +16,7 @@
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.stem.definitions.types.*;
import org.eclipse.stem.definitions.types.TypesFactory;
import org.eclipse.stem.definitions.types.TypesPackage;
@@ -34,7 +35,7 @@
*/
public static TypesFactory init() {
try {
- TypesFactory theTypesFactory = (TypesFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/stem/definitions/types.ecore"); //$NON-NLS-1$
+ TypesFactory theTypesFactory = (TypesFactory)EPackage.Registry.INSTANCE.getEFactory(TypesPackage.eNS_URI);
if (theTypesFactory != null) {
return theTypesFactory;
}
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/util/TypesAdapterFactory.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/util/TypesAdapterFactory.java
index a825f24..f921ac8 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/util/TypesAdapterFactory.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/util/TypesAdapterFactory.java
@@ -15,6 +15,7 @@
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.stem.definitions.types.*;
import org.eclipse.stem.definitions.types.CategorizedType;
import org.eclipse.stem.definitions.types.Rate;
import org.eclipse.stem.definitions.types.TypesPackage;
diff --git a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/util/TypesSwitch.java b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/util/TypesSwitch.java
index 3b28594..a086b3d 100644
--- a/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/util/TypesSwitch.java
+++ b/core/org.eclipse.stem.definitions/src/org/eclipse/stem/definitions/types/util/TypesSwitch.java
@@ -15,6 +15,9 @@
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.stem.definitions.types.*;
import org.eclipse.stem.definitions.types.CategorizedType;
import org.eclipse.stem.definitions.types.Rate;
import org.eclipse.stem.definitions.types.TypesPackage;
@@ -32,7 +35,7 @@
* @see org.eclipse.stem.definitions.types.TypesPackage
* @generated
*/
-public class TypesSwitch<T> {
+public class TypesSwitch<T> extends Switch<T> {
/**
* The cached model package
* <!-- begin-user-doc -->
@@ -54,14 +57,16 @@
}
/**
- * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * Checks whether this is a switch for the given package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
* @generated
*/
- public T doSwitch(EObject theEObject) {
- return doSwitch(theEObject.eClass(), theEObject);
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
}
/**
@@ -71,26 +76,7 @@
* @return the first non-null result returned by a <code>caseXXX</code> call.
* @generated
*/
- protected T doSwitch(EClass theEClass, EObject theEObject) {
- if (theEClass.eContainer() == modelPackage) {
- return doSwitch(theEClass.getClassifierID(), theEObject);
- }
- else {
- List<EClass> eSuperTypes = theEClass.getESuperTypes();
- return
- eSuperTypes.isEmpty() ?
- defaultCase(theEObject) :
- doSwitch(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
- */
+ @Override
protected T doSwitch(int classifierID, EObject theEObject) {
switch (classifierID) {
case TypesPackage.CATEGORIZED_TYPE: {
@@ -150,6 +136,7 @@
* @see #doSwitch(org.eclipse.emf.ecore.EObject)
* @generated
*/
+ @Override
public T defaultCase(EObject object) {
return null;
}
diff --git a/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/execution/Executable.java b/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/execution/Executable.java
index d2bce88..baa122d 100644
--- a/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/execution/Executable.java
+++ b/core/org.eclipse.stem.jobs/src/org/eclipse/stem/jobs/execution/Executable.java
@@ -94,7 +94,9 @@
sb.append("-");
sb.append(getSequenceNumber());
sb.append("-");
- sb.append(DublinCoreImpl.createISO8601DateString(getCreationTime()));
+ sb.append(DublinCoreImpl.createISO8601DateStringSeconds(getCreationTime()));
+ // for milli-sec resolution use the following
+ // sb.append(DublinCoreImpl.createISO8601DateString(getCreationTime()));
return sb.toString();
} // getUniqueIDString
diff --git a/core/org.eclipse.stem.loggers.csv/META-INF/MANIFEST.MF b/core/org.eclipse.stem.loggers.csv/META-INF/MANIFEST.MF
index 4a48405..d65ac79 100644
--- a/core/org.eclipse.stem.loggers.csv/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.stem.loggers.csv/META-INF/MANIFEST.MF
@@ -7,8 +7,7 @@
Bundle-Activator: org.eclipse.stem.loggers.csv.Activator
Bundle-Vendor: %providerName
Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.6,
- JavaSE-1.6
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.stem.jobs,
org.eclipse.stem.ui,
diff --git a/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/logger/DelimetedFileDecoratorLogger.java b/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/logger/DelimetedFileDecoratorLogger.java
index 811802c..0a529a8 100644
--- a/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/logger/DelimetedFileDecoratorLogger.java
+++ b/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/logger/DelimetedFileDecoratorLogger.java
@@ -25,6 +25,7 @@
import java.util.Set;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
@@ -78,7 +79,7 @@
private final DelimetedFileSimulationLogger simulationLogger;
- private final IntegrationDecorator decorator;
+ protected final IntegrationDecorator decorator;
private final CSVLogger logger;
@@ -91,6 +92,8 @@
private TimeProvider timeProvider;
+ private static final String NOT_SET = "null";
+
//private int interationCount = 0;
private boolean logIntegers = false;
@@ -99,16 +102,71 @@
private List<Integer> resolutionLevels;
private Map<String,EList<String>> identifierProperties;
- public DelimetedFileDecoratorLogger(
- DelimetedFileSimulationLogger simulationLogger,
- IntegrationDecorator decorator) {
+ private boolean setupComplete = false;
+
+ /**
+ *
+ * @param simulationLogger
+ * @param decorator
+ */
+ public DelimetedFileDecoratorLogger(DelimetedFileSimulationLogger simulationLogger, IntegrationDecorator decorator) {
this.simulationLogger = simulationLogger;
this.decorator = decorator;
this.logger = simulationLogger.getLogger();
- identifierProperties = logger.getDecoratorProperties(decorator.getURI());
+// decorator.getURI().trimQuery()
+ URI baseDecoratorURI = decorator.getURI().trimQuery();
+ identifierProperties = logger.getDecoratorProperties(baseDecoratorURI);
+
}
+ /**
+ * This constructor is only used when "cloning" a logger from a parent logger to log evolving disease models
+ * @param simulationLogger
+ * @param decorator
+ * @param noSummaries
+ */
+ public DelimetedFileDecoratorLogger(DelimetedFileSimulationLogger simulationLogger, IntegrationDecorator decorator, boolean noSummaries) {
+
+ this.simulationLogger = simulationLogger;
+ this.decorator = decorator;
+ this.logger = simulationLogger.getLogger();
+
+// decorator.getURI().trimQuery()
+ URI baseDecoratorURI = decorator.getURI().trimQuery();
+ identifierProperties = logger.getDecoratorProperties(baseDecoratorURI);
+ if(noSummaries) {
+ this.logger.setLogHtmlSummary(false);// only true for the first parent - not the children
+ this.logger.setLogRunParameters(false); // only true for the first parent - not the children
+ }
+
+ /*this.simulationLogger = parentLogger.simulationLogger;
+ this.decorator = decorator;
+ this.logger = simulationLogger.getLogger();
+ this.identifierProperties = new HashMap<String,EList<String>>();
+ this.identifierProperties.putAll(parentLogger.identifierProperties);
+
+ // clone from parent
+ this.getDecoratorName(); // private String decoratorName;
+ EXCLUDED_NODES.addAll(parentLogger.EXCLUDED_NODES);
+ //sortedNodeList.putAll(parentLogger.sortedNodeList);
+
+ this.getLogDirectory(); // private File logDirectory;
+
+ this.logIntegers = parentLogger.logIntegers;
+ this.beforeStart = parentLogger.beforeStart;
+
+ this.getTimeProvider(); //private TimeProvider timeProvider;
+ this.logger.setLogHtmlSummary(false);// only true for the first parent - not the children
+ this.logger.setLogRunParameters(false); // only true for the first parent - not the children
+ //logWriters.putAll(parentLogger.logWriters); => done by logger.start
+ this.start();
+ //nodeLevels.putAll(parentLogger.nodeLevels);
+ //this.resolutionLevels.addAll(parentLogger.resolutionLevels);
+ //this.identifierProperties.putAll(parentLogger.identifierProperties);
+*/
+ }
+
/**
* Starts the decorator logger. If enabled, writes the
@@ -116,15 +174,12 @@
*/
public void start()
{
- if (logger.isLogRunParameters()) {
- writeRunParameters();
- }
setupPropertyLoggers();
- if (logger.isLogInitialState()) {
- log();
- }
+
+
+ setupComplete = true;
}
/**
@@ -160,6 +215,11 @@
*/
public void log()
{
+ if (!setupComplete) {
+ start();
+ }
+
+
//interationCount++;
int stepNumber = getSequencer().getCycle();
@@ -269,6 +329,13 @@
return decoratorName;
}
+ /**
+ * accessor for the CSV logger
+ * @return
+ */
+ public CSVLogger getLogger() {
+ return logger;
+ }
/**
* @return The base directory for all log files for this simulation & decorator
@@ -317,7 +384,7 @@
/**
* Create and write the parameters for this simulation
*/
- private void writeRunParameters()
+ protected void writeRunParameters()
{
if (decorator == null) {
return;
@@ -344,9 +411,17 @@
if (CommonPackage.eINSTANCE.getDublinCore().equals(feature.getEContainingClass())) {
continue;
}
-
header.add(feature.getName());
- values.add(((EObject) decorator).eGet(feature).toString());
+ Object target = ((EObject) decorator).eGet(feature);
+ if(target!=null) {
+ String nextValue = target.toString().replace(",","_"); // make sure we do nto write commas in the csvLog
+ values.add(nextValue);
+ } else {
+ values.add(NOT_SET);
+ }
+
+
+
}
fwp.writeLine(header);
diff --git a/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/logger/DelimetedFileSimulationLogger.java b/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/logger/DelimetedFileSimulationLogger.java
index 47ea64b..672538e 100644
--- a/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/logger/DelimetedFileSimulationLogger.java
+++ b/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/logger/DelimetedFileSimulationLogger.java
@@ -16,6 +16,10 @@
import java.util.Arrays;
import java.util.List;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.stem.core.graph.Graph;
+import org.eclipse.stem.core.graph.GraphPackage;
import org.eclipse.stem.core.model.Decorator;
import org.eclipse.stem.core.model.IntegrationDecorator;
import org.eclipse.stem.core.scenario.Scenario;
@@ -60,6 +64,8 @@
*/
private final List<DelimetedFileDecoratorLogger> decoratorLoggers = new ArrayList<DelimetedFileDecoratorLogger>();
+
+
/**
* @param logger
* @param simulation
@@ -75,6 +81,10 @@
}
}
+
+
+
+
/**
* @return The underlying model for this simulation logger
*/
@@ -134,6 +144,14 @@
{
for (DelimetedFileDecoratorLogger logger : decoratorLoggers) {
logger.start();
+
+ if (logger.getLogger().isLogRunParameters()) {
+ logger.writeRunParameters();
+ }
+
+ if (logger.getLogger().isLogInitialState()) {
+ logger.log();
+ }
}
}
@@ -153,6 +171,33 @@
*/
public void log(SimulationEvent event)
{
+
+// // if this is an Evolving Disease model we need to clone any new children
+// if((EvolvingDiseaseModel.newChildrenToLog != null)&&(EvolvingDiseaseModel.newChildrenToLog.size() > 0)){
+//
+// EvolvingDiseaseModel evolvingDecorator = null;
+// DelimetedFileDecoratorLogger parentLogger = null;
+// for (DelimetedFileDecoratorLogger logger : decoratorLoggers) {
+// IntegrationDecorator decorator = logger.decorator;
+// if(decorator instanceof EvolvingDiseaseModel) {
+// parentLogger = logger;
+// evolvingDecorator = (EvolvingDiseaseModel)decorator;
+// break;
+// }
+// }
+//
+// synchronized(this) {
+// // New loggers for new clones from EvolvingDiseaseModel.newChildrenToLog
+// if(EvolvingDiseaseModel.newChildrenToLog.size() > 0) {
+// for(EvolvingDiseaseModel decorator:EvolvingDiseaseModel.newChildrenToLog) {
+// this.addChildDecoratorLogger(parentLogger, (IntegrationDecorator)decorator);
+// }
+// EvolvingDiseaseModel.newChildrenToLog.clear();
+// }
+// }
+// }// if EVOLVING then prepare to log children
+
+
for (DelimetedFileDecoratorLogger logger : decoratorLoggers) {
if (event.getSimulationState().equals(SimulationState.PAUSED)) {
logger.flush();
@@ -173,6 +218,24 @@
decoratorLoggers.add(new DelimetedFileDecoratorLogger(this, decorator));
}
}
+
+ /**
+ * SPLUNGE 1
+ * This method is called only for evolving disease models when a new logger is created for a new child disease
+ * @param decorator
+ */
+ protected void addChildDecoratorLogger(IntegrationDecorator decorator) {
+// for (DelimetedFileDecoratorLogger logger : decoratorLoggers) {
+// if (logger.decorator == parent) {
+//
+// }
+// }
+ // TODO JHK: the true flag prevents child loggers from logging summaries (which causes a recursion error and should not be logged anyway).
+ DelimetedFileDecoratorLogger childLogger = new DelimetedFileDecoratorLogger(this, decorator, true);
+ decoratorLoggers.add(childLogger);
+// childLogger.start();
+ }
+
/**
* Checks if the specified decorator is explicitly excluded by class name
@@ -193,6 +256,31 @@
{
List<IntegrationDecorator> decorators = new ArrayList<IntegrationDecorator>();
+ simulation.getScenario().getCanonicalGraph().eAdapters().add(new AdapterImpl() {
+
+ @Override
+ public void notifyChanged(Notification msg) {
+
+ super.notifyChanged(msg);
+ int featureId = msg.getFeatureID(Graph.class);
+
+ if (featureId == GraphPackage.GRAPH__DECORATORS) {
+ if (msg.getNewValue() instanceof IntegrationDecorator) {
+ addChildDecoratorLogger((IntegrationDecorator)msg.getNewValue());
+ //System.out.println(msg);
+ }
+
+
+ }
+
+ //addChildDecoratorLogger(parentLogger, (IntegrationDecorator)decorator);
+ }
+
+
+
+ });
+
+
for (Decorator decorator : simulation.getScenario().getCanonicalGraph().getDecorators()) {
if(decorator instanceof IntegrationDecorator
&& !isExcludedDecorator(decorator)
diff --git a/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/provider/CSVLoggerItemProvider.java b/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/provider/CSVLoggerItemProvider.java
index 41281c4..9a7eed3 100644
--- a/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/provider/CSVLoggerItemProvider.java
+++ b/core/org.eclipse.stem.loggers.csv/src/org/eclipse/stem/loggers/csv/provider/CSVLoggerItemProvider.java
@@ -17,7 +17,6 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -247,15 +246,11 @@
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
@Override
public String getText(Object object) {
- URI labelValue = ((CSVLogger)object).getURI();
- String label = labelValue == null ? null : labelValue.toString();
- return label == null || label.length() == 0 ?
- getString("_UI_CSVLogger_type") :
- getString("_UI_CSVLogger_type") + " " + label;
+ return super.getText(object);
}
/**
diff --git a/core/org.eclipse.stem.loggers/META-INF/MANIFEST.MF b/core/org.eclipse.stem.loggers/META-INF/MANIFEST.MF
index b61b835..72000f2 100644
--- a/core/org.eclipse.stem.loggers/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.stem.loggers/META-INF/MANIFEST.MF
@@ -11,7 +11,7 @@
org.eclipse.emf.ecore;visibility:=reexport,
org.eclipse.emf.ecore.edit,
org.eclipse.stem.core;visibility:=reexport,
- org.eclipse.stem.jobs,
+ org.eclipse.stem.jobs;visibility:=reexport,
org.eclipse.core.resources
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.stem.loggers,
diff --git a/core/org.eclipse.stem.loggers/models/SimulationLogger.genmodel b/core/org.eclipse.stem.loggers/models/SimulationLogger.genmodel
index ac68b1c..310fa3b 100644
--- a/core/org.eclipse.stem.loggers/models/SimulationLogger.genmodel
+++ b/core/org.eclipse.stem.loggers/models/SimulationLogger.genmodel
@@ -7,7 +7,7 @@
editPluginClass="org.eclipse.stem.loggers.provider.SimulationLoggerEditPlugin"
editorPluginClass="org.eclipse.stem.loggers.presentation.SimulationLoggerEditorPlugin"
testSuiteClass="org.eclipse.stem.loggers.tests.SimulationLoggerAllTests" importerID="org.eclipse.emf.importer.ecore"
- complianceLevel="5.0" editPluginID="org.eclipse.stem.loggers" editorPluginID="org.eclipse.stem.loggers"
+ complianceLevel="5.0" editPluginID="org.eclipse.stem.ui.loggers" editorPluginID="org.eclipse.stem.ui.loggers"
runtimeVersion="2.6" language="" usedGenPackages="../../org.eclipse.stem.core/model/core.genmodel#//common ../../org.eclipse.stem.core/model/core.genmodel#//graph ../../org.eclipse.stem.core/model/core.genmodel#//model ../../org.eclipse.stem.core/model/core.genmodel#//modifier ../../org.eclipse.stem.core/model/core.genmodel#//scenario ../../org.eclipse.stem.core/model/core.genmodel#//sequencer ../../org.eclipse.stem.core/model/core.genmodel#//solver ../../org.eclipse.stem.core/model/core.genmodel#//logger platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore"
runtimePlatform="RCP">
<foreignModel>SimulationLogger.ecore</foreignModel>
diff --git a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/IdentifierProperty.java b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/IdentifierProperty.java
index 920c75c..0e6379e 100644
--- a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/IdentifierProperty.java
+++ b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/IdentifierProperty.java
@@ -20,11 +20,11 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.loggers.IdentifierProperty#getIdentifier <em>Identifier</em>}</li>
* <li>{@link org.eclipse.stem.loggers.IdentifierProperty#getProperty <em>Property</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.loggers.SimulationLoggerPackage#getIdentifierProperty()
* @model
diff --git a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/LOGGER_EVENTS.java b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/LOGGER_EVENTS.java
index aaba40f..ab02307 100644
--- a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/LOGGER_EVENTS.java
+++ b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/LOGGER_EVENTS.java
@@ -308,6 +308,8 @@
* Returns the '<em><b>LOGGER EVENTS</b></em>' literal with the specified literal value.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static LOGGER_EVENTS get(String literal) {
@@ -324,6 +326,8 @@
* Returns the '<em><b>LOGGER EVENTS</b></em>' literal with the specified name.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static LOGGER_EVENTS getByName(String name) {
@@ -340,6 +344,8 @@
* Returns the '<em><b>LOGGER EVENTS</b></em>' literal with the specified integer value.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
* @generated
*/
public static LOGGER_EVENTS get(int value) {
diff --git a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/SimulationLogger.java b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/SimulationLogger.java
index 43fb08d..c0205e6 100644
--- a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/SimulationLogger.java
+++ b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/SimulationLogger.java
@@ -22,12 +22,12 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.loggers.SimulationLogger#isEnabled <em>Enabled</em>}</li>
* <li>{@link org.eclipse.stem.loggers.SimulationLogger#getStepMod <em>Step Mod</em>}</li>
* <li>{@link org.eclipse.stem.loggers.SimulationLogger#getStartStep <em>Start Step</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.loggers.SimulationLoggerPackage#getSimulationLogger()
* @model abstract="true"
diff --git a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/SynchronousDecoratorPropertyLogger.java b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/SynchronousDecoratorPropertyLogger.java
index 45fd326..6227a07 100644
--- a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/SynchronousDecoratorPropertyLogger.java
+++ b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/SynchronousDecoratorPropertyLogger.java
@@ -23,10 +23,10 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.loggers.SynchronousDecoratorPropertyLogger#getProperties <em>Properties</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.loggers.SimulationLoggerPackage#getSynchronousDecoratorPropertyLogger()
* @model abstract="true"
diff --git a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/IdentifierPropertyImpl.java b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/IdentifierPropertyImpl.java
index 8b4f31b..350c13c 100644
--- a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/IdentifierPropertyImpl.java
+++ b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/IdentifierPropertyImpl.java
@@ -23,11 +23,11 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.loggers.impl.IdentifierPropertyImpl#getIdentifier <em>Identifier</em>}</li>
* <li>{@link org.eclipse.stem.loggers.impl.IdentifierPropertyImpl#getProperty <em>Property</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerEventImpl.java b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerEventImpl.java
index d9d79e7..2b31175 100644
--- a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerEventImpl.java
+++ b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerEventImpl.java
@@ -19,8 +19,6 @@
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Event</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerFactoryImpl.java b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerFactoryImpl.java
index e82eb5d..3071bc9 100644
--- a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerFactoryImpl.java
+++ b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerFactoryImpl.java
@@ -45,7 +45,7 @@
*/
public static SimulationLoggerFactory init() {
try {
- SimulationLoggerFactory theSimulationLoggerFactory = (SimulationLoggerFactory)EPackage.Registry.INSTANCE.getEFactory("http://org/eclipse/stem/loggers/");
+ SimulationLoggerFactory theSimulationLoggerFactory = (SimulationLoggerFactory)EPackage.Registry.INSTANCE.getEFactory(SimulationLoggerPackage.eNS_URI);
if (theSimulationLoggerFactory != null) {
return theSimulationLoggerFactory;
}
diff --git a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerImpl.java b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerImpl.java
index 8450e60..9dd1593 100644
--- a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerImpl.java
+++ b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SimulationLoggerImpl.java
@@ -26,12 +26,12 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.loggers.impl.SimulationLoggerImpl#isEnabled <em>Enabled</em>}</li>
* <li>{@link org.eclipse.stem.loggers.impl.SimulationLoggerImpl#getStepMod <em>Step Mod</em>}</li>
* <li>{@link org.eclipse.stem.loggers.impl.SimulationLoggerImpl#getStartStep <em>Start Step</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SynchronousDecoratorPropertyLoggerImpl.java b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SynchronousDecoratorPropertyLoggerImpl.java
index 031fc7b..2c76697 100644
--- a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SynchronousDecoratorPropertyLoggerImpl.java
+++ b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/impl/SynchronousDecoratorPropertyLoggerImpl.java
@@ -28,10 +28,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.loggers.impl.SynchronousDecoratorPropertyLoggerImpl#getProperties <em>Properties</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/util/SimulationLoggerSwitch.java b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/util/SimulationLoggerSwitch.java
index d0e0f7e..ab380e1 100644
--- a/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/util/SimulationLoggerSwitch.java
+++ b/core/org.eclipse.stem.loggers/src/org/eclipse/stem/loggers/util/SimulationLoggerSwitch.java
@@ -127,6 +127,12 @@
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case SimulationLoggerPackage.ISIMULATION_LISTENER: {
+ ISimulationListener iSimulationListener = (ISimulationListener)theEObject;
+ T1 result = caseISimulationListener(iSimulationListener);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
case SimulationLoggerPackage.ASYNCHRONOUS_LOGGER: {
AsynchronousLogger asynchronousLogger = (AsynchronousLogger)theEObject;
T1 result = caseAsynchronousLogger(asynchronousLogger);
diff --git a/core/org.eclipse.stem.solvers.fd/src/org/eclipse/stem/solvers/fd/impl/FiniteDifferenceImpl.java b/core/org.eclipse.stem.solvers.fd/src/org/eclipse/stem/solvers/fd/impl/FiniteDifferenceImpl.java
index 19991be..9dbc887 100644
--- a/core/org.eclipse.stem.solvers.fd/src/org/eclipse/stem/solvers/fd/impl/FiniteDifferenceImpl.java
+++ b/core/org.eclipse.stem.solvers.fd/src/org/eclipse/stem/solvers/fd/impl/FiniteDifferenceImpl.java
@@ -1,5 +1,7 @@
package org.eclipse.stem.solvers.fd.impl;
+import java.util.ArrayList;
+
/*******************************************************************************
* Copyright (c) 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
@@ -12,6 +14,7 @@
*******************************************************************************/
import java.util.Iterator;
+import java.util.List;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.common.notify.Notification;
@@ -93,6 +96,7 @@
@Override
public boolean step(STEMTime time, long timeDelta, int cycle) throws SolverException {
+ long t1 = System.currentTimeMillis();
Activator act = org.eclipse.stem.ui.Activator.getDefault();
if (act != null) {
final IPreferenceStore preferenceStore = act.getPreferenceStore();
@@ -103,8 +107,11 @@
partitioner.setNumProcesses(num_threads);
+
+ List<Decorator> decoratorsToIterate = new ArrayList<Decorator>(getCanonicalGraph().getDecorators());
+
// Find triggers and make sure they are invoked
- for (Decorator decorator : this.getCanonicalGraph().getDecorators()) {
+ for (Decorator decorator : decoratorsToIterate) {
if (decorator instanceof Trigger || decorator instanceof TriggerList || decorator instanceof TransformationDecorator) {
decorator.updateLabels(time, timeDelta, cycle);
}
@@ -153,7 +160,10 @@
} // If not initialized
iterativeStep(time, timeDelta, cycle);
-
+
+ //long t2 = System.currentTimeMillis();
+ //System.err.println("==> Step["+cycle+"] CPU Time: "+ (t2-t1));
+
return true;
}
diff --git a/core/org.eclipse.stem.solvers.rk/src/org/eclipse/stem/solvers/rk/impl/ApacheCommonsMathODESolverImpl.java b/core/org.eclipse.stem.solvers.rk/src/org/eclipse/stem/solvers/rk/impl/ApacheCommonsMathODESolverImpl.java
index ae9c00d..6f988e1 100644
--- a/core/org.eclipse.stem.solvers.rk/src/org/eclipse/stem/solvers/rk/impl/ApacheCommonsMathODESolverImpl.java
+++ b/core/org.eclipse.stem.solvers.rk/src/org/eclipse/stem/solvers/rk/impl/ApacheCommonsMathODESolverImpl.java
@@ -14,6 +14,7 @@
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import org.apache.commons.math3.ode.FirstOrderDifferentialEquations;
import org.apache.commons.math3.ode.FirstOrderIntegrator;
@@ -86,9 +87,9 @@
}
partitioner.setNumProcesses(num_threads);
-
+ List<Decorator> decoratorsToIterate = new ArrayList<Decorator>(getCanonicalGraph().getDecorators());
// Find triggers and make sure they are invoked
- for(Decorator decorator:this.getCanonicalGraph().getDecorators()) {
+ for(Decorator decorator:decoratorsToIterate) {
if(decorator instanceof Trigger || decorator instanceof TransformationDecorator) {
decorator.updateLabels(time, timeDelta, cycle);
}
diff --git a/core/org.eclipse.stem.solvers.rk/src/org/eclipse/stem/solvers/rk/impl/RungeKuttaImpl.java b/core/org.eclipse.stem.solvers.rk/src/org/eclipse/stem/solvers/rk/impl/RungeKuttaImpl.java
index 231857f..1461caa 100644
--- a/core/org.eclipse.stem.solvers.rk/src/org/eclipse/stem/solvers/rk/impl/RungeKuttaImpl.java
+++ b/core/org.eclipse.stem.solvers.rk/src/org/eclipse/stem/solvers/rk/impl/RungeKuttaImpl.java
@@ -14,6 +14,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
@@ -202,7 +203,8 @@
updateDoneBarrier = new CyclicBarrier(num_threads);
// Find triggers and any transformation decorator and make sure they are invoked
- for(Decorator decorator:this.getCanonicalGraph().getDecorators()) {
+ List<Decorator> decoratorsToIterate = new ArrayList<Decorator>(getCanonicalGraph().getDecorators());
+ for(Decorator decorator:decoratorsToIterate) {
if(decorator instanceof Trigger || decorator instanceof TransformationDecorator) {
decorator.updateLabels(time, timeDelta, cycle);
}
diff --git a/core/org.eclipse.stem.solvers.stochastic/plugin.xml b/core/org.eclipse.stem.solvers.stochastic/plugin.xml
index 95b4896..3ec186b 100644
--- a/core/org.eclipse.stem.solvers.stochastic/plugin.xml
+++ b/core/org.eclipse.stem.solvers.stochastic/plugin.xml
@@ -29,4 +29,11 @@
creator="%dc_standard_stochastic_creator">
</dublin_core>
</extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http:///org/eclipse/stem/solvers/stochastic"
+ class="org.eclipse.stem.solvers.stochastic.StochasticPackage"
+ genModel="model/stochastic.genmodel"/>
+ </extension>
</plugin>
diff --git a/core/org.eclipse.stem.solvers.stochastic/src/org/eclipse/stem/solvers/stochastic/impl/StandardStochasticImpl.java b/core/org.eclipse.stem.solvers.stochastic/src/org/eclipse/stem/solvers/stochastic/impl/StandardStochasticImpl.java
index 79797d3..b797054 100644
--- a/core/org.eclipse.stem.solvers.stochastic/src/org/eclipse/stem/solvers/stochastic/impl/StandardStochasticImpl.java
+++ b/core/org.eclipse.stem.solvers.stochastic/src/org/eclipse/stem/solvers/stochastic/impl/StandardStochasticImpl.java
@@ -2,8 +2,10 @@
*/
package org.eclipse.stem.solvers.stochastic.impl;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.BasicEList;
@@ -110,6 +112,15 @@
partitioner.setNumProcesses(1);
+ List<Decorator> decoratorsToIterate = new ArrayList<Decorator>(getCanonicalGraph().getDecorators());
+ // Find Transformation decorators and call update
+ for (Decorator decorator : decoratorsToIterate) {
+ // THIS MUST HAPPEN BEFORE WE RESET THE INCIDENCE
+ if (decorator instanceof TransformationDecorator) {
+ decorator.updateLabels(time, timeDelta, cycle);
+ }
+ }
+
// First initialize the Y and temp label values from the current
// label values.
@@ -139,9 +150,10 @@
}
}
+
// Find triggers and make sure they are invoked
- for (Decorator decorator : this.getCanonicalGraph().getDecorators()) {
- if (decorator instanceof Trigger || decorator instanceof TriggerList || decorator instanceof TransformationDecorator) {
+ for (Decorator decorator : getCanonicalGraph().getDecorators()) {
+ if (decorator instanceof Trigger || decorator instanceof TriggerList ) {
decorator.updateLabels(time, timeDelta, cycle);
}
}
@@ -247,10 +259,14 @@
}
}
// Ok disease models are done. Subtract from the population model label the sum of all deaths
- iLabCurrentValue.eSetDouble(StandardPackage.eINSTANCE.getStandardPopulationModelLabelValue_Count().getFeatureID(),
- iLabCurrentValue.eGetDouble(StandardPackage.eINSTANCE.getStandardPopulationModelLabelValue_Count().getFeatureID())-sum);
- iLabCurrentValue.eSetDouble(StandardPackage.eINSTANCE.getStandardPopulationModelLabelValue_Deaths().getFeatureID(),
- sum);
+
+ if(iLab instanceof StandardPopulationModelLabel) {
+ iLabCurrentValue.eSetDouble(StandardPackage.eINSTANCE.getStandardPopulationModelLabelValue_Count().getFeatureID(),
+ iLabCurrentValue.eGetDouble(StandardPackage.eINSTANCE.getStandardPopulationModelLabelValue_Count().getFeatureID())-sum);
+ iLabCurrentValue.eSetDouble(StandardPackage.eINSTANCE.getStandardPopulationModelLabelValue_Deaths().getFeatureID(),
+ sum);
+ }// if this is a population model
+
} else {
// We are doing disease deaths
@@ -477,6 +493,8 @@
}
}
+
+
return true;
}
diff --git a/core/org.eclipse.stem.ui.loggers/META-INF/MANIFEST.MF b/core/org.eclipse.stem.ui.loggers/META-INF/MANIFEST.MF
index 4c6f3de..855745b 100644
--- a/core/org.eclipse.stem.ui.loggers/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.stem.ui.loggers/META-INF/MANIFEST.MF
@@ -8,13 +8,16 @@
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
- org.eclipse.stem.loggers,
- org.eclipse.stem.core,
+ org.eclipse.stem.loggers;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.stem.core;visibility:=reexport,
org.eclipse.stem.ui,
org.eclipse.core.resources,
- org.eclipse.core.expressions,
+ org.eclipse.core.expressions,
org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.emf.ecore.edit
+ org.eclipse.emf.ecore.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.stem.loggers.presentation,
diff --git a/core/org.eclipse.stem.ui.loggers/plugin.properties b/core/org.eclipse.stem.ui.loggers/plugin.properties
index 509a09c..17a7773 100644
--- a/core/org.eclipse.stem.ui.loggers/plugin.properties
+++ b/core/org.eclipse.stem.ui.loggers/plugin.properties
@@ -20,6 +20,8 @@
_UI_Logging = Logging
+_UI_LoggerEditor_label = Logger Editor
+
_UI_LoggerWizard_label = Logger
_UI_LoggerWizard_description = Create a new Logger
_UI_CreateChild_text = {0}
diff --git a/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/presentation/SimulationLoggerEditor.java b/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/presentation/SimulationLoggerEditor.java
index 02a1d53..0dd269b 100644
--- a/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/presentation/SimulationLoggerEditor.java
+++ b/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/presentation/SimulationLoggerEditor.java
@@ -92,6 +92,7 @@
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.stem.core.STEMXMIResourceFactoryImpl;
import org.eclipse.stem.core.common.provider.CommonItemProviderAdapterFactory;
import org.eclipse.stem.core.graph.provider.GraphItemProviderAdapterFactory;
import org.eclipse.stem.core.logger.provider.LoggerItemProviderAdapterFactory;
@@ -592,7 +593,7 @@
* This sets up the editing domain for the model editor.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
protected void initializeEditingDomain() {
// Create an adapter factory that yields item providers.
@@ -643,6 +644,13 @@
// Create the editing domain with a special command stack.
//
editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ editingDomain.getResourceSet().getResourceFactoryRegistry()
+ .getExtensionToFactoryMap().put("*",
+ STEMXMIResourceFactoryImpl.INSTANCE);
+
+ editingDomain.getResourceSet().getResourceFactoryRegistry()
+ .getProtocolToFactoryMap().put("platform",
+ STEMXMIResourceFactoryImpl.INSTANCE);
}
/**
@@ -908,7 +916,7 @@
* This is the method used by the framework to install your own controls.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
@Override
public void createPages() {
@@ -942,7 +950,8 @@
selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
- selectionViewer.setInput(editingDomain.getResourceSet());
+ //selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setInput(editingDomain.getResourceSet().getResources().get(0));
selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
viewerPane.setTitle(editingDomain.getResourceSet());
diff --git a/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/SimulationLoggerItemProvider.java b/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/SimulationLoggerItemProvider.java
index f5fd556..f1eb69a 100644
--- a/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/SimulationLoggerItemProvider.java
+++ b/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/SimulationLoggerItemProvider.java
@@ -17,14 +17,8 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.core.logger.provider.LoggerItemProvider;
@@ -38,13 +32,7 @@
* @generated
*/
public class SimulationLoggerItemProvider
- extends LoggerItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends LoggerItemProvider {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -161,15 +149,11 @@
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
@Override
public String getText(Object object) {
- URI labelValue = ((SimulationLogger)object).getURI();
- String label = labelValue == null ? null : labelValue.toString();
- return label == null || label.length() == 0 ?
- getString("_UI_SimulationLogger_type") :
- getString("_UI_SimulationLogger_type") + " " + label;
+ return super.getText(object);
}
/**
diff --git a/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/SynchronousDecoratorPropertyLoggerItemProvider.java b/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/SynchronousDecoratorPropertyLoggerItemProvider.java
index 177bf28..1ae205c 100644
--- a/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/SynchronousDecoratorPropertyLoggerItemProvider.java
+++ b/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/SynchronousDecoratorPropertyLoggerItemProvider.java
@@ -16,14 +16,8 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.loggers.SimulationLoggerPackage;
@@ -36,13 +30,7 @@
* @generated
*/
public class SynchronousDecoratorPropertyLoggerItemProvider
- extends SimulationLoggerItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends SimulationLoggerItemProvider {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -102,15 +90,11 @@
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
@Override
public String getText(Object object) {
- URI labelValue = ((SynchronousDecoratorPropertyLogger)object).getURI();
- String label = labelValue == null ? null : labelValue.toString();
- return label == null || label.length() == 0 ?
- getString("_UI_SynchronousDecoratorPropertyLogger_type") :
- getString("_UI_SynchronousDecoratorPropertyLogger_type") + " " + label;
+ return super.getText(object);
}
/**
diff --git a/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/simulationloggerEditorAdvisor.java b/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/simulationloggerEditorAdvisor.java
index b1fa0f2..de5f505 100644
--- a/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/simulationloggerEditorAdvisor.java
+++ b/core/org.eclipse.stem.ui.loggers/src/org/eclipse/stem/loggers/provider/simulationloggerEditorAdvisor.java
@@ -18,6 +18,7 @@
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.edit.ui.action.LoadResourceAction;
import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.stem.loggers.provider.SimulationLoggerEditPlugin;
import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
import org.eclipse.jface.action.GroupMarker;
diff --git a/core/org.eclipse.stem.ui/plugin.xml b/core/org.eclipse.stem.ui/plugin.xml
index 722f9a0..6f8314d 100644
--- a/core/org.eclipse.stem.ui/plugin.xml
+++ b/core/org.eclipse.stem.ui/plugin.xml
@@ -18,6 +18,7 @@
point="org.eclipse.core.runtime.products">
<product
application="org.eclipse.stem.ui.CoreEditorAdvisorApplication"
+ description="SpatioTemporal Epidemiological Modeler"
name="STEM">
<property
name="preferenceCustomization"
diff --git a/core/org.eclipse.stem.ui/src/org/eclipse/stem/core/common/presentation/CoreEditorAdvisor.java b/core/org.eclipse.stem.ui/src/org/eclipse/stem/core/common/presentation/CoreEditorAdvisor.java
index 6f135b9..91dae28 100644
--- a/core/org.eclipse.stem.ui/src/org/eclipse/stem/core/common/presentation/CoreEditorAdvisor.java
+++ b/core/org.eclipse.stem.ui/src/org/eclipse/stem/core/common/presentation/CoreEditorAdvisor.java
@@ -123,11 +123,14 @@
/**
+ * replace deprecated method
* @see org.eclipse.ui.application.WorkbenchAdvisor#preStartup()
+ * @generated NOT
*/
@Override
public void preStartup() {
- WorkbenchAdapterBuilder.registerAdapters();
+ // new
+ org.eclipse.ui.ide.IDE.registerAdapters();
}
public void postStartup() {
diff --git a/features/org.eclipse.stem.models.epidemiology.feature/feature.xml b/features/org.eclipse.stem.models.epidemiology.feature/feature.xml
index a154b9f..b0ada0b 100644
--- a/features/org.eclipse.stem.models.epidemiology.feature/feature.xml
+++ b/features/org.eclipse.stem.models.epidemiology.feature/feature.xml
@@ -204,4 +204,11 @@
version="0.0.0"
unpack="false"/>
+ <plugin
+ id="org.eclipse.stem.diseasemodels.evolving"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
</feature>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/.classpath b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/.classpath
new file mode 100644
index 0000000..22f3064
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/.project b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/.project
new file mode 100644
index 0000000..08f307a
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.stem.diseasemodels.evolving.crossspecies</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.stem.model.builder.MetamodelBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.stem.model.common.ModelProjectNature</nature>
+ </natures>
+</projectDescription>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/META-INF/MANIFEST.MF b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..ba969fd
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/META-INF/MANIFEST.MF
@@ -0,0 +1,31 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.stem.diseasemodels.evolving.crossspecies;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .,bin/
+Bundle-Activator: org.eclipse.stem.evolvingcrossspeciesmodel.provider.EvolvingCrossSpeciesModelEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.stem.evolvingcrossspeciesmodel,
+ org.eclipse.stem.evolvingcrossspeciesmodel.impl,
+ org.eclipse.stem.evolvingcrossspeciesmodel.presentation,
+ org.eclipse.stem.evolvingcrossspeciesmodel.provider,
+ org.eclipse.stem.evolvingcrossspeciesmodel.util
+Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.stem.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.ecore.editor;visibility:=reexport,
+ org.eclipse.stem.core;visibility:=reexport,
+ org.eclipse.stem.diseasemodels;visibility:=reexport,
+ org.eclipse.core.runtime,
+ org.eclipse.stem.diseasemodels.evolving;visibility:=reexport,
+ org.eclipse.stem.ui.diseasemodels;visibility:=reexport,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.emf.ecore.edit;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.stem.diseasemodels.vector;bundle-version="3.0.0"
+Bundle-ActivationPolicy: lazy
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/build.properties b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/build.properties
new file mode 100644
index 0000000..10c87a0
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/build.properties
@@ -0,0 +1,14 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/icons/full/obj16/EvolvingCrossSpeciesModel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/icons/full/obj16/EvolvingCrossSpeciesModel.gif
new file mode 100644
index 0000000..4e404e4
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/icons/full/obj16/EvolvingCrossSpeciesModel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/icons/full/obj16/EvolvingCrossSpeciesModelModelFile.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/icons/full/obj16/EvolvingCrossSpeciesModelModelFile.gif
new file mode 100644
index 0000000..102f65e
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/icons/full/obj16/EvolvingCrossSpeciesModelModelFile.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/icons/full/wizban/NewEvolvingCrossSpeciesModel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/icons/full/wizban/NewEvolvingCrossSpeciesModel.gif
new file mode 100644
index 0000000..568874a
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/icons/full/wizban/NewEvolvingCrossSpeciesModel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/.evolvingcrossspeciesmodel.vmm b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/.evolvingcrossspeciesmodel.vmm
new file mode 100644
index 0000000..034c9a5
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/.evolvingcrossspeciesmodel.vmm
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.stem.model.vmm:CanvasPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:org.eclipse.stem.model.vmm="http:///org/eclipse/stem/model/vmm.ecore" metamodel="evolvingcrossspeciesmodel.metamodel#/">
+ <modelElements model="evolvingcrossspeciesmodel.metamodel#//@models.0">
+ <compartmentElements x="5" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.0/@compartments.0"/>
+ <compartmentElements x="99" y="262" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.0"/>
+ <compartmentElements x="215" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.1"/>
+ <compartmentElements x="320" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.2"/>
+ <compartmentElements x="390" y="265" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.2/@compartments.0"/>
+ <compartmentElements x="540" y="254" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.3/@compartments.0"/>
+ <compartmentElements x="261" y="280" width="80" height="60" compartment="evolvingcrossspeciesmodel.metamodel#//@compartmentGroups.0/@compartments.0"/>
+ <compartmentElements x="467" y="7" width="94" height="82" compartment="evolvingcrossspeciesmodel.metamodel#//@compartmentGroups.0/@compartments.1"/>
+ <transitionElements source="#//@modelElements.0/@compartmentElements.4" target="#//@modelElements.0/@compartmentElements.5"
+ transition="evolvingcrossspeciesmodel.metamodel#//@models.0/@transitions.0"/>
+ <transitionElements source="#//@modelElements.0/@compartmentElements.5" target="#//@modelElements.0/@compartmentElements.1"
+ transition="evolvingcrossspeciesmodel.metamodel#//@models.0/@transitions.1"/>
+ <transitionElements source="#//@modelElements.0/@compartmentElements.1" target="#//@modelElements.0/@compartmentElements.6"
+ transition="evolvingcrossspeciesmodel.metamodel#//@models.0/@transitions.2"/>
+ <transitionElements source="#//@modelElements.0/@compartmentElements.6" target="#//@modelElements.0/@compartmentElements.4"
+ transition="evolvingcrossspeciesmodel.metamodel#//@models.0/@transitions.3"/>
+ </modelElements>
+</org.eclipse.stem.model.vmm:CanvasPackage>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/evolvingcrossspeciesmodel.ecore b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/evolvingcrossspeciesmodel.ecore
new file mode 100644
index 0000000..942ac43
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/evolvingcrossspeciesmodel.ecore
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="evolvingcrossspeciesmodel" nsURI="http:///org/eclipse/stem/evolvingcrossspeciesmodel/evolvingcrossspeciesmodel.ecore"
+ nsPrefix="org.eclipse.stem.evolvingcrossspeciesmodel">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/metamodel">
+ <details key="uri" value="platform:/resource/.stemgenerator/model/evolvingcrossspeciesmodel.metamodel"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/metamodel">
+ <details key="uri" value="platform:/resource/org.eclipse.stem.evolvingcrossspeciesmodel/model/evolvingcrossspeciesmodel.metamodel"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingCrossSpeciesModelLabel" eSuperTypes="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//StandardDiseaseModelLabel">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingCrossSpeciesModelLabelValue"
+ eSuperTypes="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//SIRLabelValue">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="e" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="seff" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingCrossSpeciesModel" eSuperTypes="platform:/plugin/org.eclipse.stem.diseasemodels.evolving/model/evolving.ecore#//EvolvingSIRDiseaseModel">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/label">
+ <details key="*" value="EvolvingCrossSpeciesModelLabel"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/labelvalue">
+ <details key="*" value="EvolvingCrossSpeciesModelLabelValue"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/adapters"/>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="otherToOtherTransmissionRate"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/messages">
+ <details key="name" value="Other To Other Transmission Rate"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="otherRecoveryRate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValueLiteral="0.1">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/messages">
+ <details key="name" value="Other Recovery Rate"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="otherToHostTransmissionRate"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.0">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/messages">
+ <details key="name" value="Other To Host Transmission Rate"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="temperatureFactor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValueLiteral="20.0">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/messages">
+ <details key="name" value="Temperature Factor"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="otherPopulationIdentifier"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral="avian">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/messages">
+ <details key="name" value="Other Population Identifier"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="otherImmunityLossRate"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="0.001">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/messages">
+ <details key="name" value="Other Immunity Loss Rate"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incubationRate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValueLiteral="1.0">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/messages">
+ <details key="name" value="Incubation Rate"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/evolvingcrossspeciesmodel.genmodel b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/evolvingcrossspeciesmodel.genmodel
new file mode 100644
index 0000000..f47fd3a
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/evolvingcrossspeciesmodel.genmodel
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.stem.evolvingcrossspeciesmodel/src"
+ editDirectory="/org.eclipse.stem.evolvingcrossspeciesmodel/src" editorDirectory="/org.eclipse.stem.evolvingcrossspeciesmodel/src"
+ modelPluginID="org.eclipse.stem.evolvingcrossspeciesmodel" templateDirectory="platform:/plugin/org.eclipse.stem.model.codegen/templates"
+ dynamicTemplates="true" forceOverwrite="true" modelName="EvolvingCrossSpeciesModel"
+ importerID="http:///org/eclipse/stem/modelgen/1.0" suppressNotification="true"
+ complianceLevel="6.0" publicConstructors="true" editPluginID="org.eclipse.stem.evolvingcrossspeciesmodel"
+ editorPluginID="org.eclipse.stem.evolvingcrossspeciesmodel" usedGenPackages="platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//common platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//experiment platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//graph platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//model platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//modifier platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//predicate platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//scenario platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//sequencer platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//trigger platform:/plugin/org.eclipse.stem.diseasemodels/model/diseasemodels.genmodel#//diseasepredicates platform:/plugin/org.eclipse.stem.diseasemodels.evolving/model/evolving.genmodel#//evolving platform:/plugin/org.eclipse.stem.diseasemodels/model/diseasemodels.genmodel#//standard platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//logger platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//solver platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore">
+ <templatePluginVariables>STEM_CODEGEN=org.eclipse.stem.model.codegen</templatePluginVariables>
+ <templatePluginVariables>STEM_METAMODEL=org.eclipse.stem.model</templatePluginVariables>
+ <genPackages prefix="EvolvingCrossSpeciesModel" basePackage="org.eclipse.stem" disposableProviderFactory="true"
+ ecorePackage="evolvingcrossspeciesmodel.ecore#/">
+ <genClasses image="false" ecoreClass="evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModelLabel"/>
+ <genClasses image="false" ecoreClass="evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModelLabelValue">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModelLabelValue/e"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModelLabelValue/seff"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModel">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModel/otherToOtherTransmissionRate"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModel/otherRecoveryRate"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModel/otherToHostTransmissionRate"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModel/temperatureFactor"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModel/otherPopulationIdentifier"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModel/otherImmunityLossRate"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModel/incubationRate"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/evolvingcrossspeciesmodel.metamodel b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/evolvingcrossspeciesmodel.metamodel
new file mode 100644
index 0000000..d38905c
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/model/evolvingcrossspeciesmodel.metamodel
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.stem.model:Package xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.stem.model="http:///org/eclipse/stem/model/metamodel.ecore"
+ packagePrefix="org.eclipse.stem" name="EvolvingCrossSpeciesModel">
+ <models name="EvolvingCrossSpeciesModel" class="evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModel"
+ parentModel="platform:/plugin/org.eclipse.stem.diseasemodels.evolving/model/evolving.metamodel#//@models.1"
+ compartments="#//@compartmentGroups.0">
+ <parameters name="otherToOtherTransmissionRate" dataType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValue="0.0" displayName="Other To Other Transmission Rate" unit=""
+ helpMessage="" invalidMessage="" missingMessage=""/>
+ <parameters name="otherRecoveryRate" dataType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValue="0.1" displayName="Other Recovery Rate" unit="" helpMessage=""
+ invalidMessage="" missingMessage=""/>
+ <parameters name="otherToHostTransmissionRate" dataType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValue="0.0" displayName="Other To Host Transmission Rate" unit="" helpMessage=""
+ invalidMessage="" missingMessage=""/>
+ <parameters name="temperatureFactor" dataType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValue="20.0" displayName="Temperature Factor" unit="" helpMessage=""
+ invalidMessage="" missingMessage=""/>
+ <parameters name="otherPopulationIdentifier" dataType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValue="avian" displayName="Other Population Identifier" unit="" helpMessage=""
+ invalidMessage="" missingMessage=""/>
+ <parameters name="otherImmunityLossRate" dataType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValue="0.001" displayName="Other Immunity Loss Rate" unit="" helpMessage=""
+ invalidMessage="" missingMessage=""/>
+ <parameters name="incubationRate" dataType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValue="1.0" displayName="Incubation Rate" unit="" helpMessage="" invalidMessage=""
+ missingMessage=""/>
+ <transitions source="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.2/@compartments.0"
+ target="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.3/@compartments.0"
+ expression="delta recoveryRate*I;"/>
+ <transitions source="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.3/@compartments.0"
+ target="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.0"
+ expression="delta immunityLossRate*R;"/>
+ <transitions source="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.0"
+ target="#//@compartmentGroups.0/@compartments.0" expression="delta transmissionRate*S*effective(i);"/>
+ <transitions source="#//@compartmentGroups.0/@compartments.0" target="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.2/@compartments.0"
+ expression="delta incubationRate*E;"/>
+ </models>
+ <compartmentGroups name="EvolvingCrossSpeciesModel" class="evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModelLabel"
+ valueClass="evolvingcrossspeciesmodel.ecore#//EvolvingCrossSpeciesModelLabelValue"
+ parentGroup="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.3">
+ <compartments name="e" dataType="http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ <compartments name="seff" dataType="http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ </compartmentGroups>
+</org.eclipse.stem.model:Package>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/plugin.properties b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/plugin.properties
new file mode 100644
index 0000000..a556bd2
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/plugin.properties
@@ -0,0 +1,63 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = EvolvingCrossSpeciesModel Model
+providerName = www.example.org
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+_UI_PropertyDescriptor_description = The {0} of the {1}
+_UI_EvolvingCrossSpeciesModelLabel_type = Label
+_UI_EvolvingCrossSpeciesModelLabelValue_type = Label Value
+_UI_EvolvingCrossSpeciesModel_type = Evolving Cross Species Model
+_UI_Unknown_type = Object
+_UI_Unknown_datatype= Value
+_UI_EvolvingCrossSpeciesModel_otherToOtherTransmissionRate_feature = Other To Other Transmission Rate
+_UI_EvolvingCrossSpeciesModel_otherRecoveryRate_feature = Other Recovery Rate
+_UI_EvolvingCrossSpeciesModel_otherToHostTransmissionRate_feature = Other To Host Transmission Rate
+_UI_EvolvingCrossSpeciesModel_temperatureFactor_feature = Temperature Factor
+_UI_EvolvingCrossSpeciesModel_otherPopulationIdentifier_feature = Other Population Identifier
+_UI_Unknown_feature = Unspecified
+_UI_EvolvingCrossSpeciesModelEditor_menu = &EvolvingCrossSpeciesModel Editor
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+_UI_OpenEditorError_label = Open Editor
+_UI_Wizard_category = Example EMF Model Creation Wizards
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+_UI_EvolvingCrossSpeciesModelModelWizard_label = EvolvingCrossSpeciesModel Model
+_UI_EvolvingCrossSpeciesModelModelWizard_description = Create a new EvolvingCrossSpeciesModel model
+_UI_EvolvingCrossSpeciesModelEditor_label = EvolvingCrossSpeciesModel Model Editor
+_UI_EvolvingCrossSpeciesModelEditorFilenameDefaultBase = My
+_UI_EvolvingCrossSpeciesModelEditorFilenameExtensions = evolvingcrossspeciesmodel
+_UI_Wizard_label = New
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+_UI_EvolvingCrossSpeciesModel_otherImmunityLossRate_feature = Other Immunity Loss Rate
+_UI_EvolvingCrossSpeciesModelLabelValue_e_feature = E
+_UI_EvolvingCrossSpeciesModel_incubationRate_feature = Incubation Rate
+_UI_EvolvingCrossSpeciesModelLabelValue_seff_feature = Seff
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/plugin.xml b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/plugin.xml
new file mode 100644
index 0000000..90f18f7
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/plugin.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <factory
+ uri="http:///org/eclipse/stem/evolvingcrossspeciesmodel/evolvingcrossspeciesmodel.ecore"
+ class="org.eclipse.stem.evolvingcrossspeciesmodel.provider.EvolvingCrossSpeciesModelItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http:///org/eclipse/stem/evolvingcrossspeciesmodel/evolvingcrossspeciesmodel.ecore"
+ class="org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.newWizards">
+ <category
+ id="org.eclipse.emf.ecore.Wizard.category.ID"
+ name="%_UI_Wizard_category"/>
+ <wizard
+ id="org.eclipse.stem.evolvingcrossspeciesmodel.presentation.EvolvingCrossSpeciesModelModelWizardID"
+ name="%_UI_EvolvingCrossSpeciesModelModelWizard_label"
+ class="org.eclipse.stem.evolvingcrossspeciesmodel.presentation.EvolvingCrossSpeciesModelModelWizard"
+ category="org.eclipse.emf.ecore.Wizard.category.ID"
+ icon="icons/full/obj16/EvolvingCrossSpeciesModelModelFile.gif">
+ <description>%_UI_EvolvingCrossSpeciesModelModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <editor
+ id="org.eclipse.stem.evolvingcrossspeciesmodel.presentation.EvolvingCrossSpeciesModelEditorID"
+ name="%_UI_EvolvingCrossSpeciesModelEditor_label"
+ icon="icons/full/obj16/EvolvingCrossSpeciesModelModelFile.gif"
+ extensions="evolvingcrossspeciesmodel"
+ class="org.eclipse.stem.evolvingcrossspeciesmodel.presentation.EvolvingCrossSpeciesModelEditor"
+ contributorClass="org.eclipse.stem.evolvingcrossspeciesmodel.presentation.EvolvingCrossSpeciesModelActionBarContributor">
+ </editor>
+ </extension>
+
+ <extension point="org.eclipse.stem.diseasemodels.diseasemodel">
+ <classdef class="org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl"></classdef>
+ <dublin_core
+ creator=""
+ description=""
+ identifier=""
+ source=""
+ title="Evolving Cross Species Model"
+ license=""
+ publisher="">
+ </dublin_core>
+ </extension>
+
+
+ <extension
+ point="org.eclipse.ui.startup">
+ <startup
+ class="org.eclipse.stem.evolvingcrossspeciesmodel.presentation.EvolvingCrossSpeciesModelPropertyEditorAdapterFactory">
+ </startup>
+ <startup
+ class="org.eclipse.stem.evolvingcrossspeciesmodel.presentation.EvolvingCrossSpeciesModelRelativeValueProviderAdapterFactory">
+ </startup>
+ </extension>
+
+
+</plugin>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModel.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModel.java
new file mode 100644
index 0000000..5584e5d
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModel.java
@@ -0,0 +1,240 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel;
+
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Evolving Cross Species Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherToOtherTransmissionRate <em>Other To Other Transmission Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherRecoveryRate <em>Other Recovery Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherToHostTransmissionRate <em>Other To Host Transmission Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getTemperatureFactor <em>Temperature Factor</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherPopulationIdentifier <em>Other Population Identifier</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherImmunityLossRate <em>Other Immunity Loss Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getIncubationRate <em>Incubation Rate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModel()
+ * @model annotation="http:///org/eclipse/stem/modelgen/model/label *='EvolvingCrossSpeciesModelLabel'"
+ * annotation="http:///org/eclipse/stem/modelgen/model/labelvalue *='EvolvingCrossSpeciesModelLabelValue'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingCrossSpeciesModel extends EvolvingSIRDiseaseModel {
+ /**
+ * Returns the value of the '<em><b>Other To Other Transmission Rate</b></em>' attribute.
+ * The default value is <code>"0.0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Other To Other Transmission Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Other To Other Transmission Rate</em>' attribute.
+ * @see #setOtherToOtherTransmissionRate(double)
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModel_OtherToOtherTransmissionRate()
+ * @model default="0.0"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/messages name='Other To Other Transmission Rate'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ double getOtherToOtherTransmissionRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherToOtherTransmissionRate <em>Other To Other Transmission Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Other To Other Transmission Rate</em>' attribute.
+ * @see #getOtherToOtherTransmissionRate()
+ * @generated
+ */
+ void setOtherToOtherTransmissionRate(double value);
+
+ /**
+ * Returns the value of the '<em><b>Other Recovery Rate</b></em>' attribute.
+ * The default value is <code>"0.1"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Other Recovery Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Other Recovery Rate</em>' attribute.
+ * @see #setOtherRecoveryRate(double)
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModel_OtherRecoveryRate()
+ * @model default="0.1"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/messages name='Other Recovery Rate'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ double getOtherRecoveryRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherRecoveryRate <em>Other Recovery Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Other Recovery Rate</em>' attribute.
+ * @see #getOtherRecoveryRate()
+ * @generated
+ */
+ void setOtherRecoveryRate(double value);
+
+ /**
+ * Returns the value of the '<em><b>Other To Host Transmission Rate</b></em>' attribute.
+ * The default value is <code>"0.0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Other To Host Transmission Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Other To Host Transmission Rate</em>' attribute.
+ * @see #setOtherToHostTransmissionRate(double)
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModel_OtherToHostTransmissionRate()
+ * @model default="0.0"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/messages name='Other To Host Transmission Rate'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ double getOtherToHostTransmissionRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherToHostTransmissionRate <em>Other To Host Transmission Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Other To Host Transmission Rate</em>' attribute.
+ * @see #getOtherToHostTransmissionRate()
+ * @generated
+ */
+ void setOtherToHostTransmissionRate(double value);
+
+ /**
+ * Returns the value of the '<em><b>Temperature Factor</b></em>' attribute.
+ * The default value is <code>"20.0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temperature Factor</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temperature Factor</em>' attribute.
+ * @see #setTemperatureFactor(double)
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModel_TemperatureFactor()
+ * @model default="20.0"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/messages name='Temperature Factor'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ double getTemperatureFactor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getTemperatureFactor <em>Temperature Factor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Temperature Factor</em>' attribute.
+ * @see #getTemperatureFactor()
+ * @generated
+ */
+ void setTemperatureFactor(double value);
+
+ /**
+ * Returns the value of the '<em><b>Other Population Identifier</b></em>' attribute.
+ * The default value is <code>"avian"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Other Population Identifier</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Other Population Identifier</em>' attribute.
+ * @see #setOtherPopulationIdentifier(String)
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModel_OtherPopulationIdentifier()
+ * @model default="avian"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/messages name='Other Population Identifier'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ String getOtherPopulationIdentifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherPopulationIdentifier <em>Other Population Identifier</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Other Population Identifier</em>' attribute.
+ * @see #getOtherPopulationIdentifier()
+ * @generated
+ */
+ void setOtherPopulationIdentifier(String value);
+
+ /**
+ * Returns the value of the '<em><b>Other Immunity Loss Rate</b></em>' attribute.
+ * The default value is <code>"0.001"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Other Immunity Loss Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Other Immunity Loss Rate</em>' attribute.
+ * @see #setOtherImmunityLossRate(double)
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModel_OtherImmunityLossRate()
+ * @model default="0.001"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/messages name='Other Immunity Loss Rate'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ double getOtherImmunityLossRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherImmunityLossRate <em>Other Immunity Loss Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Other Immunity Loss Rate</em>' attribute.
+ * @see #getOtherImmunityLossRate()
+ * @generated
+ */
+ void setOtherImmunityLossRate(double value);
+
+ /**
+ * Returns the value of the '<em><b>Incubation Rate</b></em>' attribute.
+ * The default value is <code>"1.0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Incubation Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Incubation Rate</em>' attribute.
+ * @see #setIncubationRate(double)
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModel_IncubationRate()
+ * @model default="1.0"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/messages name='Incubation Rate'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ double getIncubationRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getIncubationRate <em>Incubation Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Incubation Rate</em>' attribute.
+ * @see #getIncubationRate()
+ * @generated
+ */
+ void setIncubationRate(double value);
+
+
+} // EvolvingCrossSpeciesModel
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelFactory.java
new file mode 100644
index 0000000..4009129
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelFactory.java
@@ -0,0 +1,64 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel;
+
+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.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage
+ * @generated
+ */
+public interface EvolvingCrossSpeciesModelFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EvolvingCrossSpeciesModelFactory eINSTANCE = org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Label</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Label</em>'.
+ * @generated
+ */
+ EvolvingCrossSpeciesModelLabel createEvolvingCrossSpeciesModelLabel();
+
+ /**
+ * Returns a new object of class '<em>Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Label Value</em>'.
+ * @generated
+ */
+ EvolvingCrossSpeciesModelLabelValue createEvolvingCrossSpeciesModelLabelValue();
+
+ /**
+ * Returns a new object of class '<em>Evolving Cross Species Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Evolving Cross Species Model</em>'.
+ * @generated
+ */
+ EvolvingCrossSpeciesModel createEvolvingCrossSpeciesModel();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ EvolvingCrossSpeciesModelPackage getEvolvingCrossSpeciesModelPackage();
+
+} //EvolvingCrossSpeciesModelFactory
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelLabel.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelLabel.java
new file mode 100644
index 0000000..ef094cf
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelLabel.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel;
+
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Label</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModelLabel()
+ * @model annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingCrossSpeciesModelLabel extends StandardDiseaseModelLabel {
+
+} // EvolvingCrossSpeciesModelLabel
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelLabelValue.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelLabelValue.java
new file mode 100644
index 0000000..981d50b
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelLabelValue.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel;
+
+import org.eclipse.stem.diseasemodels.standard.SIRLabelValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue#getE <em>E</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue#getSeff <em>Seff</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModelLabelValue()
+ * @model annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingCrossSpeciesModelLabelValue extends SIRLabelValue {
+
+ /**
+ * Returns the value of the '<em><b>E</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>E</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>E</em>' attribute.
+ * @see #setE(double)
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModelLabelValue_E()
+ * @model annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ double getE();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue#getE <em>E</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>E</em>' attribute.
+ * @see #getE()
+ * @generated
+ */
+ void setE(double value);
+
+ /**
+ * Returns the value of the '<em><b>Seff</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Seff</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Seff</em>' attribute.
+ * @see #setSeff(double)
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#getEvolvingCrossSpeciesModelLabelValue_Seff()
+ * @model annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ double getSeff();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue#getSeff <em>Seff</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Seff</em>' attribute.
+ * @see #getSeff()
+ * @generated
+ */
+ void setSeff(double value);
+
+} // EvolvingCrossSpeciesModelLabelValue
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelPackage.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelPackage.java
new file mode 100644
index 0000000..65be4f8
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/EvolvingCrossSpeciesModelPackage.java
@@ -0,0 +1,983 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+
+import org.eclipse.stem.diseasemodels.standard.StandardPackage;
+
+/**
+ * <!-- 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.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelFactory
+ * @model kind="package"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * annotation="http:///org/eclipse/stem/modelgen/metamodel uri='platform:/resource/.stemgenerator/model/evolvingcrossspeciesmodel.metamodel'"
+ * @generated
+ */
+public interface EvolvingCrossSpeciesModelPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "evolvingcrossspeciesmodel";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///org/eclipse/stem/evolvingcrossspeciesmodel/evolvingcrossspeciesmodel.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "org.eclipse.stem.evolvingcrossspeciesmodel";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EvolvingCrossSpeciesModelPackage eINSTANCE = org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelLabelImpl <em>Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelLabelImpl
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelPackageImpl#getEvolvingCrossSpeciesModelLabel()
+ * @generated
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL = 0;
+
+ /**
+ * The feature id for the '<em><b>URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__URI = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__URI;
+
+ /**
+ * The feature id for the '<em><b>Type URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__TYPE_URI = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__TYPE_URI;
+
+ /**
+ * The feature id for the '<em><b>Dublin Core</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__DUBLIN_CORE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DUBLIN_CORE;
+
+ /**
+ * The feature id for the '<em><b>URI Of Identifiable To Be Labeled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__URI_OF_IDENTIFIABLE_TO_BE_LABELED = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__URI_OF_IDENTIFIABLE_TO_BE_LABELED;
+
+ /**
+ * The feature id for the '<em><b>Current Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__CURRENT_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__CURRENT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Identifiable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__IDENTIFIABLE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__IDENTIFIABLE;
+
+ /**
+ * The feature id for the '<em><b>Next Value Valid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__NEXT_VALUE_VALID = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NEXT_VALUE_VALID;
+
+ /**
+ * The feature id for the '<em><b>Next Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__NEXT_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NEXT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Decorator</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__DECORATOR = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DECORATOR;
+
+ /**
+ * The feature id for the '<em><b>Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__NODE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NODE;
+
+ /**
+ * The feature id for the '<em><b>Delta Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__DELTA_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DELTA_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Temp Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__TEMP_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__TEMP_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Probe Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__PROBE_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__PROBE_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Error Scale</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__ERROR_SCALE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__ERROR_SCALE;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__IDENTIFIER = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Population Label</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__POPULATION_LABEL = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__POPULATION_LABEL;
+
+ /**
+ * The feature id for the '<em><b>Population Model Label</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL__POPULATION_MODEL_LABEL = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__POPULATION_MODEL_LABEL;
+
+ /**
+ * The number of structural features of the '<em>Label</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_FEATURE_COUNT = StandardPackage.STANDARD_DISEASE_MODEL_LABEL_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelLabelValueImpl <em>Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelLabelValueImpl
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelPackageImpl#getEvolvingCrossSpeciesModelLabelValue()
+ * @generated
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE = 1;
+
+ /**
+ * The feature id for the '<em><b>Arrivals</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__ARRIVALS = StandardPackage.SIR_LABEL_VALUE__ARRIVALS;
+
+ /**
+ * The feature id for the '<em><b>Departures</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__DEPARTURES = StandardPackage.SIR_LABEL_VALUE__DEPARTURES;
+
+ /**
+ * The feature id for the '<em><b>Population Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__POPULATION_COUNT = StandardPackage.SIR_LABEL_VALUE__POPULATION_COUNT;
+
+ /**
+ * The feature id for the '<em><b>S</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__S = StandardPackage.SIR_LABEL_VALUE__S;
+
+ /**
+ * The feature id for the '<em><b>Incidence</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__INCIDENCE = StandardPackage.SIR_LABEL_VALUE__INCIDENCE;
+
+ /**
+ * The feature id for the '<em><b>Disease Deaths</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__DISEASE_DEATHS = StandardPackage.SIR_LABEL_VALUE__DISEASE_DEATHS;
+
+ /**
+ * The feature id for the '<em><b>I</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__I = StandardPackage.SIR_LABEL_VALUE__I;
+
+ /**
+ * The feature id for the '<em><b>R</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__R = StandardPackage.SIR_LABEL_VALUE__R;
+
+ /**
+ * The feature id for the '<em><b>E</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E = StandardPackage.SIR_LABEL_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Seff</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF = StandardPackage.SIR_LABEL_VALUE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Label Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE_FEATURE_COUNT = StandardPackage.SIR_LABEL_VALUE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl <em>Evolving Cross Species Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelPackageImpl#getEvolvingCrossSpeciesModel()
+ * @generated
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL = 2;
+
+ /**
+ * The feature id for the '<em><b>URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__URI = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__URI;
+
+ /**
+ * The feature id for the '<em><b>Type URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__TYPE_URI = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__TYPE_URI;
+
+ /**
+ * The feature id for the '<em><b>Dublin Core</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__DUBLIN_CORE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__DUBLIN_CORE;
+
+ /**
+ * The feature id for the '<em><b>Labels To Update</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__LABELS_TO_UPDATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__LABELS_TO_UPDATE;
+
+ /**
+ * The feature id for the '<em><b>Graph</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__GRAPH = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__GRAPH;
+
+ /**
+ * The feature id for the '<em><b>Enabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__ENABLED = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__ENABLED;
+
+ /**
+ * The feature id for the '<em><b>Graph Decorated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__GRAPH_DECORATED = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__GRAPH_DECORATED;
+
+ /**
+ * The feature id for the '<em><b>Progress</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__PROGRESS = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__PROGRESS;
+
+ /**
+ * The feature id for the '<em><b>Add Stochastic Noise</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__ADD_STOCHASTIC_NOISE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__ADD_STOCHASTIC_NOISE;
+
+ /**
+ * The feature id for the '<em><b>Random Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__RANDOM_SEED = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__RANDOM_SEED;
+
+ /**
+ * The feature id for the '<em><b>Binomial Distribution</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__BINOMIAL_DISTRIBUTION = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__BINOMIAL_DISTRIBUTION;
+
+ /**
+ * The feature id for the '<em><b>Population Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__POPULATION_IDENTIFIER = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__POPULATION_IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Time Period</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__TIME_PERIOD = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__TIME_PERIOD;
+
+ /**
+ * The feature id for the '<em><b>Disease Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__DISEASE_NAME = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__DISEASE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Finite Difference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__FINITE_DIFFERENCE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__FINITE_DIFFERENCE;
+
+ /**
+ * The feature id for the '<em><b>Frequency Dependent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__FREQUENCY_DEPENDENT = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__FREQUENCY_DEPENDENT;
+
+ /**
+ * The feature id for the '<em><b>Reference Population Density</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__REFERENCE_POPULATION_DENSITY = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__REFERENCE_POPULATION_DENSITY;
+
+ /**
+ * The feature id for the '<em><b>Road Network Infectious Proportion</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION;
+
+ /**
+ * The feature id for the '<em><b>Characteristic Mixing Distance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__CHARACTERISTIC_MIXING_DISTANCE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE;
+
+ /**
+ * The feature id for the '<em><b>Transmission Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__TRANSMISSION_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__TRANSMISSION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Non Linearity Coefficient</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__NON_LINEARITY_COEFFICIENT = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__NON_LINEARITY_COEFFICIENT;
+
+ /**
+ * The feature id for the '<em><b>Recovery Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__RECOVERY_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__RECOVERY_RATE;
+
+ /**
+ * The feature id for the '<em><b>Infectious Mortality Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__INFECTIOUS_MORTALITY_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__INFECTIOUS_MORTALITY_RATE;
+
+ /**
+ * The feature id for the '<em><b>Parent Disease</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__PARENT_DISEASE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__PARENT_DISEASE;
+
+ /**
+ * The feature id for the '<em><b>Transformer</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__TRANSFORMER = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__TRANSFORMER;
+
+ /**
+ * The feature id for the '<em><b>Evolved At</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__EVOLVED_AT = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__EVOLVED_AT;
+
+ /**
+ * The feature id for the '<em><b>Genome</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__GENOME = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__GENOME;
+
+ /**
+ * The feature id for the '<em><b>Evolution Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__EVOLUTION_COUNT = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__EVOLUTION_COUNT;
+
+ /**
+ * The feature id for the '<em><b>Case Mutation Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__CASE_MUTATION_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__CASE_MUTATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Genome Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__GENOME_LENGTH = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__GENOME_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Genetic Dist Nonlin Exponent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__GENETIC_DIST_NONLIN_EXPONENT = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT;
+
+ /**
+ * The feature id for the '<em><b>Immunity Loss Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__IMMUNITY_LOSS_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE;
+
+ /**
+ * The feature id for the '<em><b>Cross Immunity Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__CROSS_IMMUNITY_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE;
+
+ /**
+ * The feature id for the '<em><b>Other To Other Transmission Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Other Recovery Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Other To Host Transmission Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Temperature Factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Other Population Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Other Immunity Loss Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Incubation Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>Evolving Cross Species Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_CROSS_SPECIES_MODEL_FEATURE_COUNT = EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT + 7;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel <em>Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Label</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel
+ * @generated
+ */
+ EClass getEvolvingCrossSpeciesModelLabel();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue <em>Label Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Label Value</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue
+ * @generated
+ */
+ EClass getEvolvingCrossSpeciesModelLabelValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue#getE <em>E</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>E</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue#getE()
+ * @see #getEvolvingCrossSpeciesModelLabelValue()
+ * @generated
+ */
+ EAttribute getEvolvingCrossSpeciesModelLabelValue_E();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue#getSeff <em>Seff</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Seff</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue#getSeff()
+ * @see #getEvolvingCrossSpeciesModelLabelValue()
+ * @generated
+ */
+ EAttribute getEvolvingCrossSpeciesModelLabelValue_Seff();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel <em>Evolving Cross Species Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Evolving Cross Species Model</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel
+ * @generated
+ */
+ EClass getEvolvingCrossSpeciesModel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherToOtherTransmissionRate <em>Other To Other Transmission Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Other To Other Transmission Rate</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherToOtherTransmissionRate()
+ * @see #getEvolvingCrossSpeciesModel()
+ * @generated
+ */
+ EAttribute getEvolvingCrossSpeciesModel_OtherToOtherTransmissionRate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherRecoveryRate <em>Other Recovery Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Other Recovery Rate</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherRecoveryRate()
+ * @see #getEvolvingCrossSpeciesModel()
+ * @generated
+ */
+ EAttribute getEvolvingCrossSpeciesModel_OtherRecoveryRate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherToHostTransmissionRate <em>Other To Host Transmission Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Other To Host Transmission Rate</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherToHostTransmissionRate()
+ * @see #getEvolvingCrossSpeciesModel()
+ * @generated
+ */
+ EAttribute getEvolvingCrossSpeciesModel_OtherToHostTransmissionRate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getTemperatureFactor <em>Temperature Factor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Temperature Factor</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getTemperatureFactor()
+ * @see #getEvolvingCrossSpeciesModel()
+ * @generated
+ */
+ EAttribute getEvolvingCrossSpeciesModel_TemperatureFactor();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherPopulationIdentifier <em>Other Population Identifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Other Population Identifier</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherPopulationIdentifier()
+ * @see #getEvolvingCrossSpeciesModel()
+ * @generated
+ */
+ EAttribute getEvolvingCrossSpeciesModel_OtherPopulationIdentifier();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherImmunityLossRate <em>Other Immunity Loss Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Other Immunity Loss Rate</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getOtherImmunityLossRate()
+ * @see #getEvolvingCrossSpeciesModel()
+ * @generated
+ */
+ EAttribute getEvolvingCrossSpeciesModel_OtherImmunityLossRate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getIncubationRate <em>Incubation Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Incubation Rate</em>'.
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel#getIncubationRate()
+ * @see #getEvolvingCrossSpeciesModel()
+ * @generated
+ */
+ EAttribute getEvolvingCrossSpeciesModel_IncubationRate();
+
+ /**
+ * 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
+ */
+ EvolvingCrossSpeciesModelFactory getEvolvingCrossSpeciesModelFactory();
+
+ /**
+ * <!-- 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.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelLabelImpl <em>Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelLabelImpl
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelPackageImpl#getEvolvingCrossSpeciesModelLabel()
+ * @generated
+ */
+ EClass EVOLVING_CROSS_SPECIES_MODEL_LABEL = eINSTANCE.getEvolvingCrossSpeciesModelLabel();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelLabelValueImpl <em>Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelLabelValueImpl
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelPackageImpl#getEvolvingCrossSpeciesModelLabelValue()
+ * @generated
+ */
+ EClass EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE = eINSTANCE.getEvolvingCrossSpeciesModelLabelValue();
+
+ /**
+ * The meta object literal for the '<em><b>E</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E = eINSTANCE.getEvolvingCrossSpeciesModelLabelValue_E();
+
+ /**
+ * The meta object literal for the '<em><b>Seff</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF = eINSTANCE.getEvolvingCrossSpeciesModelLabelValue_Seff();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl <em>Evolving Cross Species Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl
+ * @see org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelPackageImpl#getEvolvingCrossSpeciesModel()
+ * @generated
+ */
+ EClass EVOLVING_CROSS_SPECIES_MODEL = eINSTANCE.getEvolvingCrossSpeciesModel();
+
+ /**
+ * The meta object literal for the '<em><b>Other To Other Transmission Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE = eINSTANCE.getEvolvingCrossSpeciesModel_OtherToOtherTransmissionRate();
+
+ /**
+ * The meta object literal for the '<em><b>Other Recovery Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE = eINSTANCE.getEvolvingCrossSpeciesModel_OtherRecoveryRate();
+
+ /**
+ * The meta object literal for the '<em><b>Other To Host Transmission Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE = eINSTANCE.getEvolvingCrossSpeciesModel_OtherToHostTransmissionRate();
+
+ /**
+ * The meta object literal for the '<em><b>Temperature Factor</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR = eINSTANCE.getEvolvingCrossSpeciesModel_TemperatureFactor();
+
+ /**
+ * The meta object literal for the '<em><b>Other Population Identifier</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER = eINSTANCE.getEvolvingCrossSpeciesModel_OtherPopulationIdentifier();
+
+ /**
+ * The meta object literal for the '<em><b>Other Immunity Loss Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE = eINSTANCE.getEvolvingCrossSpeciesModel_OtherImmunityLossRate();
+
+ /**
+ * The meta object literal for the '<em><b>Incubation Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE = eINSTANCE.getEvolvingCrossSpeciesModel_IncubationRate();
+
+ }
+
+} //EvolvingCrossSpeciesModelPackage
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelExpressions.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelExpressions.java
new file mode 100644
index 0000000..f738cd7
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelExpressions.java
@@ -0,0 +1,20 @@
+package org.eclipse.stem.evolvingcrossspeciesmodel.impl;
+
+
+import org.eclipse.stem.core.graph.Node;
+import org.eclipse.stem.core.model.STEMTime;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue;
+
+ /**
+ * Generated expressions class for EvolvingCrossSpeciesModel.
+ * DO NOT EDIT DIRECTLY. Use extended class and override methods for transitions as desired.
+ * @generated NOT
+ */
+ public class EvolvingCrossSpeciesModelExpressions {
+ public void calculate(double t, long timeDelta, STEMTime time, EvolvingCrossSpeciesModel model, EvolvingCrossSpeciesModelLabel label, EvolvingCrossSpeciesModelLabelValue labelValue, Node node, EvolvingCrossSpeciesModelLabelValue deltaValue) {
+
+ }
+
+} //
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelFactoryImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelFactoryImpl.java
new file mode 100644
index 0000000..717f471
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelFactoryImpl.java
@@ -0,0 +1,122 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.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.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelFactory;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelFactoryImpl extends EFactoryImpl implements EvolvingCrossSpeciesModelFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EvolvingCrossSpeciesModelFactory init() {
+ try {
+ EvolvingCrossSpeciesModelFactory theEvolvingCrossSpeciesModelFactory = (EvolvingCrossSpeciesModelFactory)EPackage.Registry.INSTANCE.getEFactory(EvolvingCrossSpeciesModelPackage.eNS_URI);
+ if (theEvolvingCrossSpeciesModelFactory != null) {
+ return theEvolvingCrossSpeciesModelFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new EvolvingCrossSpeciesModelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL: return createEvolvingCrossSpeciesModelLabel();
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE: return createEvolvingCrossSpeciesModelLabelValue();
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL: return createEvolvingCrossSpeciesModel();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelLabel createEvolvingCrossSpeciesModelLabel() {
+ EvolvingCrossSpeciesModelLabelImpl evolvingCrossSpeciesModelLabel = new EvolvingCrossSpeciesModelLabelImpl();
+ return evolvingCrossSpeciesModelLabel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelLabelValue createEvolvingCrossSpeciesModelLabelValue() {
+ EvolvingCrossSpeciesModelLabelValueImpl evolvingCrossSpeciesModelLabelValue = new EvolvingCrossSpeciesModelLabelValueImpl();
+ return evolvingCrossSpeciesModelLabelValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModel createEvolvingCrossSpeciesModel() {
+ EvolvingCrossSpeciesModelImpl evolvingCrossSpeciesModel = new EvolvingCrossSpeciesModelImpl();
+ return evolvingCrossSpeciesModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelPackage getEvolvingCrossSpeciesModelPackage() {
+ return (EvolvingCrossSpeciesModelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static EvolvingCrossSpeciesModelPackage getPackage() {
+ return EvolvingCrossSpeciesModelPackage.eINSTANCE;
+ }
+
+} //EvolvingCrossSpeciesModelFactoryImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelImpl.java
new file mode 100644
index 0000000..cf0de84
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelImpl.java
@@ -0,0 +1,1071 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.impl;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.stem.core.graph.DynamicLabel;
+import org.eclipse.stem.core.graph.Exchange;
+import org.eclipse.stem.core.graph.ExchangePool;
+import org.eclipse.stem.core.graph.ExchangeType;
+import org.eclipse.stem.core.graph.Graph;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.Node;
+import org.eclipse.stem.core.graph.NodeLabel;
+import org.eclipse.stem.core.model.Decorator;
+import org.eclipse.stem.core.model.STEMTime;
+import org.eclipse.stem.core.scenario.ScenarioInitializationException;
+import org.eclipse.stem.definitions.functions.CTDLFunctions;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelImpl;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardPackage;
+import org.eclipse.stem.diseasemodels.vector.impl.Messages;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelFactory;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage;
+import org.eclipse.stem.populationmodels.standard.PopulationModelLabel;
+import org.eclipse.stem.populationmodels.standard.impl.StandardPopulationModelLabelValueImpl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Evolving Cross Species Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl#getOtherToOtherTransmissionRate <em>Other To Other Transmission Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl#getOtherRecoveryRate <em>Other Recovery Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl#getOtherToHostTransmissionRate <em>Other To Host Transmission Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl#getTemperatureFactor <em>Temperature Factor</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl#getOtherPopulationIdentifier <em>Other Population Identifier</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl#getOtherImmunityLossRate <em>Other Immunity Loss Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelImpl#getIncubationRate <em>Incubation Rate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelImpl extends EvolvingSIRDiseaseModelImpl implements EvolvingCrossSpeciesModel {
+ /**
+ * The default value of the '{@link #getOtherToOtherTransmissionRate() <em>Other To Other Transmission Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOtherToOtherTransmissionRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double OTHER_TO_OTHER_TRANSMISSION_RATE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getOtherToOtherTransmissionRate() <em>Other To Other Transmission Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOtherToOtherTransmissionRate()
+ * @generated
+ * @ordered
+ */
+ protected double otherToOtherTransmissionRate = OTHER_TO_OTHER_TRANSMISSION_RATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOtherRecoveryRate() <em>Other Recovery Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOtherRecoveryRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double OTHER_RECOVERY_RATE_EDEFAULT = 0.1;
+
+ /**
+ * The cached value of the '{@link #getOtherRecoveryRate() <em>Other Recovery Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOtherRecoveryRate()
+ * @generated
+ * @ordered
+ */
+ protected double otherRecoveryRate = OTHER_RECOVERY_RATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOtherToHostTransmissionRate() <em>Other To Host Transmission Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOtherToHostTransmissionRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double OTHER_TO_HOST_TRANSMISSION_RATE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getOtherToHostTransmissionRate() <em>Other To Host Transmission Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOtherToHostTransmissionRate()
+ * @generated
+ * @ordered
+ */
+ protected double otherToHostTransmissionRate = OTHER_TO_HOST_TRANSMISSION_RATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTemperatureFactor() <em>Temperature Factor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemperatureFactor()
+ * @generated
+ * @ordered
+ */
+ protected static final double TEMPERATURE_FACTOR_EDEFAULT = 20.0;
+
+ /**
+ * The cached value of the '{@link #getTemperatureFactor() <em>Temperature Factor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemperatureFactor()
+ * @generated
+ * @ordered
+ */
+ protected double temperatureFactor = TEMPERATURE_FACTOR_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOtherPopulationIdentifier() <em>Other Population Identifier</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOtherPopulationIdentifier()
+ * @generated
+ * @ordered
+ */
+ protected static final String OTHER_POPULATION_IDENTIFIER_EDEFAULT = "avian";
+
+ /**
+ * The cached value of the '{@link #getOtherPopulationIdentifier() <em>Other Population Identifier</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOtherPopulationIdentifier()
+ * @generated
+ * @ordered
+ */
+ protected String otherPopulationIdentifier = OTHER_POPULATION_IDENTIFIER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOtherImmunityLossRate() <em>Other Immunity Loss Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOtherImmunityLossRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double OTHER_IMMUNITY_LOSS_RATE_EDEFAULT = 0.001;
+
+ /**
+ * The cached value of the '{@link #getOtherImmunityLossRate() <em>Other Immunity Loss Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOtherImmunityLossRate()
+ * @generated
+ * @ordered
+ */
+ protected double otherImmunityLossRate = OTHER_IMMUNITY_LOSS_RATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIncubationRate() <em>Incubation Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncubationRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double INCUBATION_RATE_EDEFAULT = 1.0;
+
+ /**
+ * The cached value of the '{@link #getIncubationRate() <em>Incubation Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncubationRate()
+ * @generated
+ * @ordered
+ */
+ protected double incubationRate = INCUBATION_RATE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelImpl() {
+ super();
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getOtherToOtherTransmissionRate() {
+ return otherToOtherTransmissionRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOtherToOtherTransmissionRate(double newOtherToOtherTransmissionRate) {
+ otherToOtherTransmissionRate = newOtherToOtherTransmissionRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getOtherRecoveryRate() {
+ return otherRecoveryRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOtherRecoveryRate(double newOtherRecoveryRate) {
+ otherRecoveryRate = newOtherRecoveryRate;
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getOtherImmunityLossRate() {
+ return otherImmunityLossRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOtherImmunityLossRate(double newOtherImmunityLossRate) {
+ otherImmunityLossRate = newOtherImmunityLossRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getIncubationRate() {
+ return incubationRate;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIncubationRate(double newIncubationRate) {
+ incubationRate = newIncubationRate;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getOtherToHostTransmissionRate() {
+ return otherToHostTransmissionRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOtherToHostTransmissionRate(double newOtherToHostTransmissionRate) {
+ otherToHostTransmissionRate = newOtherToHostTransmissionRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getTemperatureFactor() {
+ return temperatureFactor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTemperatureFactor(double newTemperatureFactor) {
+ temperatureFactor = newTemperatureFactor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOtherPopulationIdentifier() {
+ return otherPopulationIdentifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOtherPopulationIdentifier(String newOtherPopulationIdentifier) {
+ otherPopulationIdentifier = newOtherPopulationIdentifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * In order to implement vector disease model (Other == Vector)
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getVectorPopulationIdentifier() {
+ return otherPopulationIdentifier;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * In order to implement vector disease model (Other == Vector)
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setVectorPopulationIdentifier(String newVectorPopulationIdentifier) {
+ otherPopulationIdentifier = newVectorPopulationIdentifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE:
+ return getOtherToOtherTransmissionRate();
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE:
+ return getOtherRecoveryRate();
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE:
+ return getOtherToHostTransmissionRate();
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR:
+ return getTemperatureFactor();
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER:
+ return getOtherPopulationIdentifier();
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE:
+ return getOtherImmunityLossRate();
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE:
+ return getIncubationRate();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE:
+ setOtherToOtherTransmissionRate((Double)newValue);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE:
+ setOtherRecoveryRate((Double)newValue);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE:
+ setOtherToHostTransmissionRate((Double)newValue);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR:
+ setTemperatureFactor((Double)newValue);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER:
+ setOtherPopulationIdentifier((String)newValue);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE:
+ setOtherImmunityLossRate((Double)newValue);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE:
+ setIncubationRate((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE:
+ setOtherToOtherTransmissionRate(OTHER_TO_OTHER_TRANSMISSION_RATE_EDEFAULT);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE:
+ setOtherRecoveryRate(OTHER_RECOVERY_RATE_EDEFAULT);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE:
+ setOtherToHostTransmissionRate(OTHER_TO_HOST_TRANSMISSION_RATE_EDEFAULT);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR:
+ setTemperatureFactor(TEMPERATURE_FACTOR_EDEFAULT);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER:
+ setOtherPopulationIdentifier(OTHER_POPULATION_IDENTIFIER_EDEFAULT);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE:
+ setOtherImmunityLossRate(OTHER_IMMUNITY_LOSS_RATE_EDEFAULT);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE:
+ setIncubationRate(INCUBATION_RATE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE:
+ return otherToOtherTransmissionRate != OTHER_TO_OTHER_TRANSMISSION_RATE_EDEFAULT;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE:
+ return otherRecoveryRate != OTHER_RECOVERY_RATE_EDEFAULT;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE:
+ return otherToHostTransmissionRate != OTHER_TO_HOST_TRANSMISSION_RATE_EDEFAULT;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR:
+ return temperatureFactor != TEMPERATURE_FACTOR_EDEFAULT;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER:
+ return OTHER_POPULATION_IDENTIFIER_EDEFAULT == null ? otherPopulationIdentifier != null : !OTHER_POPULATION_IDENTIFIER_EDEFAULT.equals(otherPopulationIdentifier);
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE:
+ return otherImmunityLossRate != OTHER_IMMUNITY_LOSS_RATE_EDEFAULT;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE:
+ return incubationRate != INCUBATION_RATE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (otherToOtherTransmissionRate: ");
+ result.append(otherToOtherTransmissionRate);
+ result.append(", otherRecoveryRate: ");
+ result.append(otherRecoveryRate);
+ result.append(", otherToHostTransmissionRate: ");
+ result.append(otherToHostTransmissionRate);
+ result.append(", temperatureFactor: ");
+ result.append(temperatureFactor);
+ result.append(", otherPopulationIdentifier: ");
+ result.append(otherPopulationIdentifier);
+ result.append(", otherImmunityLossRate: ");
+ result.append(otherImmunityLossRate);
+ result.append(", incubationRate: ");
+ result.append(incubationRate);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void applyExternalDeltas(STEMTime currentTime, double continuousTime, long timeDelta, EList<DynamicLabel> labels) {
+ // TODO Auto-generated stub. Implement applyExternalDeltas(...) for EvolvingCrossSpeciesModelImpl.
+ super.applyExternalDeltas(currentTime, continuousTime, timeDelta, labels);
+ } // applyExternalDeltas
+
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doStochasticProcess(IntegrationLabel label, long timeDelta) {
+ // TODO Auto-generated stub. Implement doStochasticProcess(...) for EvolvingCrossSpeciesModelImpl.
+ super.doStochasticProcess(label, timeDelta);
+ } // doStochasticProcess
+
+
+
+
+ /**
+ *
+ * @param n
+ * @param identifier
+ * @param targetDiseaseName
+ * @return
+ * @generated NOT
+ */
+ EvolvingCrossSpeciesModelLabel findDiseaseLabel(Node n, String identifier, String targetDiseaseName) {
+
+ for(NodeLabel nl:n.getLabels()) {
+ if(nl instanceof EvolvingCrossSpeciesModelLabel && ((DiseaseModelLabel)nl).getPopulationModelLabel().getPopulationIdentifier().equals(identifier)) {
+ DiseaseModel disease = (DiseaseModel)(((DiseaseModelLabel)nl).getDecorator());
+ if(disease.getDiseaseName().equalsIgnoreCase(targetDiseaseName)) {
+ return (EvolvingCrossSpeciesModelLabel)nl;
+ }// if disease name matches
+ }// if evolving model and correct population
+ }// for all labels
+ return null;
+ }// findDiseaseLabel
+
+
+
+
+
+ /**
+ *
+ * @param time
+ * @param t
+ * @param timeDelta
+ * @param labels
+ * @return
+ * @generated NOT
+ */
+ public void calculateDeltas(STEMTime time, double t, long timeDelta, EList<DynamicLabel> labels) {
+
+ for(int _i=0;_i<labels.size();++_i) {
+ EvolvingCrossSpeciesModelLabel diseaseLabel = (EvolvingCrossSpeciesModelLabel)labels.get(_i);
+ EvolvingCrossSpeciesModelLabelValue currentDiseaseState = (EvolvingCrossSpeciesModelLabelValue)diseaseLabel.getProbeValue();
+ EvolvingCrossSpeciesModelLabelValue deltaValue = (EvolvingCrossSpeciesModelLabelValue)diseaseLabel.getDeltaValue();
+ deltaValue.reset();
+
+ double densityFactor = 1.0;
+ if(!this.frequencyDependent) {
+ double popDensity = currentDiseaseState.getPopulationCount()/CTDLFunctions.area(diseaseLabel.getNode());
+ densityFactor *= popDensity/this.referencePopulationDensity;
+ }
+
+
+
+
+ ///////////////
+ // Label is PRIMARY e.g. avian vector
+ if(diseaseLabel.getPopulationModelLabel().getPopulationIdentifier().equals(this.getPopulationIdentifier())) {
+
+ // PRIMARY
+ double deltaS = 0.0, deltaE=0.0, deltaI=0.0, deltaR=0.0;
+ double effectiveIPrimary = this.getNormalizedEffectiveInfectious(diseaseLabel.getNode(), diseaseLabel, currentDiseaseState.getI(), StandardPackage.Literals.SI_LABEL_VALUE__I, StandardPackage.Literals.STANDARD_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE, StandardPackage.Literals.STANDARD_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION);
+
+ // get the cross susc matrix term
+ double effectiveSusceptible = getEffectiveSuscptible(currentDiseaseState, diseaseLabel, this.getPopulationIdentifier());
+
+ ///////////////
+ // PRIMARY will be like AVIAN (or vector like) for now. We do not infect OTHER HOST =>AVIAN. Only PRIMARY => OTHER (below)
+ //
+ double StoE = (densityFactor*this.getTransmissionRate()*effectiveSusceptible*effectiveIPrimary);
+ double EtoI = this.getIncubationRate()*currentDiseaseState.getE();
+ double ItoR = this.getRecoveryRate()*currentDiseaseState.getI();
+ double RtoS = this.getImmunityLossRate()*currentDiseaseState.getR();
+
+
+ // S->E
+ Exchange seExchange = (Exchange)ExchangePool.POOL.get();
+ seExchange.setSource(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_S());
+ seExchange.setTarget(EvolvingCrossSpeciesModelPackage.eINSTANCE.getEvolvingCrossSpeciesModelLabelValue_E());
+ seExchange.setCount(StoE);
+ seExchange.getForIncidence().add(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_Incidence());
+ seExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(seExchange);
+
+ // E->I
+ // Stochastic exchange for e -> i
+ Exchange eiExchange = (Exchange)ExchangePool.POOL.get();
+ eiExchange.setSource(EvolvingCrossSpeciesModelPackage.eINSTANCE.getEvolvingCrossSpeciesModelLabelValue_E());
+ eiExchange.setTarget(StandardPackage.eINSTANCE.getSILabelValue_I());
+ eiExchange.setCount(EtoI);
+ eiExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(eiExchange);
+
+ // I->R
+ Exchange irExchange = (Exchange)ExchangePool.POOL.get();
+ irExchange.setSource(StandardPackage.eINSTANCE.getSILabelValue_I());
+ irExchange.setTarget(StandardPackage.eINSTANCE.getSIRLabelValue_R());
+ irExchange.setCount(ItoR);
+ irExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(irExchange);
+
+ // R->S
+ Exchange rsExchange = (Exchange)ExchangePool.POOL.get();
+ rsExchange.setSource(StandardPackage.eINSTANCE.getSIRLabelValue_R());
+ rsExchange.setTarget(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_S());
+ rsExchange.setCount(RtoS);
+ rsExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(rsExchange);
+
+
+ deltaS = -StoE+RtoS;
+ deltaE = StoE-EtoI;
+ deltaI = EtoI-ItoR;
+ deltaR = ItoR - RtoS;
+
+ deltaValue.setS(deltaS);
+ deltaValue.setE(deltaE);
+ deltaValue.setI(deltaI);
+ deltaValue.setR(deltaR);
+ deltaValue.setIncidence(StoE);
+
+ } else {
+
+ ///////////////////////////////////////////////////////////
+ // OTHER => Like the host/human can be infected by PRIMARY
+ //
+ double deltaS = 0.0, deltaE=0.0, deltaI=0.0, deltaR = 0.0;
+
+ // get "the vector"
+ double effectiveIVector = 0.0;
+ EvolvingCrossSpeciesModelLabel vectorLabel = findDiseaseLabel(diseaseLabel.getNode(), this.getPopulationIdentifier(), this.getDiseaseName());
+ EvolvingCrossSpeciesModelLabelValue vectorLabelValue = null;
+ if(vectorLabel != null) {
+ vectorLabelValue = (EvolvingCrossSpeciesModelLabelValue)vectorLabel.getTempValue();
+ effectiveIVector = this.getNormalizedEffectiveInfectious(diseaseLabel.getNode(), vectorLabel, vectorLabelValue.getI(), StandardPackage.Literals.SI_LABEL_VALUE__I, StandardPackage.Literals.STANDARD_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE, StandardPackage.Literals.STANDARD_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION);
+ }
+
+ // like the human
+ double effectiveIOther = this.getNormalizedEffectiveInfectious(diseaseLabel.getNode(), diseaseLabel, currentDiseaseState.getI(), StandardPackage.Literals.SI_LABEL_VALUE__I, StandardPackage.Literals.STANDARD_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE, StandardPackage.Literals.STANDARD_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION);
+
+
+ // get the cross susc matrix term
+ double effectiveSusceptible = getEffectiveSuscptible(currentDiseaseState, diseaseLabel, diseaseLabel.getPopulationModelLabel().getPopulationIdentifier());
+
+ // here we are OTHER and can be infect by PRIMARY
+ double StoE = (densityFactor*this.getOtherToOtherTransmissionRate()*effectiveSusceptible*effectiveIOther)
+ +
+ (densityFactor*this.getOtherToHostTransmissionRate()*effectiveSusceptible*effectiveIVector);
+
+ double EtoI = this.getIncubationRate()*currentDiseaseState.getE();
+ double ItoR = this.getOtherRecoveryRate()*currentDiseaseState.getI();
+ double RtoS = this.getOtherImmunityLossRate()*currentDiseaseState.getR();
+
+ deltaS = -StoE+RtoS;
+ deltaE = StoE-EtoI;
+ deltaI = EtoI-ItoR;
+ deltaR = ItoR - RtoS;
+
+
+ // S->E
+ Exchange seExchange = (Exchange)ExchangePool.POOL.get();
+ seExchange.setSource(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_S());
+ seExchange.setTarget(EvolvingCrossSpeciesModelPackage.eINSTANCE.getEvolvingCrossSpeciesModelLabelValue_E());
+ seExchange.setCount(StoE);
+ seExchange.getForIncidence().add(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_Incidence());
+ seExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(seExchange);
+
+ // E->I
+ // Stochastic exchange for e -> i
+ Exchange eiExchange = (Exchange)ExchangePool.POOL.get();
+ eiExchange.setSource(EvolvingCrossSpeciesModelPackage.eINSTANCE.getEvolvingCrossSpeciesModelLabelValue_E());
+ eiExchange.setTarget(StandardPackage.eINSTANCE.getSILabelValue_I());
+ eiExchange.setCount(EtoI);
+ eiExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(eiExchange);
+
+ // I->R
+ Exchange irExchange = (Exchange)ExchangePool.POOL.get();
+ irExchange.setSource(StandardPackage.eINSTANCE.getSILabelValue_I());
+ irExchange.setTarget(StandardPackage.eINSTANCE.getSIRLabelValue_R());
+ irExchange.setCount(ItoR);
+ irExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(irExchange);
+
+ // R->S
+ Exchange rsExchange = (Exchange)ExchangePool.POOL.get();
+ rsExchange.setSource(StandardPackage.eINSTANCE.getSIRLabelValue_R());
+ rsExchange.setTarget(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_S());
+ rsExchange.setCount(RtoS);
+ rsExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(rsExchange);
+
+
+ deltaValue.setS(deltaS);
+ deltaValue.setE(deltaE);
+ deltaValue.setI(deltaI);
+ deltaValue.setR(deltaR);
+ deltaValue.setIncidence(StoE);
+
+ }
+
+ deltaValue.scale(((double) timeDelta / (double) getTimePeriod()));
+ computeAdditionalDeltasAndExchanges(diseaseLabel, time, t, timeDelta);
+ }
+
+
+ } // calculateDeltas
+
+
+
+
+ /**
+ *
+ * @param currentSIR
+ * @param diseaseLabel
+ * @return
+ */
+ public double getEffectiveSuscptible(EvolvingCrossSpeciesModelLabelValue currentSIR, EvolvingCrossSpeciesModelLabel diseaseLabel, String targetPopulationIdentifier) {
+
+ ////////////////////////////////////////////////////
+ // ******* EVOLVING DISEASE MODEL *************** //
+ //
+ // Si* = Si ∏_(j≠i) 〖[1-χji (Rj/N〗)]
+ //
+ double effectiveSusceptible = currentSIR.getS();
+ double popCount = currentSIR.getS()+currentSIR.getE()+currentSIR.getI()+currentSIR.getR();
+ double crossProduct = 1.0;
+ if((crossImmunityRate>0.0)&&(effectiveSusceptible>1)) {
+ // NEED TO CORRECT SUSCEPTIBLES BASED ON CROSS STRAIN IMMUNITY //
+ Node thisNode = diseaseLabel.getNode();
+ EList<NodeLabel> allLabels = thisNode.getLabels();
+ for(NodeLabel nl:allLabels) {
+ if(nl instanceof EvolvingSIRDiseaseModelLabel) {
+ EvolvingSIRDiseaseModelLabel sirLabel = (EvolvingSIRDiseaseModelLabel) nl;
+ Decorator otherDisease = sirLabel.getDecorator();
+
+ // need to check both the disease and the target population
+ if( (otherDisease instanceof EvolvingSIRDiseaseModel)&&(sirLabel.getPopulationModelLabel().getPopulationIdentifier().equalsIgnoreCase(targetPopulationIdentifier)) ){
+ // should always be true
+ EvolvingSIRDiseaseModel otherSIRDiease = (EvolvingSIRDiseaseModel)otherDisease;
+ if(!otherSIRDiease.getDiseaseName().equals(this.getDiseaseName())) {
+ // ie NOT this DISEASE
+ EvolvingSIRDiseaseModelLabelValue otherValue = (EvolvingSIRDiseaseModelLabelValue)sirLabel.getCurrentValue();
+
+
+ double immuneTerm = otherValue.getR()/popCount;
+
+ // the genetic distance is based on comparing the 2 genomes. Each letter gives a difference of 1
+ // the crossImmunityRate is the crossImmunity with 1 nt different
+ double geneticDistance = getGeneticDistance(otherSIRDiease);
+
+ // for a center of mass distance model uncomment the following....
+ // double geneticDistance *= getCMdistance(otherSIR);
+
+ if(geneticDistance >= 1 ) {
+ immuneTerm *= (crossImmunityRate/ geneticDistance);
+ }
+
+
+ crossProduct *= (1.0-immuneTerm);
+ // prevent round off error
+ if(crossProduct < 0) {
+ crossProduct = 0.0; // round off error
+ }
+
+
+ }
+ }
+ }
+ }
+ }
+ effectiveSusceptible *= crossProduct;
+ //System.out.println("S = "+currentSIR.getS()+" crossProduct = "+crossProduct+" Seffective = "+effectiveSusceptible);
+
+
+ // ******* EVOLVING DISEASE MODEL *************** //
+ ////////////////////////////////////////////////////
+
+ return effectiveSusceptible;
+ }
+
+ /**
+ *
+ * @param genome
+ * @return value between 1 and 2
+ */
+ public double getHostTransmissionRate(boolean[] genome) {
+ double transRate = 0;
+ int len = genome.length;
+ for(int i = 0; i < len-1; i ++) {
+ if(!genome[i]) {
+ transRate = transRate + Math.pow(2.0,(double) i);
+ }
+ }
+ transRate = transRate/Math.pow(2.0,(double) (len-1)); // 0 =>1
+ //transRate ++; // 1 =>2
+
+ return transRate;
+ }
+
+ /**
+ *
+ * @param genome
+ * @return
+ */
+ public double getCrossTransmissionRate(boolean[] genome) {
+ // use all bits for host transmission Cross strain will be constant
+// double transRate = 0;
+// for(int j = 4; j < 8; j ++) {
+// int i = j-4;
+// if(!genome[j]) {
+// transRate = transRate + Math.pow(2.0,(double) i);
+// }
+// }
+// transRate = transRate/16.0; // 0 =>1
+// transRate ++; // 1 =>2
+ double transRate = 1;
+ return transRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public void calculateEvolvedInitialState() {
+ EvolvingSIRDiseaseModelImpl parentDiseaseModel = (EvolvingSIRDiseaseModelImpl)getParentDisease();
+ DiseaseModelLabel parentEvolutionSource = getEvolvedAt();
+ if (parentDiseaseModel == null && parentEvolutionSource == null) {
+ // The evolution wasn't initialized correctly.
+ // This should be unreachable but who knows.
+ System.err.println("Trying to calculate label state from an improperly initialized evolved model. Do something.");
+ return;
+ }
+
+ Node currentNode = parentEvolutionSource.getNode();
+ URI evolutionLocation = currentNode.getURI();
+
+ boolean[] genome = getGenome();
+ boolean[] parentGenome = parentDiseaseModel.getGenome();
+
+ // Update the genome
+ if(genome != null && genome.length > 1) {
+ double dMute = Math.random()*genome.length;
+ int iMute = (int)Math.round(dMute);
+ for(int i = 0; i < genome.length; i ++) {
+ genome[i] = parentGenome[i];
+ if(i==iMute) {
+ genome[i] = !genome[i];
+ }
+ }
+ }
+
+ setGenome(genome);
+ double otherTransRate = getHostTransmissionRate(genome);// number from 0 -> 1
+ double factor = getOtherRecoveryRate()+getOtherImmunityLossRate();
+ double newTransRateOther = factor*(1.0+(otherTransRate/4));
+ System.out.println(" new transmission = "+newTransRateOther );
+
+ setOtherToOtherTransmissionRate(newTransRateOther); // 1->2*factor
+
+ // TEST CODE new human transmission rate
+ // double primateTransmisionRate = getOtherToOtherTransmissionRate();
+ // System.out.println("human transmission new = "+primateTransmisionRate);
+
+
+ // AVIAN transmission rate will be constant - it is the reservoir
+ // double avianTransmissionRate = getTransmissionRate();
+ // System.out.println("avian transmission rate fixed at "+avianTransmissionRate);
+
+
+ //setOtherToHostTransmissionRate(factor*2*getCrossTransmissionRate(genome));
+
+ setOtherToHostTransmissionRate(factor*1.05);
+
+
+ // create the child labels
+ for (DynamicLabel dl : this.getLabelsToUpdate()) {
+ if (dl instanceof EvolvingCrossSpeciesModelLabel) {
+ double s = 0.0;
+ double e = 0.0;
+ double i = 0.0;
+ double r = 0.0;
+ double diseaseDeaths = 0.0;
+
+ // this is the new label we need to set
+ EvolvingCrossSpeciesModelLabel childLabel = (EvolvingCrossSpeciesModelLabel)dl;
+ EvolvingCrossSpeciesModelLabelValue childLabelValues = (EvolvingCrossSpeciesModelLabelValue)childLabel.getCurrentValue();
+ // this is the new label we need to set
+ EvolvingCrossSpeciesModelLabel parentSIRlabel = (EvolvingCrossSpeciesModelLabel) parentEvolutionSource;
+ EvolvingCrossSpeciesModelLabelValue parentSIRLabelValues = (EvolvingCrossSpeciesModelLabelValue)parentSIRlabel.getCurrentValue();
+ double parentInfectious = parentSIRLabelValues.getI();
+
+ //String parentPop = parentSIRlabel.getPopulationModelLabel().getPopulationIdentifier();
+ //StandardPopulationModelLabelValueImpl parentValue = (StandardPopulationModelLabelValueImpl)parentSIRlabel.getPopulationModelLabel().getCurrentValue();
+
+ //String childPopulation = childLabel.getPopulationModelLabel().getPopulationIdentifier();
+
+ StandardPopulationModelLabelValueImpl childValue = (StandardPopulationModelLabelValueImpl)childLabel.getPopulationModelLabel().getCurrentValue();
+ double popCount = childValue.getCount(); // population count of the actually identified type
+ s = popCount;
+
+ // Do something interesting here to initialize disease state
+ if (childLabel.getNode().getURI().equals(evolutionLocation)) {
+ // This is where the evolution happened, so you probably need to set your
+ // infectious state differently
+
+ if(parentEvolutionSource instanceof EvolvingCrossSpeciesModelLabel) {
+ // should be true
+ if((popCount > 1.0)&&(parentInfectious > 1.0)) {
+ // init the child diseases values. if the population is zero or i is zero this is the OTHER population so we do not initialize it.
+ e = 1.0;
+ s = s - 1.0;
+ } // else nothing. It's to be expected
+ }
+
+ } else {
+ // This is everywhere else
+ // for now we are already set
+ } // if else
+
+ childLabelValues.setS(s);
+ childLabelValues.setE(e);
+ childLabelValues.setI(i);
+ childLabelValues.setR(r);
+ childLabelValues.setDiseaseDeaths(diseaseDeaths);
+ }
+ }
+ }
+
+
+
+
+
+ /**
+ * Includes the Vector population in list of populations
+ * @generated NOT
+ */
+ @Override
+ public EList<String> getAllLabelIdentifiers() {
+ EList<String> identifiers = new BasicEList<String>();
+
+ identifiers.add(getPopulationIdentifier());
+ identifiers.add(getOtherPopulationIdentifier());
+
+ return identifiers;
+ }
+
+
+ /**
+ * We need to override this method to return all population model labels for both humans and the vector
+ *
+ * @param populationIdentifier
+ * the population being labeled
+ * @param graph
+ * the graph to search
+ * @return the PopulationLabel instances of the graph that match the
+ * identifier.
+ * @generated NOT
+ */
+ @Override
+ public EList<PopulationModelLabel> getPopulationModelLabels(
+ String populationIdentifier, Graph graph) throws ScenarioInitializationException {
+ final EList<PopulationModelLabel> retValue = new BasicEList<PopulationModelLabel>();
+
+ // Iterate through all of the population labels in the graph
+ EList<NodeLabel> labels = graph.getNodeLabelsByTypeURI(
+ PopulationModelLabel.URI_TYPE_DYNAMIC_POPULATION_LABEL);
+
+ boolean foundPrimary = false, foundOther = false;
+ for (NodeLabel pl:labels) {
+ final PopulationModelLabel populationLabel = (PopulationModelLabel) pl;
+ // Is this label for the population we're looking for?
+ boolean keep = false;
+ if(populationLabel.getPopulationIdentifier().equals(populationIdentifier))
+ {keep=true;foundPrimary = true;}
+ else if(populationLabel.getPopulationIdentifier().equals(getVectorPopulationIdentifier()))
+ {keep=true;foundOther = true;}
+
+ if (keep) {
+ // Yes
+ // If there is a problem with the "node uri" of the population
+ // label then it would not have been associated with a node
+ // instance in the graph at this point. This is a problem for
+ // disease models that are trying to label the node (there isn't
+ // one!). So filter out those mistakes here.
+
+ // Does the population label have an associated node?
+ if (populationLabel.getNode() != null) {
+ // Yes
+ retValue.add(populationLabel);
+ } // if the population label has a node
+ } // if the population we're looking for
+ } // for each population label
+
+ // If we didn't find both humans and the vector, return an empty list.
+ // This will force a retry creating disease labels after all population model labels have
+ // had time to decorate the graph
+ if(!foundPrimary)
+ throw new ScenarioInitializationException(NLS.bind(Messages.HOST_POP_MOD_LABEL_NOT_FOUND, new Object[] {this.getURI().toString(), this.getPopulationIdentifier()}), this, new Exception());
+ if(!foundOther)
+ throw new ScenarioInitializationException(NLS.bind(Messages.VECTOR_POP_MOD_LABEL_NOT_FOUND, new Object[] {this.getURI().toString(), this.getVectorPopulationIdentifier()}),this, new Exception());
+
+ return retValue;
+ }
+
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DiseaseModelLabel createDiseaseModelLabel(String populationIdentifier) {
+
+ DiseaseModelLabel label = EvolvingCrossSpeciesModelFactory.eINSTANCE.createEvolvingCrossSpeciesModelLabel();
+ label.setTypeURI(DiseaseModelLabel.URI_TYPE_DYNAMIC_DISEASE_LABEL);
+
+ return label;
+ } // createDiseaseModelLabel
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DiseaseModelLabelValue createDiseaseModelLabelValue(String populationIdentifier) {
+
+ return EvolvingCrossSpeciesModelFactory.eINSTANCE.createEvolvingCrossSpeciesModelLabelValue();
+ }
+
+
+
+} //EvolvingCrossSpeciesModelImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelLabelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelLabelImpl.java
new file mode 100644
index 0000000..7a6246f
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelLabelImpl.java
@@ -0,0 +1,52 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelLabelImpl;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelFactory;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Label</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelLabelImpl extends StandardDiseaseModelLabelImpl implements EvolvingCrossSpeciesModelLabel {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelLabelImpl() {
+ super();
+ setCurrentValue(EvolvingCrossSpeciesModelFactory.eINSTANCE.createEvolvingCrossSpeciesModelLabelValue());
+ setNextValue(EvolvingCrossSpeciesModelFactory.eINSTANCE.createEvolvingCrossSpeciesModelLabelValue());
+ setTempValue(EvolvingCrossSpeciesModelFactory.eINSTANCE.createEvolvingCrossSpeciesModelLabelValue());
+ setProbeValue(EvolvingCrossSpeciesModelFactory.eINSTANCE.createEvolvingCrossSpeciesModelLabelValue());
+ setErrorScale(EvolvingCrossSpeciesModelFactory.eINSTANCE.createEvolvingCrossSpeciesModelLabelValue());
+ setDeltaValue(EvolvingCrossSpeciesModelFactory.eINSTANCE.createEvolvingCrossSpeciesModelLabelValue());
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL_LABEL;
+ }
+
+
+
+
+} //EvolvingCrossSpeciesModelLabelImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelLabelValueImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelLabelValueImpl.java
new file mode 100644
index 0000000..8545177
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelLabelValueImpl.java
@@ -0,0 +1,476 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.stem.core.graph.IntegrationLabelValue;
+import org.eclipse.stem.core.graph.LabelValue;
+import org.eclipse.stem.diseasemodels.standard.impl.SIRLabelValueImpl;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelFactory;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelLabelValueImpl#getE <em>E</em>}</li>
+ * <li>{@link org.eclipse.stem.evolvingcrossspeciesmodel.impl.EvolvingCrossSpeciesModelLabelValueImpl#getSeff <em>Seff</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelLabelValueImpl extends SIRLabelValueImpl implements EvolvingCrossSpeciesModelLabelValue {
+ /**
+ * The default value of the '{@link #getE() <em>E</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getE()
+ * @generated
+ * @ordered
+ */
+ protected static final double E_EDEFAULT = 0.0;
+ /**
+ * The cached value of the '{@link #getE() <em>E</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getE()
+ * @generated
+ * @ordered
+ */
+ protected double e = E_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSeff() <em>Seff</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeff()
+ * @generated
+ * @ordered
+ */
+ protected static final double SEFF_EDEFAULT = 0.0;
+ /**
+ * The cached value of the '{@link #getSeff() <em>Seff</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeff()
+ * @generated
+ * @ordered
+ */
+ protected double seff = SEFF_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelLabelValueImpl() {
+ super();
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE;
+ }
+
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getE() {
+ return e;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setE(double newE) {
+ e = newE;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getSeff() {
+ return seff;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSeff(double newSeff) {
+ seff = newSeff;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E:
+ return getE();
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF:
+ return getSeff();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E:
+ setE((Double)newValue);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF:
+ setSeff((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E:
+ setE(E_EDEFAULT);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF:
+ setSeff(SEFF_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E:
+ return e != E_EDEFAULT;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF:
+ return seff != SEFF_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (e: ");
+ result.append(e);
+ result.append(", seff: ");
+ result.append(seff);
+ result.append(')');
+ return result.toString();
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public IntegrationLabelValue set(IntegrationLabelValue value) {
+ EvolvingCrossSpeciesModelLabelValue v = (EvolvingCrossSpeciesModelLabelValue)value;
+ super.set(v);
+
+ setE(v.getE());
+ setSeff(v.getSeff());
+
+ return this;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public IntegrationLabelValue add(IntegrationLabelValue value) {
+ EvolvingCrossSpeciesModelLabelValue v = (EvolvingCrossSpeciesModelLabelValue)value;
+ super.add(v);
+
+ setE(getE() + v.getE());
+ setSeff(getSeff() + v.getSeff());
+
+ return this;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public IntegrationLabelValue add(double value) {
+ super.add(value);
+
+ setE((double)(getE() + value));
+ setSeff((double)(getSeff() + value));
+
+ return this;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public IntegrationLabelValue sub(IntegrationLabelValue value) {
+ EvolvingCrossSpeciesModelLabelValue v = (EvolvingCrossSpeciesModelLabelValue)value;
+ super.sub(v);
+
+ setE(getE() - v.getE());
+ setSeff(getSeff() - v.getSeff());
+
+ return this;
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public IntegrationLabelValue divide(IntegrationLabelValue value) {
+ EvolvingCrossSpeciesModelLabelValue v = (EvolvingCrossSpeciesModelLabelValue)value;
+ super.divide(v);
+
+ setE(getE() / v.getE());
+ setSeff(getSeff() / v.getSeff());
+
+ return this;
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public IntegrationLabelValue scale(double scaleFactor) {
+ super.scale(scaleFactor);
+
+ setE((double)(getE() * scaleFactor));
+ setSeff((double)(getSeff() * scaleFactor));
+
+ return this;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public IntegrationLabelValue abs() {
+ super.abs();
+
+ setE(Math.abs(getE()));
+ setSeff(Math.abs(getSeff()));
+ return this;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double max() {
+ double maxValue = super.max();
+
+ maxValue = Math.max(maxValue, getE());
+ maxValue = Math.max(maxValue, getSeff());
+ return maxValue;
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double computeDeltaAdjustment(IntegrationLabelValue value) {
+ EvolvingCrossSpeciesModelLabelValue v = (EvolvingCrossSpeciesModelLabelValue)value;
+ double factor = super.computeDeltaAdjustment(v);
+
+ if ((double)(getE() + v.getE()) < 0.0) {
+ factor = Math.min(factor, (double)(-v.getE() / getE()));
+ }
+ if ((double)(getSeff() + v.getSeff()) < 0.0) {
+ factor = Math.min(factor, (double)(-v.getSeff() / getSeff()));
+ }
+ return factor;
+ } // computeDeltaAdjustment
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void reset() {
+ super.reset();
+
+ setE((double)0.0);
+ setSeff((double)0.0);
+ } // reset
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getPopulationCount() {
+ double count = super.getPopulationCount();
+
+ count += (double)getE();
+ count += (double)getSeff();
+
+ return count;
+ } // getPopulationCount
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean avoidNegative(IntegrationLabelValue value) {
+ EvolvingCrossSpeciesModelLabelValue v = (EvolvingCrossSpeciesModelLabelValue)value;
+ boolean adjusted = super.avoidNegative(v);
+
+ if ((double)(getE() + v.getE()) < 0.0) {
+ adjusted = true;
+ setE(-v.getE());
+ }
+
+ if ((double)(getSeff() + v.getSeff()) < 0.0) {
+ adjusted = true;
+ setSeff(-v.getSeff());
+ }
+
+ return adjusted;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean sameValue(LabelValue value) {
+ EvolvingCrossSpeciesModelLabelValue v = (EvolvingCrossSpeciesModelLabelValue)value;
+ if (!super.sameValue(v)) {
+ return false;
+ }
+
+ if (getE() != v.getE()) {
+ return false;
+ }
+ if (getSeff() != v.getSeff()) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public IntegrationLabelValue copy() {
+ EvolvingCrossSpeciesModelLabelValue copy = EvolvingCrossSpeciesModelFactory.eINSTANCE.createEvolvingCrossSpeciesModelLabelValue();
+ copy.set(this);
+ return copy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void prepareCycle() {
+ super.prepareCycle();
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double eGetDouble(int featureID) {
+ switch (featureID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E:
+ return getE();
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF:
+ return getSeff();
+ }
+
+ return super.eGetDouble(featureID);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSetDouble(int featureID, double newValue) {
+ switch (featureID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E:
+ setE(newValue);
+ return;
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF:
+ setSeff(newValue);
+ return;
+ }
+
+ super.eSetDouble(featureID,newValue);
+ }
+
+
+} //EvolvingCrossSpeciesModelLabelValueImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelPackageImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelPackageImpl.java
new file mode 100644
index 0000000..b80147b
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/impl/EvolvingCrossSpeciesModelPackageImpl.java
@@ -0,0 +1,562 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.stem.core.common.CommonPackage;
+import org.eclipse.stem.core.experiment.ExperimentPackage;
+import org.eclipse.stem.core.graph.GraphPackage;
+import org.eclipse.stem.core.logger.LoggerPackage;
+import org.eclipse.stem.core.model.ModelPackage;
+import org.eclipse.stem.core.modifier.ModifierPackage;
+import org.eclipse.stem.core.predicate.PredicatePackage;
+import org.eclipse.stem.core.scenario.ScenarioPackage;
+import org.eclipse.stem.core.sequencer.SequencerPackage;
+import org.eclipse.stem.core.solver.SolverPackage;
+import org.eclipse.stem.core.trigger.TriggerPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.predicates.diseasepredicates.DiseasepredicatesPackage;
+import org.eclipse.stem.diseasemodels.standard.StandardPackage;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelFactory;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelPackageImpl extends EPackageImpl implements EvolvingCrossSpeciesModelPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingCrossSpeciesModelLabelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingCrossSpeciesModelLabelValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingCrossSpeciesModelEClass = 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.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private EvolvingCrossSpeciesModelPackageImpl() {
+ super(eNS_URI, EvolvingCrossSpeciesModelFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link EvolvingCrossSpeciesModelPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static EvolvingCrossSpeciesModelPackage init() {
+ if (isInited) return (EvolvingCrossSpeciesModelPackage)EPackage.Registry.INSTANCE.getEPackage(EvolvingCrossSpeciesModelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ EvolvingCrossSpeciesModelPackageImpl theEvolvingCrossSpeciesModelPackage = (EvolvingCrossSpeciesModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EvolvingCrossSpeciesModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EvolvingCrossSpeciesModelPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ CommonPackage.eINSTANCE.eClass();
+ ExperimentPackage.eINSTANCE.eClass();
+ GraphPackage.eINSTANCE.eClass();
+ ModelPackage.eINSTANCE.eClass();
+ ModifierPackage.eINSTANCE.eClass();
+ PredicatePackage.eINSTANCE.eClass();
+ ScenarioPackage.eINSTANCE.eClass();
+ SequencerPackage.eINSTANCE.eClass();
+ TriggerPackage.eINSTANCE.eClass();
+ DiseasepredicatesPackage.eINSTANCE.eClass();
+ EvolvingPackage.eINSTANCE.eClass();
+ LoggerPackage.eINSTANCE.eClass();
+ SolverPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theEvolvingCrossSpeciesModelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theEvolvingCrossSpeciesModelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theEvolvingCrossSpeciesModelPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(EvolvingCrossSpeciesModelPackage.eNS_URI, theEvolvingCrossSpeciesModelPackage);
+ return theEvolvingCrossSpeciesModelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingCrossSpeciesModelLabel() {
+ return evolvingCrossSpeciesModelLabelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingCrossSpeciesModelLabelValue() {
+ return evolvingCrossSpeciesModelLabelValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingCrossSpeciesModelLabelValue_E() {
+ return (EAttribute)evolvingCrossSpeciesModelLabelValueEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingCrossSpeciesModelLabelValue_Seff() {
+ return (EAttribute)evolvingCrossSpeciesModelLabelValueEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingCrossSpeciesModel() {
+ return evolvingCrossSpeciesModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingCrossSpeciesModel_OtherToOtherTransmissionRate() {
+ return (EAttribute)evolvingCrossSpeciesModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingCrossSpeciesModel_OtherRecoveryRate() {
+ return (EAttribute)evolvingCrossSpeciesModelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingCrossSpeciesModel_OtherToHostTransmissionRate() {
+ return (EAttribute)evolvingCrossSpeciesModelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingCrossSpeciesModel_TemperatureFactor() {
+ return (EAttribute)evolvingCrossSpeciesModelEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingCrossSpeciesModel_OtherPopulationIdentifier() {
+ return (EAttribute)evolvingCrossSpeciesModelEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingCrossSpeciesModel_OtherImmunityLossRate() {
+ return (EAttribute)evolvingCrossSpeciesModelEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingCrossSpeciesModel_IncubationRate() {
+ return (EAttribute)evolvingCrossSpeciesModelEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelFactory getEvolvingCrossSpeciesModelFactory() {
+ return (EvolvingCrossSpeciesModelFactory)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
+ evolvingCrossSpeciesModelLabelEClass = createEClass(EVOLVING_CROSS_SPECIES_MODEL_LABEL);
+
+ evolvingCrossSpeciesModelLabelValueEClass = createEClass(EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE);
+ createEAttribute(evolvingCrossSpeciesModelLabelValueEClass, EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E);
+ createEAttribute(evolvingCrossSpeciesModelLabelValueEClass, EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF);
+
+ evolvingCrossSpeciesModelEClass = createEClass(EVOLVING_CROSS_SPECIES_MODEL);
+ createEAttribute(evolvingCrossSpeciesModelEClass, EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE);
+ createEAttribute(evolvingCrossSpeciesModelEClass, EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE);
+ createEAttribute(evolvingCrossSpeciesModelEClass, EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE);
+ createEAttribute(evolvingCrossSpeciesModelEClass, EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR);
+ createEAttribute(evolvingCrossSpeciesModelEClass, EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER);
+ createEAttribute(evolvingCrossSpeciesModelEClass, EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE);
+ createEAttribute(evolvingCrossSpeciesModelEClass, EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE);
+ }
+
+ /**
+ * <!-- 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
+ StandardPackage theStandardPackage = (StandardPackage)EPackage.Registry.INSTANCE.getEPackage(StandardPackage.eNS_URI);
+ EvolvingPackage theEvolvingPackage = (EvolvingPackage)EPackage.Registry.INSTANCE.getEPackage(EvolvingPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ evolvingCrossSpeciesModelLabelEClass.getESuperTypes().add(theStandardPackage.getStandardDiseaseModelLabel());
+ evolvingCrossSpeciesModelLabelValueEClass.getESuperTypes().add(theStandardPackage.getSIRLabelValue());
+ evolvingCrossSpeciesModelEClass.getESuperTypes().add(theEvolvingPackage.getEvolvingSIRDiseaseModel());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(evolvingCrossSpeciesModelLabelEClass, EvolvingCrossSpeciesModelLabel.class, "EvolvingCrossSpeciesModelLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(evolvingCrossSpeciesModelLabelValueEClass, EvolvingCrossSpeciesModelLabelValue.class, "EvolvingCrossSpeciesModelLabelValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEvolvingCrossSpeciesModelLabelValue_E(), ecorePackage.getEDouble(), "e", null, 0, 1, EvolvingCrossSpeciesModelLabelValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingCrossSpeciesModelLabelValue_Seff(), ecorePackage.getEDouble(), "seff", null, 0, 1, EvolvingCrossSpeciesModelLabelValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(evolvingCrossSpeciesModelEClass, EvolvingCrossSpeciesModel.class, "EvolvingCrossSpeciesModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEvolvingCrossSpeciesModel_OtherToOtherTransmissionRate(), ecorePackage.getEDouble(), "otherToOtherTransmissionRate", "0.0", 0, 1, EvolvingCrossSpeciesModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingCrossSpeciesModel_OtherRecoveryRate(), ecorePackage.getEDouble(), "otherRecoveryRate", "0.1", 0, 1, EvolvingCrossSpeciesModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingCrossSpeciesModel_OtherToHostTransmissionRate(), ecorePackage.getEDouble(), "otherToHostTransmissionRate", "0.0", 0, 1, EvolvingCrossSpeciesModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingCrossSpeciesModel_TemperatureFactor(), ecorePackage.getEDouble(), "temperatureFactor", "20.0", 0, 1, EvolvingCrossSpeciesModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingCrossSpeciesModel_OtherPopulationIdentifier(), ecorePackage.getEString(), "otherPopulationIdentifier", "avian", 0, 1, EvolvingCrossSpeciesModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingCrossSpeciesModel_OtherImmunityLossRate(), ecorePackage.getEDouble(), "otherImmunityLossRate", "0.001", 0, 1, EvolvingCrossSpeciesModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingCrossSpeciesModel_IncubationRate(), ecorePackage.getEDouble(), "incubationRate", "1.0", 0, 1, EvolvingCrossSpeciesModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/stem/modelgen/generated
+ createGeneratedAnnotations();
+ // http:///org/eclipse/stem/modelgen/metamodel
+ createMetamodelAnnotations();
+ // http:///org/eclipse/stem/modelgen/model/label
+ createLabelAnnotations();
+ // http:///org/eclipse/stem/modelgen/model/labelvalue
+ createLabelvalueAnnotations();
+ // http:///org/eclipse/stem/modelgen/model/adapters
+ createAdaptersAnnotations();
+ // http:///org/eclipse/stem/modelgen/modelparam/messages
+ createMessagesAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/generated</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGeneratedAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/generated";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingCrossSpeciesModelLabelEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingCrossSpeciesModelLabelValueEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModelLabelValue_E(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModelLabelValue_Seff(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingCrossSpeciesModelEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_OtherToOtherTransmissionRate(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_OtherRecoveryRate(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_OtherToHostTransmissionRate(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_TemperatureFactor(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_OtherPopulationIdentifier(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_OtherImmunityLossRate(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_IncubationRate(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/metamodel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createMetamodelAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/metamodel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "uri", "platform:/resource/.stemgenerator/model/evolvingcrossspeciesmodel.metamodel"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/model/label</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createLabelAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/model/label";
+ addAnnotation
+ (evolvingCrossSpeciesModelEClass,
+ source,
+ new String[] {
+ "*", "EvolvingCrossSpeciesModelLabel"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/model/labelvalue</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createLabelvalueAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/model/labelvalue";
+ addAnnotation
+ (evolvingCrossSpeciesModelEClass,
+ source,
+ new String[] {
+ "*", "EvolvingCrossSpeciesModelLabelValue"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/model/adapters</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createAdaptersAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/model/adapters";
+ addAnnotation
+ (evolvingCrossSpeciesModelEClass,
+ source,
+ new String[] {
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/modelparam/messages</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createMessagesAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/modelparam/messages";
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_OtherToOtherTransmissionRate(),
+ source,
+ new String[] {
+ "name", "Other To Other Transmission Rate"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_OtherRecoveryRate(),
+ source,
+ new String[] {
+ "name", "Other Recovery Rate"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_OtherToHostTransmissionRate(),
+ source,
+ new String[] {
+ "name", "Other To Host Transmission Rate"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_TemperatureFactor(),
+ source,
+ new String[] {
+ "name", "Temperature Factor"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_OtherPopulationIdentifier(),
+ source,
+ new String[] {
+ "name", "Other Population Identifier"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_OtherImmunityLossRate(),
+ source,
+ new String[] {
+ "name", "Other Immunity Loss Rate"
+ });
+ addAnnotation
+ (getEvolvingCrossSpeciesModel_IncubationRate(),
+ source,
+ new String[] {
+ "name", "Incubation Rate"
+ });
+ }
+
+} //EvolvingCrossSpeciesModelPackageImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelActionBarContributor.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelActionBarContributor.java
new file mode 100644
index 0000000..e9e80bf
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelActionBarContributor.java
@@ -0,0 +1,423 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.stem.evolvingcrossspeciesmodel.provider.EvolvingCrossSpeciesModelEditPlugin;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the EvolvingCrossSpeciesModel model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelActionBarContributor
+ extends EditingDomainActionBarContributor
+ implements ISelectionChangedListener {
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction showPropertiesViewAction =
+ new Action(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+ @Override
+ public void run() {
+ try {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception) {
+ EvolvingCrossSpeciesModelEditPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction refreshViewerAction =
+ new Action(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+ @Override
+ public boolean isEnabled() {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run() {
+ if (activeEditorPart instanceof IViewerProvider) {
+ Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+ if (viewer != null) {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelActionBarContributor() {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager) {
+ toolBarManager.add(new Separator("evolvingcrossspeciesmodel-settings"));
+ toolBarManager.add(new Separator("evolvingcrossspeciesmodel-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager) {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_EvolvingCrossSpeciesModelEditor_menu"), "org.eclipse.stem.evolvingcrossspeciesmodelMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener
+ (new IMenuListener() {
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null) {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null) {
+ selectionProvider = null;
+ }
+ else {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null) {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void selectionChanged(SelectionChangedEvent event) {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null) {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null) {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null) {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null) {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+ if (actions != null) {
+ for (IAction action : actions) {
+ if (contributionID != null) {
+ manager.insertBefore(contributionID, action);
+ }
+ else {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+ if (actions != null) {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++) {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem) {
+ contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem)contributionItem).getAction();
+ if (actions.contains(action)) {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager) {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete() {
+ return true;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelEditor.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelEditor.java
new file mode 100644
index 0000000..ad8bc8a
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelEditor.java
@@ -0,0 +1,1814 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.stem.core.common.provider.CommonItemProviderAdapterFactory;
+import org.eclipse.stem.core.experiment.provider.ExperimentItemProviderAdapterFactory;
+import org.eclipse.stem.core.graph.provider.GraphItemProviderAdapterFactory;
+import org.eclipse.stem.core.logger.provider.LoggerItemProviderAdapterFactory;
+import org.eclipse.stem.core.model.provider.ModelItemProviderAdapterFactory;
+import org.eclipse.stem.core.modifier.provider.ModifierItemProviderAdapterFactory;
+import org.eclipse.stem.core.predicate.provider.PredicateItemProviderAdapterFactory;
+import org.eclipse.stem.core.scenario.provider.ScenarioItemProviderAdapterFactory;
+import org.eclipse.stem.core.sequencer.provider.SequencerItemProviderAdapterFactory;
+import org.eclipse.stem.core.solver.provider.SolverItemProviderAdapterFactory;
+import org.eclipse.stem.core.trigger.provider.TriggerItemProviderAdapterFactory;
+import org.eclipse.stem.diseasemodels.evolving.provider.EvolvingItemProviderAdapterFactory;
+import org.eclipse.stem.diseasemodels.predicates.diseasepredicates.provider.DiseasepredicatesItemProviderAdapterFactory;
+import org.eclipse.stem.diseasemodels.standard.provider.StandardItemProviderAdapterFactory;
+import org.eclipse.stem.evolvingcrossspeciesmodel.provider.EvolvingCrossSpeciesModelEditPlugin;
+import org.eclipse.stem.evolvingcrossspeciesmodel.provider.EvolvingCrossSpeciesModelItemProviderAdapterFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+
+/**
+ * This is an example of a EvolvingCrossSpeciesModel model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelEditor
+ extends MultiPageEditorPart
+ implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This inverts the roll of parent and child in the content provider and show parents as a tree.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer parentViewer;
+
+ /**
+ * This shows how a tree view works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewer;
+
+ /**
+ * This shows how a list view works.
+ * A list viewer doesn't support icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ListViewer listViewer;
+
+ /**
+ * This shows how a table view works.
+ * A table can be used as a list with icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TableViewer tableViewer;
+
+ /**
+ * This shows how a tree view with columns works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewerWithColumns;
+
+ /**
+ * This keeps track of the active viewer pane, in the book.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewerPane currentViewerPane;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener() {
+ public void partActivated(IWorkbenchPart p) {
+ if (p instanceof ContentOutline) {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+ getActionBarContributor().setActiveEditor(EvolvingCrossSpeciesModelEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+ getActionBarContributor().setActiveEditor(EvolvingCrossSpeciesModelEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == EvolvingCrossSpeciesModelEditor.this) {
+ handleActivate();
+ }
+ }
+ public void partBroughtToTop(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partClosed(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partDeactivated(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partOpened(IWorkbenchPart p) {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter() {
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (notification.getNotifier() instanceof Resource) {
+ switch (notification.getFeatureID(Resource.class)) {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS: {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target) {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target) {
+ basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener() {
+ public void resourceChanged(IResourceChangeEvent event) {
+ IResourceDelta delta = event.getDelta();
+ try {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ public boolean visit(IResourceDelta delta) {
+ if (delta.getResource().getType() == IResource.FILE) {
+ if (delta.getKind() == IResourceDelta.REMOVED ||
+ delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+ Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null) {
+ if (delta.getKind() == IResourceDelta.REMOVED) {
+ removedResources.add(resource);
+ }
+ else if (!savedResources.remove(resource)) {
+ changedResources.add(resource);
+ }
+ }
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources() {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources() {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty()) {
+ getSite().getPage().closeEditor(EvolvingCrossSpeciesModelEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == EvolvingCrossSpeciesModelEditor.this) {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception) {
+ EvolvingCrossSpeciesModelEditPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleActivate() {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null) {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty()) {
+ if (handleDirtyConflict()) {
+ getSite().getPage().closeEditor(EvolvingCrossSpeciesModelEditor.this, false);
+ }
+ else {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty()) {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleChangedResources() {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+ if (isDirty()) {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources) {
+ if (resource.isLoaded()) {
+ resource.unload();
+ try {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception) {
+ if (!resourceToDiagnosticMap.containsKey(resource)) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication() {
+ if (updateProblemIndication) {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "org.eclipse.stem.evolvingcrossspeciesmodel",
+ 0,
+ null,
+ new Object [] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK) {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception) {
+ EvolvingCrossSpeciesModelEditPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ try {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception) {
+ EvolvingCrossSpeciesModelEditPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean handleDirtyConflict() {
+ return
+ MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelEditor() {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void initializeEditingDomain() {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new EvolvingCrossSpeciesModelItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new CommonItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ExperimentItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new GraphItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ModelItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ModifierItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new PredicateItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ScenarioItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new SequencerItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new TriggerItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new DiseasepredicatesItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new EvolvingItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new StandardItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new LoggerItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new SolverItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new EcoreItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener
+ (new CommandStackListener() {
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null) {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed()) {
+ i.remove();
+ }
+ else {
+ propertySheetPage.refresh();
+ }
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action) {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection) {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty()) {
+ Runnable runnable =
+ new Runnable() {
+ public void run() {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null) {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getElements(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getChildren(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object) {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object) {
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewerPane(ViewerPane viewerPane) {
+ if (currentViewerPane != viewerPane) {
+ if (currentViewerPane != null) {
+ currentViewerPane.showFocus(false);
+ }
+ currentViewerPane = viewerPane;
+ }
+ setCurrentViewer(currentViewerPane.getViewer());
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer) {
+ // If it is changing...
+ //
+ if (currentViewer != viewer) {
+ if (selectionChangedListener == null) {
+ // Create the listener on demand.
+ //
+ selectionChangedListener =
+ new ISelectionChangedListener() {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null) {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null) {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Viewer getViewer() {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer) {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu= contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createModel() {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ }
+ catch (Exception e) {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.stem.evolvingcrossspeciesmodel",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object [] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null) {
+ return
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.stem.evolvingcrossspeciesmodel",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception });
+ }
+ else {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void createPages() {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+ // Create a page for the selection tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingCrossSpeciesModelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ selectionViewer = (TreeViewer)viewerPane.getViewer();
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ viewerPane.setTitle(editingDomain.getResourceSet());
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+ }
+
+ // Create a page for the parent tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingCrossSpeciesModelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ parentViewer = (TreeViewer)viewerPane.getViewer();
+ parentViewer.setAutoExpandLevel(30);
+ parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+ parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(parentViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ParentPage_label"));
+ }
+
+ // This is the page for the list viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingCrossSpeciesModelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new ListViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ listViewer = (ListViewer)viewerPane.getViewer();
+ listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(listViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ListPage_label"));
+ }
+
+ // This is the page for the tree viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingCrossSpeciesModelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ treeViewer = (TreeViewer)viewerPane.getViewer();
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(treeViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreePage_label"));
+ }
+
+ // This is the page for the table viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingCrossSpeciesModelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TableViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ tableViewer = (TableViewer)viewerPane.getViewer();
+
+ Table table = tableViewer.getTable();
+ TableLayout layout = new TableLayout();
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(3, 100, true));
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+
+ TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(2, 100, true));
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+
+ tableViewer.setColumnProperties(new String [] {"a", "b"});
+ tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(tableViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TablePage_label"));
+ }
+
+ // This is the page for the table tree viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingCrossSpeciesModelEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+ Tree tree = treeViewerWithColumns.getTree();
+ tree.setLayoutData(new FillLayout());
+ tree.setHeaderVisible(true);
+ tree.setLinesVisible(true);
+
+ TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+ objectColumn.setWidth(250);
+
+ TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+ selfColumn.setWidth(200);
+
+ treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+ treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(treeViewerWithColumns);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+ }
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener
+ (new ControlAdapter() {
+ boolean guard = false;
+ @Override
+ public void controlResized(ControlEvent event) {
+ if (!guard) {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs() {
+ if (getPageCount() <= 1) {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs() {
+ if (getPageCount() > 1) {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex) {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null) {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key) {
+ if (key.equals(IContentOutlinePage.class)) {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class)) {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class)) {
+ return this;
+ }
+ else {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage() {
+ if (contentOutlinePage == null) {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage {
+ @Override
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener
+ (new ISelectionChangedListener() {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage() {
+ PropertySheetPage propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ EvolvingCrossSpeciesModelEditor.this.setSelectionToViewer(selection);
+ EvolvingCrossSpeciesModelEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+ Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+ if (selectedElements.hasNext()) {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ // If it's the selection viewer, then we want it to select the same selection as this selection.
+ //
+ if (currentViewerPane.getViewer() == selectionViewer) {
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext()) {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ else {
+ // Set the input to the widget.
+ //
+ if (currentViewerPane.getViewer().getInput() != selectedElement) {
+ currentViewerPane.getViewer().setInput(selectedElement);
+ currentViewerPane.setTitle(selectedElement);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty() {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor) {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor) {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources()) {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+ try {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp) {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception) {
+ // Something went wrong that shouldn't.
+ //
+ EvolvingCrossSpeciesModelEditPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource) {
+ boolean result = false;
+ try {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null) {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e) {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed() {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSaveAs() {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null) {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null) {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput) {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void gotoMarker(IMarker marker) {
+ List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+ if (!targetObjects.isEmpty()) {
+ setSelectionToViewer(targetObjects);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput) {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus() {
+ if (currentViewerPane != null) {
+ currentViewerPane.setFocus();
+ }
+ else {
+ getControl(getActivePage()).setFocus();
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection() {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection) {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners) {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection) {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+ contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null) {
+ if (selection instanceof IStructuredSelection) {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size()) {
+ case 0: {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1: {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default: {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key) {
+ return EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1) {
+ return EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString(key, new Object [] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager) {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor() {
+ return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars() {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory() {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this) {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ for (PropertySheetPage propertySheetPage : propertySheetPages) {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null) {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView() {
+ return true;
+ }
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelModelWizard.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelModelWizard.java
new file mode 100644
index 0000000..b795c3e
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelModelWizard.java
@@ -0,0 +1,606 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+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.XMLResource;
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelFactory;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage;
+import org.eclipse.stem.evolvingcrossspeciesmodel.provider.EvolvingCrossSpeciesModelEditPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelModelWizard extends Wizard implements INewWizard {
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS =
+ Collections.unmodifiableList(Arrays.asList(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_EvolvingCrossSpeciesModelEditorFilenameExtensions").split("\\s*,\\s*")));
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS =
+ EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_EvolvingCrossSpeciesModelEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingCrossSpeciesModelPackage evolvingCrossSpeciesModelPackage = EvolvingCrossSpeciesModelPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingCrossSpeciesModelFactory evolvingCrossSpeciesModelFactory = evolvingCrossSpeciesModelPackage.getEvolvingCrossSpeciesModelFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingCrossSpeciesModelModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingCrossSpeciesModelModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getImage("full/wizban/NewEvolvingCrossSpeciesModel")));
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getInitialObjectNames() {
+ if (initialObjectNames == null) {
+ initialObjectNames = new ArrayList<String>();
+ for (EClassifier eClassifier : evolvingCrossSpeciesModelPackage.getEClassifiers()) {
+ if (eClassifier instanceof EClass) {
+ EClass eClass = (EClass)eClassifier;
+ if (!eClass.isAbstract()) {
+ initialObjectNames.add(eClass.getName());
+ }
+ }
+ }
+ Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EObject createInitialModel() {
+ EClass eClass = (EClass)evolvingCrossSpeciesModelPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = evolvingCrossSpeciesModelFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean performFinish() {
+ try {
+ // Remember the file.
+ //
+ final IFile modelFile = getModelFile();
+
+ // Do the work within an operation.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ @Override
+ protected void execute(IProgressMonitor progressMonitor) {
+ try {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Get the URI of the model file.
+ //
+ URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null) {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception) {
+ EvolvingCrossSpeciesModelEditPlugin.INSTANCE.log(exception);
+ }
+ finally {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ // Select the new file resource in the current view.
+ //
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ final IWorkbenchPart activePart = page.getActivePart();
+ if (activePart instanceof ISetSelectionTarget) {
+ final ISelection targetSelection = new StructuredSelection(modelFile);
+ getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+ }
+ });
+ }
+
+ // Open an editor on the new file.
+ //
+ try {
+ page.openEditor
+ (new FileEditorInput(modelFile),
+ workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
+ }
+ catch (PartInitException exception) {
+ MessageDialog.openError(workbenchWindow.getShell(), EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+ catch (Exception exception) {
+ EvolvingCrossSpeciesModelEditPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class EvolvingCrossSpeciesModelModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+ super(pageId, selection);
+ }
+
+ /**
+ * The framework calls this to see if the file is correct.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validatePage() {
+ if (super.validatePage()) {
+ String extension = new Path(getFileName()).getFileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+ setErrorMessage(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile() {
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class EvolvingCrossSpeciesModelModelWizardInitialObjectCreationPage extends WizardPage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelModelWizardInitialObjectCreationPage(String pageId) {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE); {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames()) {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings()) {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModifyListener validator =
+ new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validatePage() {
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (visible) {
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.clearSelection();
+ encodingField.setFocus();
+ }
+ else {
+ encodingField.clearSelection();
+ initialObjectField.setFocus();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getInitialObjectName() {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames()) {
+ if (getLabel(name).equals(label)) {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEncoding() {
+ return encodingField.getText();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected String getLabel(String typeName) {
+ try {
+ return EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ }
+ catch(MissingResourceException mre) {
+ EvolvingCrossSpeciesModelEditPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getEncodings() {
+ if (encodings == null) {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void addPages() {
+ // Create a page, set the title, and the initial model file name.
+ //
+ newFileCreationPage = new EvolvingCrossSpeciesModelModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_EvolvingCrossSpeciesModelModelWizard_label"));
+ newFileCreationPage.setDescription(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_EvolvingCrossSpeciesModelModelWizard_description"));
+ newFileCreationPage.setFileName(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_EvolvingCrossSpeciesModelEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+ addPage(newFileCreationPage);
+
+ // Try and get the resource selection to determine a current directory for the file dialog.
+ //
+ if (selection != null && !selection.isEmpty()) {
+ // Get the resource...
+ //
+ Object selectedElement = selection.iterator().next();
+ if (selectedElement instanceof IResource) {
+ // Get the resource parent, if its a file.
+ //
+ IResource selectedResource = (IResource)selectedElement;
+ if (selectedResource.getType() == IResource.FILE) {
+ selectedResource = selectedResource.getParent();
+ }
+
+ // This gives us a directory...
+ //
+ if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+ // Set this for the container.
+ //
+ newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+ // Make up a unique new name here.
+ //
+ String defaultModelBaseFilename = EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_EvolvingCrossSpeciesModelEditorFilenameDefaultBase");
+ String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+ String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+ for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+ modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+ }
+ newFileCreationPage.setFileName(modelFilename);
+ }
+ }
+ }
+ initialObjectCreationPage = new EvolvingCrossSpeciesModelModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_EvolvingCrossSpeciesModelModelWizard_label"));
+ initialObjectCreationPage.setDescription(EvolvingCrossSpeciesModelEditPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the file from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile() {
+ return newFileCreationPage.getModelFile();
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyEditor.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyEditor.java
new file mode 100644
index 0000000..49cd3df
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyEditor.java
@@ -0,0 +1,211 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.presentation;
+
+import java.util.MissingResourceException;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.stem.diseasemodels.evolving.presentation.EvolvingSIRDiseaseModelPropertyEditor;
+import org.eclipse.stem.diseasemodels.evolving.presentation.EvolvingSIRDiseaseModelPropertyEditor.EvolvingSIRDiseaseModelPropertyStringProviderAdapter;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelPropertyEditor extends
+ EvolvingSIRDiseaseModelPropertyEditor {
+ /**
+ * @param parent
+ * @param style
+ * @param model
+ * @param projectValidator
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelPropertyEditor(Composite parent, int style,
+ DiseaseModel model, ModifyListener projectValidator,
+ IProject project) {
+ super(parent, style, model, projectValidator, project);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public void populate(DiseaseModel object) {
+ super.populate(object);
+
+ EvolvingCrossSpeciesModel model = (EvolvingCrossSpeciesModel)object;
+
+ // Set value for Other To Other Transmission Rate (Double)
+ try {
+ Double otherToOtherTransmissionRateValue = Double.parseDouble(
+ map.get(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE).getText());
+ model.setOtherToOtherTransmissionRate(otherToOtherTransmissionRateValue);
+ } catch (NumberFormatException nfe) {
+ // empty
+ }
+ // Set value for Other Recovery Rate (Double)
+ try {
+ Double otherRecoveryRateValue = Double.parseDouble(
+ map.get(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE).getText());
+ model.setOtherRecoveryRate(otherRecoveryRateValue);
+ } catch (NumberFormatException nfe) {
+ // empty
+ }
+ // Set value for Other To Host Transmission Rate (Double)
+ try {
+ Double otherToHostTransmissionRateValue = Double.parseDouble(
+ map.get(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE).getText());
+ model.setOtherToHostTransmissionRate(otherToHostTransmissionRateValue);
+ } catch (NumberFormatException nfe) {
+ // empty
+ }
+ // Set value for Temperature Factor (Double)
+ try {
+ Double temperatureFactorValue = Double.parseDouble(
+ map.get(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR).getText());
+ model.setTemperatureFactor(temperatureFactorValue);
+ } catch (NumberFormatException nfe) {
+ // empty
+ }
+ // Set value for Other Population Identifier (String)
+ String otherPopulationIdentifierValue = map.get(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER).getText();
+ model.setOtherPopulationIdentifier(otherPopulationIdentifierValue);
+ // Set value for Other Immunity Loss Rate (Double)
+ try {
+ Double otherImmunityLossRateValue = Double.parseDouble(
+ map.get(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE).getText());
+ model.setOtherImmunityLossRate(otherImmunityLossRateValue);
+ } catch (NumberFormatException nfe) {
+ // empty
+ }
+ // Set value for Incubation Rate (Double)
+ try {
+ Double incubationRateValue = Double.parseDouble(
+ map.get(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE).getText());
+ model.setIncubationRate(incubationRateValue);
+ } catch (NumberFormatException nfe) {
+ // empty
+ }
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean validate() {
+ boolean valid = super.validate();
+
+ valid = valid && validateFeatureConstraint(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE);
+ valid = valid && validateFeatureConstraint(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE);
+ valid = valid && validateFeatureConstraint(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE);
+ valid = valid && validateFeatureConstraint(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR);
+ valid = valid && validateFeatureConstraint(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER);
+ valid = valid && validateFeatureConstraint(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE);
+ valid = valid && validateFeatureConstraint(EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE);
+
+ return valid;
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingCrossSpeciesModelPropertyStringProviderAdapter
+ extends EvolvingSIRDiseaseModelPropertyStringProviderAdapter {
+ /**
+ * @param descriptor
+ * @return the NLS'd name of the property to display to the user
+ * @generated
+ */
+ public String getPropertyName(IItemPropertyDescriptor descriptor) {
+ try {
+ return EvolvingCrossSpeciesModelWizardMessages
+ .getString(((EStructuralFeature) descriptor
+ .getFeature(null)).getName(), "EvolvingCrossSpeciesModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyName(descriptor);
+ }
+ } // getPropertyName
+
+ /**
+ * @param descriptor
+ * @return the NLS'd tool tip text that describes the property
+ * @generated
+ */
+ public String getPropertyToolTip(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingCrossSpeciesModelWizardMessages.getString(feature
+ .getName() + TT_SUFFIX, "EvolvingCrossSpeciesModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyToolTip(descriptor);
+ }
+ } // getPropertyToolTip
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text that represents the units of the
+ * property
+ * @generated
+ */
+ public String getPropertyUnits(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingCrossSpeciesModelWizardMessages.getString(feature
+ .getName() + UNIT_SUFFIX, "EvolvingCrossSpeciesModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyUnits(descriptor);
+ }
+ } // getPropertyUnits
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text for a missing property error message
+ * @generated
+ */
+ public String getPropertyMissing(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingCrossSpeciesModelWizardMessages.getString(feature
+ .getName() + MISSING_SUFFIX, "EvolvingCrossSpeciesModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyMissing(descriptor);
+ }
+ } // getPropertyMissing
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text for a missing property error message
+ * @generated
+ */
+ public String getPropertyInvalid(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingCrossSpeciesModelWizardMessages.getString(feature
+ .getName() + INVALID_SUFFIX, "EvolvingCrossSpeciesModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyInvalid(descriptor);
+ }
+ } // getPropertyInvalid
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyEditorAdapter.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyEditorAdapter.java
new file mode 100644
index 0000000..4993c93
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyEditorAdapter.java
@@ -0,0 +1,34 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.presentation;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditor;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditorAdapter;
+import org.eclipse.stem.ui.wizards.DiseaseModelPropertyComposite;
+import org.eclipse.swt.events.ModifyListener;
+
+/**
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelPropertyEditorAdapter extends
+ DiseaseModelPropertyEditorAdapter {
+
+ /**
+ * @generated
+ */
+ @Override
+ public DiseaseModelPropertyEditor createDiseaseModelPropertyEditor(
+ DiseaseModelPropertyComposite composite,
+ int style, ModifyListener projectValidator, IProject project) {
+ return new EvolvingCrossSpeciesModelPropertyEditor(
+ composite, style,
+ (DiseaseModel)getTarget(), projectValidator, project);
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyEditorAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyEditorAdapterFactory.java
new file mode 100644
index 0000000..01d7719
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyEditorAdapterFactory.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.presentation;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.stem.evolvingcrossspeciesmodel.util.EvolvingCrossSpeciesModelAdapterFactory;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditorAdapter;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditorAdapterFactory;
+import org.eclipse.ui.IStartup;
+
+/**
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelPropertyEditorAdapterFactory extends
+ EvolvingCrossSpeciesModelAdapterFactory implements IStartup, DiseaseModelPropertyEditorAdapterFactory {
+
+ /**
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelPropertyEditorAdapterFactory() {
+ super();
+ DiseaseModelPropertyEditorAdapterFactory.INSTANCE.addAdapterFactory(this);
+ }
+
+ /**
+ * @generated
+ */
+ public void earlyStartup() {
+ new EvolvingCrossSpeciesModelPropertyStringProviderAdapterFactory();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingCrossSpeciesModelAdapter() {
+ return new EvolvingCrossSpeciesModelPropertyEditorAdapter();
+ }
+
+
+ /**
+ * @generated
+ */
+ public boolean isFactoryForType(Object type) {
+ boolean isType = super.isFactoryForType(type);
+ isType = isType || type == DiseaseModelPropertyEditorAdapter.class;
+ return isType;
+ }
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyStringProviderAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyStringProviderAdapterFactory.java
new file mode 100644
index 0000000..7a57cdd
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelPropertyStringProviderAdapterFactory.java
@@ -0,0 +1,45 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.presentation;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.stem.evolvingcrossspeciesmodel.util.EvolvingCrossSpeciesModelAdapterFactory;
+import org.eclipse.stem.ui.adapters.propertystrings.PropertyStringProvider;
+import org.eclipse.stem.ui.adapters.propertystrings.PropertyStringProviderAdapterFactory;
+
+/**
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelPropertyStringProviderAdapterFactory extends
+ EvolvingCrossSpeciesModelAdapterFactory implements
+ PropertyStringProviderAdapterFactory {
+ /**
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelPropertyStringProviderAdapterFactory() {
+ super();
+ PropertyStringProviderAdapterFactory.INSTANCE.addAdapterFactory(this);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return super.isFactoryForType(type)
+ || type == PropertyStringProvider.class;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingCrossSpeciesModelAdapter() {
+ return new EvolvingCrossSpeciesModelPropertyEditor.EvolvingCrossSpeciesModelPropertyStringProviderAdapter();
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelRelativeValueProviderAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelRelativeValueProviderAdapterFactory.java
new file mode 100644
index 0000000..3d616af
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelRelativeValueProviderAdapterFactory.java
@@ -0,0 +1,273 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.presentation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.ui.provider.PropertySource;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.IntegrationLabelValue;
+import org.eclipse.stem.definitions.adapters.relativevalue.RelativeValueProvider;
+import org.eclipse.stem.definitions.adapters.relativevalue.RelativeValueProviderAdapterFactory;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider;
+import org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider;
+import org.eclipse.stem.evolvingcrossspeciesmodel.provider.EvolvingCrossSpeciesModelItemProviderAdapterFactory;
+import org.eclipse.stem.evolvingcrossspeciesmodel.util.EvolvingCrossSpeciesModelAdapterFactory;
+import org.eclipse.ui.IStartup;
+
+/**
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelRelativeValueProviderAdapterFactory extends
+ EvolvingCrossSpeciesModelAdapterFactory
+ implements IStartup, RelativeValueProviderAdapterFactory {
+
+ /**
+ * This keeps track of the root adapter factory that delegates to this
+ * adapter factory.
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement
+ * {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This factory is used to create item providers for the adapted classes.
+ * The item providers are used as property sources to get the properties
+ * that can have relative values.
+ */
+ private static EvolvingCrossSpeciesModelItemProviderAdapterFactory itemProviderFactory;
+
+
+ /**
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelRelativeValueProviderAdapterFactory() {
+ super();
+ RelativeValueProviderAdapterFactory.INSTANCE.addAdapterFactory(this);
+ }
+
+ /**
+ * @generated
+ */
+ public void earlyStartup() {
+ new EvolvingCrossSpeciesModelRelativeValueProviderAdapterFactory();
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.IChangeNotifier#addListener(org.eclipse.emf.edit.provider.INotifyChangedListener)
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ } // addListener
+
+ /**
+ * @see org.eclipse.emf.edit.provider.IChangeNotifier#fireNotifyChanged(org.eclipse.emf.common.notify.Notification)
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ } // fireNotifyChanged
+
+ /**
+ * @see org.eclipse.emf.edit.provider.IChangeNotifier#removeListener(org.eclipse.emf.edit.provider.INotifyChangedListener)
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ } // removeListener
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ComposeableAdapterFactory#getRootAdapterFactory()
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory
+ .getRootAdapterFactory();
+ } // getRootAdapterFactory
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ComposeableAdapterFactory#setParentAdapterFactory(org.eclipse.emf.edit.provider.ComposedAdapterFactory)
+ * @generated
+ */
+ public void setParentAdapterFactory(
+ ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ } // setParentAdapterFactory
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ *
+ * @see org.eclipse.emf.edit.provider.IDisposable#dispose()
+ * @generated
+ */
+ public void dispose() {
+ // Nothing
+ } // dispose
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return super.isFactoryForType(type)
+ || type == RelativeValueProvider.class;
+ }
+
+ /**
+ * @return the instance of the Relative Value Provider Adapter Factory
+ * @generated
+ */
+ private static RelativeValueProviderAdapterFactory getRelativeValueProviderAdapterFactory() {
+ return RelativeValueProviderAdapterFactory.INSTANCE;
+ }
+
+ /**
+ * @return the instance of the Standard Item Provider factory.
+ * @generated
+ */
+ private static EvolvingCrossSpeciesModelItemProviderAdapterFactory getItemProviderFactory() {
+ if (itemProviderFactory == null) {
+ itemProviderFactory = new EvolvingCrossSpeciesModelItemProviderAdapterFactory();
+ }
+ return itemProviderFactory;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingCrossSpeciesModelLabelAdapter() {
+ return new EvolvingCrossSpeciesModelLabelRelativeValueProviderAdapter();
+ }
+
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingCrossSpeciesModelLabelValueAdapter() {
+ return new EvolvingCrossSpeciesModelLabelValueRelativeValueProviderAdapter();
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingCrossSpeciesModelLabelRelativeValueProviderAdapter
+ extends DiseaseModelLabelRelativeValueProvider {
+
+ /**
+ * @generated
+ */
+ private IntegrationLabelValue getCurrentLabelValue() {
+ return (IntegrationLabelValue)((IntegrationLabel)getTarget()).getCurrentValue();
+ }
+
+ /**
+ * @generated
+ */
+ private RelativeValueProvider getCurrentLabelValueRelativeValueProvider() {
+ return (RelativeValueProvider)getRelativeValueProviderAdapterFactory()
+ .adapt(getCurrentLabelValue(), RelativeValueProvider.class);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getProperties() {
+ return getCurrentLabelValueRelativeValueProvider().getProperties();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getRelativeValue(final EStructuralFeature feature) {
+ return getCurrentLabelValueRelativeValueProvider().getRelativeValue(feature);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getDenominator(final EStructuralFeature feature) {
+ return ((DiseaseModelLabelValue)getCurrentLabelValue()).getPopulationCount();
+ }
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingCrossSpeciesModelLabelValueRelativeValueProviderAdapter
+ extends DiseaseModelLabelValueRelativeValueProvider {
+
+ /**
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getProperties() {
+ final IItemPropertySource propertySource = (IItemPropertySource)getItemProviderFactory()
+ .adapt(getTarget(), PropertySource.class);
+
+ final List<IItemPropertyDescriptor> properties = new ArrayList<IItemPropertyDescriptor>();
+ for (IItemPropertyDescriptor descriptor : propertySource.getPropertyDescriptors(null)) {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ if (!(feature instanceof EReference)) {
+ properties.add(descriptor);
+ }
+ }
+ return properties;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getRelativeValue(final EStructuralFeature feature) {
+ final IntegrationLabelValue labelValue = (IntegrationLabelValue)getTarget();
+ final double stateCount = labelValue.eGetDouble(feature.getFeatureID());
+ final double denominator = getDenominator(feature);
+ if (denominator <= 0.0) {
+ return 0.0;
+ }
+ return stateCount / denominator;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getDenominator(final EStructuralFeature feature) {
+ return ((DiseaseModelLabelValue)getTarget()).getPopulationCount();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelWizardMessages.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelWizardMessages.java
new file mode 100644
index 0000000..f84c66e
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/EvolvingCrossSpeciesModelWizardMessages.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.presentation;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelWizardMessages {
+ /**
+ * @generated
+ */
+ private static final String BUNDLE_NAME = "org.eclipse.stem.evolvingcrossspeciesmodel.presentation.messages"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
+
+ /**
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelWizardMessages() {
+ // empty
+ }
+
+ /**
+ * @param key the key for the message
+ * @return the string that matches the key
+ * @throws MissingResourceException if the key cannot be found
+ * @generated
+ */
+ public static String getString(String key) throws MissingResourceException {
+ return RESOURCE_BUNDLE.getString(key);
+ }
+
+ /**
+ * @param key the key for the message
+ * @param context the class name for which this key resides
+ * @return the string that matches the key
+ * @throws MissingResourceException if the key cannot be found
+ * @generated
+ */
+ public static String getString(String key, String context) throws MissingResourceException {
+ return RESOURCE_BUNDLE.getString(context +"."+ key);
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/messages.properties b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/messages.properties
new file mode 100644
index 0000000..909e6ba
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/presentation/messages.properties
@@ -0,0 +1,47 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+# Messages for EvolvingCrossSpeciesModel
+EvolvingCrossSpeciesModel.otherToOtherTransmissionRate = Other To Other Transmission Rate
+EvolvingCrossSpeciesModel.otherToOtherTransmissionRateTT = Other To Other Transmission Rate
+EvolvingCrossSpeciesModel.otherToOtherTransmissionRateUNIT =
+EvolvingCrossSpeciesModel.otherToOtherTransmissionRateMISSING = A value for Other To Other Transmission Rate is required
+EvolvingCrossSpeciesModel.otherToOtherTransmissionRateINVALID = The value for Other To Other Transmission Rate is invalid
+
+EvolvingCrossSpeciesModel.otherRecoveryRate = Other Recovery Rate
+EvolvingCrossSpeciesModel.otherRecoveryRateTT = Other Recovery Rate
+EvolvingCrossSpeciesModel.otherRecoveryRateUNIT =
+EvolvingCrossSpeciesModel.otherRecoveryRateMISSING = A value for Other Recovery Rate is required
+EvolvingCrossSpeciesModel.otherRecoveryRateINVALID = The value for Other Recovery Rate is invalid
+
+EvolvingCrossSpeciesModel.otherToHostTransmissionRate = Other To Host Transmission Rate
+EvolvingCrossSpeciesModel.otherToHostTransmissionRateTT = Other To Host Transmission Rate
+EvolvingCrossSpeciesModel.otherToHostTransmissionRateUNIT =
+EvolvingCrossSpeciesModel.otherToHostTransmissionRateMISSING = A value for Other To Host Transmission Rate is required
+EvolvingCrossSpeciesModel.otherToHostTransmissionRateINVALID = The value for Other To Host Transmission Rate is invalid
+
+EvolvingCrossSpeciesModel.temperatureFactor = Temperature Factor
+EvolvingCrossSpeciesModel.temperatureFactorTT = Temperature Factor
+EvolvingCrossSpeciesModel.temperatureFactorUNIT =
+EvolvingCrossSpeciesModel.temperatureFactorMISSING = A value for Temperature Factor is required
+EvolvingCrossSpeciesModel.temperatureFactorINVALID = The value for Temperature Factor is invalid
+
+EvolvingCrossSpeciesModel.otherPopulationIdentifier = Other Population Identifier
+EvolvingCrossSpeciesModel.otherPopulationIdentifierTT = Other Population Identifier
+EvolvingCrossSpeciesModel.otherPopulationIdentifierUNIT =
+EvolvingCrossSpeciesModel.otherPopulationIdentifierMISSING = A value for Other Population Identifier is required
+EvolvingCrossSpeciesModel.otherPopulationIdentifierINVALID = The value for Other Population Identifier is invalid
+
+
+EvolvingCrossSpeciesModel.otherImmunityLossRate = Other Immunity Loss Rate
+EvolvingCrossSpeciesModel.otherImmunityLossRateTT = Other Immunity Loss Rate
+EvolvingCrossSpeciesModel.otherImmunityLossRateUNIT =
+EvolvingCrossSpeciesModel.otherImmunityLossRateMISSING = A value for Other Immunity Loss Rate is required
+EvolvingCrossSpeciesModel.otherImmunityLossRateINVALID = The value for Other Immunity Loss Rate is invalid
+EvolvingCrossSpeciesModel.incubationRate = Incubation Rate
+EvolvingCrossSpeciesModel.incubationRateTT = Incubation Rate
+EvolvingCrossSpeciesModel.incubationRateUNIT =
+EvolvingCrossSpeciesModel.incubationRateMISSING = A value for Incubation Rate is required
+EvolvingCrossSpeciesModel.incubationRateINVALID = The value for Incubation Rate is invalid
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelEditPlugin.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelEditPlugin.java
new file mode 100644
index 0000000..4720f69
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelEditPlugin.java
@@ -0,0 +1,107 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
+
+import org.eclipse.stem.core.common.provider.CoreEditPlugin;
+
+import org.eclipse.stem.diseasemodels.evolving.provider.EvolvingEditPlugin;
+
+import org.eclipse.stem.diseasemodels.standard.provider.DiseasemodelsEditPlugin;
+
+/**
+ * This is the central singleton for the EvolvingCrossSpeciesModel editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class EvolvingCrossSpeciesModelEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EvolvingCrossSpeciesModelEditPlugin INSTANCE = new EvolvingCrossSpeciesModelEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelEditPlugin() {
+ super
+ (new ResourceLocator [] {
+ CoreEditPlugin.INSTANCE,
+ DiseasemodelsEditPlugin.INSTANCE,
+ EvolvingEditPlugin.INSTANCE,
+ EcoreEditPlugin.INSTANCE,
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelItemProvider.java
new file mode 100644
index 0000000..89c9253
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelItemProvider.java
@@ -0,0 +1,292 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.stem.diseasemodels.evolving.provider.EvolvingSIRDiseaseModelItemProvider;
+
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelItemProvider
+ extends EvolvingSIRDiseaseModelItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addOtherToOtherTransmissionRatePropertyDescriptor(object);
+ addOtherRecoveryRatePropertyDescriptor(object);
+ addOtherToHostTransmissionRatePropertyDescriptor(object);
+ addTemperatureFactorPropertyDescriptor(object);
+ addOtherPopulationIdentifierPropertyDescriptor(object);
+ addOtherImmunityLossRatePropertyDescriptor(object);
+ addIncubationRatePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Other To Other Transmission Rate feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addOtherToOtherTransmissionRatePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingCrossSpeciesModel_otherToOtherTransmissionRate_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingCrossSpeciesModel_otherToOtherTransmissionRate_feature", "_UI_EvolvingCrossSpeciesModel_type"),
+ EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Other Recovery Rate feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addOtherRecoveryRatePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingCrossSpeciesModel_otherRecoveryRate_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingCrossSpeciesModel_otherRecoveryRate_feature", "_UI_EvolvingCrossSpeciesModel_type"),
+ EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Other To Host Transmission Rate feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addOtherToHostTransmissionRatePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingCrossSpeciesModel_otherToHostTransmissionRate_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingCrossSpeciesModel_otherToHostTransmissionRate_feature", "_UI_EvolvingCrossSpeciesModel_type"),
+ EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Temperature Factor feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTemperatureFactorPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingCrossSpeciesModel_temperatureFactor_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingCrossSpeciesModel_temperatureFactor_feature", "_UI_EvolvingCrossSpeciesModel_type"),
+ EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Other Population Identifier feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addOtherPopulationIdentifierPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingCrossSpeciesModel_otherPopulationIdentifier_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingCrossSpeciesModel_otherPopulationIdentifier_feature", "_UI_EvolvingCrossSpeciesModel_type"),
+ EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Other Immunity Loss Rate feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addOtherImmunityLossRatePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingCrossSpeciesModel_otherImmunityLossRate_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingCrossSpeciesModel_otherImmunityLossRate_feature", "_UI_EvolvingCrossSpeciesModel_type"),
+ EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Incubation Rate feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addIncubationRatePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingCrossSpeciesModel_incubationRate_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingCrossSpeciesModel_incubationRate_feature", "_UI_EvolvingCrossSpeciesModel_type"),
+ EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ return super.getText(object);
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(EvolvingCrossSpeciesModel.class)) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_OTHER_TRANSMISSION_RATE:
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_RECOVERY_RATE:
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_TO_HOST_TRANSMISSION_RATE:
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__TEMPERATURE_FACTOR:
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_POPULATION_IDENTIFIER:
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__OTHER_IMMUNITY_LOSS_RATE:
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL__INCUBATION_RATE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingCrossSpeciesModelEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelItemProviderAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelItemProviderAdapterFactory.java
new file mode 100644
index 0000000..77de58b
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelItemProviderAdapterFactory.java
@@ -0,0 +1,251 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.stem.evolvingcrossspeciesmodel.util.EvolvingCrossSpeciesModelAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelItemProviderAdapterFactory extends EvolvingCrossSpeciesModelAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingCrossSpeciesModelLabelItemProvider evolvingCrossSpeciesModelLabelItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingCrossSpeciesModelLabelAdapter() {
+ if (evolvingCrossSpeciesModelLabelItemProvider == null) {
+ evolvingCrossSpeciesModelLabelItemProvider = new EvolvingCrossSpeciesModelLabelItemProvider(this);
+ }
+
+ return evolvingCrossSpeciesModelLabelItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingCrossSpeciesModelLabelValueItemProvider evolvingCrossSpeciesModelLabelValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingCrossSpeciesModelLabelValueAdapter() {
+ if (evolvingCrossSpeciesModelLabelValueItemProvider == null) {
+ evolvingCrossSpeciesModelLabelValueItemProvider = new EvolvingCrossSpeciesModelLabelValueItemProvider(this);
+ }
+
+ return evolvingCrossSpeciesModelLabelValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingCrossSpeciesModelItemProvider evolvingCrossSpeciesModelItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingCrossSpeciesModelAdapter() {
+ if (evolvingCrossSpeciesModelItemProvider == null) {
+ evolvingCrossSpeciesModelItemProvider = new EvolvingCrossSpeciesModelItemProvider(this);
+ }
+
+ return evolvingCrossSpeciesModelItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose() {
+ if (evolvingCrossSpeciesModelLabelItemProvider != null) evolvingCrossSpeciesModelLabelItemProvider.dispose();
+ if (evolvingCrossSpeciesModelLabelValueItemProvider != null) evolvingCrossSpeciesModelLabelValueItemProvider.dispose();
+ if (evolvingCrossSpeciesModelItemProvider != null) evolvingCrossSpeciesModelItemProvider.dispose();
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelLabelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelLabelItemProvider.java
new file mode 100644
index 0000000..ab85b13
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelLabelItemProvider.java
@@ -0,0 +1,120 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.stem.diseasemodels.standard.provider.StandardDiseaseModelLabelItemProvider;
+
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelLabelItemProvider
+ extends StandardDiseaseModelLabelItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelLabelItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ URI labelValue = ((EvolvingCrossSpeciesModelLabel)object).getURI();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_EvolvingCrossSpeciesModelLabel_type") :
+ getString("_UI_EvolvingCrossSpeciesModelLabel_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingCrossSpeciesModelEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelLabelValueItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelLabelValueItemProvider.java
new file mode 100644
index 0000000..67f1d57
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/provider/EvolvingCrossSpeciesModelLabelValueItemProvider.java
@@ -0,0 +1,173 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.stem.diseasemodels.standard.provider.SIRLabelValueItemProvider;
+
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue;
+import org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelLabelValueItemProvider
+ extends SIRLabelValueItemProvider
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelLabelValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addEPropertyDescriptor(object);
+ addSeffPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the E feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addEPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingCrossSpeciesModelLabelValue_e_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingCrossSpeciesModelLabelValue_e_feature", "_UI_EvolvingCrossSpeciesModelLabelValue_type"),
+ EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Seff feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSeffPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingCrossSpeciesModelLabelValue_seff_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingCrossSpeciesModelLabelValue_seff_feature", "_UI_EvolvingCrossSpeciesModelLabelValue_type"),
+ EvolvingCrossSpeciesModelPackage.Literals.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ EvolvingCrossSpeciesModelLabelValue evolvingCrossSpeciesModelLabelValue = (EvolvingCrossSpeciesModelLabelValue)object;
+ return getString("_UI_EvolvingCrossSpeciesModelLabelValue_type") + " " + evolvingCrossSpeciesModelLabelValue.getPopulationCount();
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(EvolvingCrossSpeciesModelLabelValue.class)) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__E:
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE__SEFF:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingCrossSpeciesModelEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/util/EvolvingCrossSpeciesModelAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/util/EvolvingCrossSpeciesModelAdapterFactory.java
new file mode 100644
index 0000000..cc34cf3
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/util/EvolvingCrossSpeciesModelAdapterFactory.java
@@ -0,0 +1,678 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.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.stem.core.common.Identifiable;
+import org.eclipse.stem.core.common.PrimitiveTypeOperations;
+import org.eclipse.stem.core.common.SanityChecker;
+
+import org.eclipse.stem.core.graph.DynamicLabel;
+import org.eclipse.stem.core.graph.DynamicNodeLabel;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.IntegrationLabelValue;
+import org.eclipse.stem.core.graph.Label;
+import org.eclipse.stem.core.graph.LabelValue;
+import org.eclipse.stem.core.graph.NodeLabel;
+
+import org.eclipse.stem.core.model.Decorator;
+import org.eclipse.stem.core.model.IntegrationDecorator;
+import org.eclipse.stem.core.model.NodeDecorator;
+
+import org.eclipse.stem.core.modifier.Modifiable;
+
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.SI;
+import org.eclipse.stem.diseasemodels.standard.SILabelValue;
+import org.eclipse.stem.diseasemodels.standard.SIRLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue;
+
+import org.eclipse.stem.evolvingcrossspeciesmodel.*;
+
+/**
+ * <!-- 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.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static EvolvingCrossSpeciesModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = EvolvingCrossSpeciesModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingCrossSpeciesModelSwitch<Adapter> modelSwitch =
+ new EvolvingCrossSpeciesModelSwitch<Adapter>() {
+ @Override
+ public Adapter caseEvolvingCrossSpeciesModelLabel(EvolvingCrossSpeciesModelLabel object) {
+ return createEvolvingCrossSpeciesModelLabelAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingCrossSpeciesModelLabelValue(EvolvingCrossSpeciesModelLabelValue object) {
+ return createEvolvingCrossSpeciesModelLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingCrossSpeciesModel(EvolvingCrossSpeciesModel object) {
+ return createEvolvingCrossSpeciesModelAdapter();
+ }
+ @Override
+ public <T> Adapter caseComparable(Comparable<T> object) {
+ return createComparableAdapter();
+ }
+ @Override
+ public Adapter caseSanityChecker(SanityChecker object) {
+ return createSanityCheckerAdapter();
+ }
+ @Override
+ public Adapter caseIdentifiable(Identifiable object) {
+ return createIdentifiableAdapter();
+ }
+ @Override
+ public Adapter caseLabel(Label object) {
+ return createLabelAdapter();
+ }
+ @Override
+ public Adapter caseDynamicLabel(DynamicLabel object) {
+ return createDynamicLabelAdapter();
+ }
+ @Override
+ public Adapter caseNodeLabel(NodeLabel object) {
+ return createNodeLabelAdapter();
+ }
+ @Override
+ public Adapter caseDynamicNodeLabel(DynamicNodeLabel object) {
+ return createDynamicNodeLabelAdapter();
+ }
+ @Override
+ public Adapter caseIntegrationLabel(IntegrationLabel object) {
+ return createIntegrationLabelAdapter();
+ }
+ @Override
+ public Adapter caseDiseaseModelLabel(DiseaseModelLabel object) {
+ return createDiseaseModelLabelAdapter();
+ }
+ @Override
+ public Adapter caseStandardDiseaseModelLabel(StandardDiseaseModelLabel object) {
+ return createStandardDiseaseModelLabelAdapter();
+ }
+ @Override
+ public Adapter caseLabelValue(LabelValue object) {
+ return createLabelValueAdapter();
+ }
+ @Override
+ public Adapter casePrimitiveTypeOperations(PrimitiveTypeOperations object) {
+ return createPrimitiveTypeOperationsAdapter();
+ }
+ @Override
+ public Adapter caseIntegrationLabelValue(IntegrationLabelValue object) {
+ return createIntegrationLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseDiseaseModelLabelValue(DiseaseModelLabelValue object) {
+ return createDiseaseModelLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseStandardDiseaseModelLabelValue(StandardDiseaseModelLabelValue object) {
+ return createStandardDiseaseModelLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseSILabelValue(SILabelValue object) {
+ return createSILabelValueAdapter();
+ }
+ @Override
+ public Adapter caseSIRLabelValue(SIRLabelValue object) {
+ return createSIRLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseDecorator(Decorator object) {
+ return createDecoratorAdapter();
+ }
+ @Override
+ public Adapter caseNodeDecorator(NodeDecorator object) {
+ return createNodeDecoratorAdapter();
+ }
+ @Override
+ public Adapter caseIntegrationDecorator(IntegrationDecorator object) {
+ return createIntegrationDecoratorAdapter();
+ }
+ @Override
+ public Adapter caseModifiable(Modifiable object) {
+ return createModifiableAdapter();
+ }
+ @Override
+ public Adapter caseDiseaseModel(DiseaseModel object) {
+ return createDiseaseModelAdapter();
+ }
+ @Override
+ public Adapter caseStandardDiseaseModel(StandardDiseaseModel object) {
+ return createStandardDiseaseModelAdapter();
+ }
+ @Override
+ public Adapter caseSI(SI object) {
+ return createSIAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingDiseaseModel(EvolvingDiseaseModel object) {
+ return createEvolvingDiseaseModelAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSIDiseaseModel(EvolvingSIDiseaseModel object) {
+ return createEvolvingSIDiseaseModelAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSIRDiseaseModel(EvolvingSIRDiseaseModel object) {
+ return createEvolvingSIRDiseaseModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel <em>Label</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.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabel
+ * @generated
+ */
+ public Adapter createEvolvingCrossSpeciesModelLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue <em>Label Value</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.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelLabelValue
+ * @generated
+ */
+ public Adapter createEvolvingCrossSpeciesModelLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel <em>Evolving Cross Species 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.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModel
+ * @generated
+ */
+ public Adapter createEvolvingCrossSpeciesModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link java.lang.Comparable <em>Comparable</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 java.lang.Comparable
+ * @generated
+ */
+ public Adapter createComparableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.common.SanityChecker <em>Sanity Checker</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.stem.core.common.SanityChecker
+ * @generated
+ */
+ public Adapter createSanityCheckerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.common.Identifiable <em>Identifiable</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.stem.core.common.Identifiable
+ * @generated
+ */
+ public Adapter createIdentifiableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.Label <em>Label</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.stem.core.graph.Label
+ * @generated
+ */
+ public Adapter createLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.DynamicLabel <em>Dynamic Label</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.stem.core.graph.DynamicLabel
+ * @generated
+ */
+ public Adapter createDynamicLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.NodeLabel <em>Node Label</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.stem.core.graph.NodeLabel
+ * @generated
+ */
+ public Adapter createNodeLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.DynamicNodeLabel <em>Dynamic Node Label</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.stem.core.graph.DynamicNodeLabel
+ * @generated
+ */
+ public Adapter createDynamicNodeLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.IntegrationLabel <em>Integration Label</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.stem.core.graph.IntegrationLabel
+ * @generated
+ */
+ public Adapter createIntegrationLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel <em>Disease Model Label</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.stem.diseasemodels.standard.DiseaseModelLabel
+ * @generated
+ */
+ public Adapter createDiseaseModelLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel <em>Disease Model Label</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.stem.diseasemodels.standard.StandardDiseaseModelLabel
+ * @generated
+ */
+ public Adapter createStandardDiseaseModelLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.LabelValue <em>Label Value</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.stem.core.graph.LabelValue
+ * @generated
+ */
+ public Adapter createLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.common.PrimitiveTypeOperations <em>Primitive Type Operations</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.stem.core.common.PrimitiveTypeOperations
+ * @generated
+ */
+ public Adapter createPrimitiveTypeOperationsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.IntegrationLabelValue <em>Integration Label Value</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.stem.core.graph.IntegrationLabelValue
+ * @generated
+ */
+ public Adapter createIntegrationLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue <em>Disease Model Label Value</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.stem.diseasemodels.standard.DiseaseModelLabelValue
+ * @generated
+ */
+ public Adapter createDiseaseModelLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue <em>Disease Model Label Value</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.stem.diseasemodels.standard.StandardDiseaseModelLabelValue
+ * @generated
+ */
+ public Adapter createStandardDiseaseModelLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.SILabelValue <em>SI Label Value</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.stem.diseasemodels.standard.SILabelValue
+ * @generated
+ */
+ public Adapter createSILabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.SIRLabelValue <em>SIR Label Value</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.stem.diseasemodels.standard.SIRLabelValue
+ * @generated
+ */
+ public Adapter createSIRLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.model.Decorator <em>Decorator</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.stem.core.model.Decorator
+ * @generated
+ */
+ public Adapter createDecoratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.model.NodeDecorator <em>Node Decorator</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.stem.core.model.NodeDecorator
+ * @generated
+ */
+ public Adapter createNodeDecoratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.model.IntegrationDecorator <em>Integration Decorator</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.stem.core.model.IntegrationDecorator
+ * @generated
+ */
+ public Adapter createIntegrationDecoratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.modifier.Modifiable <em>Modifiable</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.stem.core.modifier.Modifiable
+ * @generated
+ */
+ public Adapter createModifiableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.DiseaseModel <em>Disease 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.stem.diseasemodels.standard.DiseaseModel
+ * @generated
+ */
+ public Adapter createDiseaseModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.StandardDiseaseModel <em>Disease 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.stem.diseasemodels.standard.StandardDiseaseModel
+ * @generated
+ */
+ public Adapter createStandardDiseaseModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.SI <em>SI</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.stem.diseasemodels.standard.SI
+ * @generated
+ */
+ public Adapter createSIAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel <em>Disease 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.stem.diseasemodels.evolving.EvolvingDiseaseModel
+ * @generated
+ */
+ public Adapter createEvolvingDiseaseModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel <em>SI Disease 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.stem.diseasemodels.evolving.EvolvingSIDiseaseModel
+ * @generated
+ */
+ public Adapter createEvolvingSIDiseaseModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel <em>SIR Disease 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.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel
+ * @generated
+ */
+ public Adapter createEvolvingSIRDiseaseModelAdapter() {
+ 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;
+ }
+
+} //EvolvingCrossSpeciesModelAdapterFactory
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/util/EvolvingCrossSpeciesModelSwitch.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/util/EvolvingCrossSpeciesModelSwitch.java
new file mode 100644
index 0000000..80a95d5
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving.crossspecies/src/org/eclipse/stem/evolvingcrossspeciesmodel/util/EvolvingCrossSpeciesModelSwitch.java
@@ -0,0 +1,624 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.evolvingcrossspeciesmodel.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.stem.core.common.Identifiable;
+import org.eclipse.stem.core.common.PrimitiveTypeOperations;
+import org.eclipse.stem.core.common.SanityChecker;
+
+import org.eclipse.stem.core.graph.DynamicLabel;
+import org.eclipse.stem.core.graph.DynamicNodeLabel;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.IntegrationLabelValue;
+import org.eclipse.stem.core.graph.Label;
+import org.eclipse.stem.core.graph.LabelValue;
+import org.eclipse.stem.core.graph.NodeLabel;
+
+import org.eclipse.stem.core.model.Decorator;
+import org.eclipse.stem.core.model.IntegrationDecorator;
+import org.eclipse.stem.core.model.NodeDecorator;
+
+import org.eclipse.stem.core.modifier.Modifiable;
+
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.SI;
+import org.eclipse.stem.diseasemodels.standard.SILabelValue;
+import org.eclipse.stem.diseasemodels.standard.SIRLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue;
+
+import org.eclipse.stem.evolvingcrossspeciesmodel.*;
+
+/**
+ * <!-- 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.stem.evolvingcrossspeciesmodel.EvolvingCrossSpeciesModelPackage
+ * @generated
+ */
+public class EvolvingCrossSpeciesModelSwitch<T1> extends Switch<T1> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static EvolvingCrossSpeciesModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingCrossSpeciesModelSwitch() {
+ if (modelPackage == null) {
+ modelPackage = EvolvingCrossSpeciesModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T1 doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL: {
+ EvolvingCrossSpeciesModelLabel evolvingCrossSpeciesModelLabel = (EvolvingCrossSpeciesModelLabel)theEObject;
+ T1 result = caseEvolvingCrossSpeciesModelLabel(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = caseStandardDiseaseModelLabel(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = caseDiseaseModelLabel(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = caseIntegrationLabel(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = caseDynamicNodeLabel(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = caseDynamicLabel(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = caseNodeLabel(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = caseLabel(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = caseIdentifiable(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = caseComparable(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = caseSanityChecker(evolvingCrossSpeciesModelLabel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL_LABEL_VALUE: {
+ EvolvingCrossSpeciesModelLabelValue evolvingCrossSpeciesModelLabelValue = (EvolvingCrossSpeciesModelLabelValue)theEObject;
+ T1 result = caseEvolvingCrossSpeciesModelLabelValue(evolvingCrossSpeciesModelLabelValue);
+ if (result == null) result = caseSIRLabelValue(evolvingCrossSpeciesModelLabelValue);
+ if (result == null) result = caseSILabelValue(evolvingCrossSpeciesModelLabelValue);
+ if (result == null) result = caseStandardDiseaseModelLabelValue(evolvingCrossSpeciesModelLabelValue);
+ if (result == null) result = caseDiseaseModelLabelValue(evolvingCrossSpeciesModelLabelValue);
+ if (result == null) result = caseIntegrationLabelValue(evolvingCrossSpeciesModelLabelValue);
+ if (result == null) result = caseLabelValue(evolvingCrossSpeciesModelLabelValue);
+ if (result == null) result = casePrimitiveTypeOperations(evolvingCrossSpeciesModelLabelValue);
+ if (result == null) result = caseSanityChecker(evolvingCrossSpeciesModelLabelValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingCrossSpeciesModelPackage.EVOLVING_CROSS_SPECIES_MODEL: {
+ EvolvingCrossSpeciesModel evolvingCrossSpeciesModel = (EvolvingCrossSpeciesModel)theEObject;
+ T1 result = caseEvolvingCrossSpeciesModel(evolvingCrossSpeciesModel);
+ if (result == null) result = caseEvolvingSIRDiseaseModel(evolvingCrossSpeciesModel);
+ if (result == null) result = caseEvolvingSIDiseaseModel(evolvingCrossSpeciesModel);
+ if (result == null) result = caseSI(evolvingCrossSpeciesModel);
+ if (result == null) result = caseEvolvingDiseaseModel(evolvingCrossSpeciesModel);
+ if (result == null) result = caseStandardDiseaseModel(evolvingCrossSpeciesModel);
+ if (result == null) result = caseDiseaseModel(evolvingCrossSpeciesModel);
+ if (result == null) result = caseIntegrationDecorator(evolvingCrossSpeciesModel);
+ if (result == null) result = caseModifiable(evolvingCrossSpeciesModel);
+ if (result == null) result = caseNodeDecorator(evolvingCrossSpeciesModel);
+ if (result == null) result = caseDecorator(evolvingCrossSpeciesModel);
+ if (result == null) result = caseIdentifiable(evolvingCrossSpeciesModel);
+ if (result == null) result = caseComparable(evolvingCrossSpeciesModel);
+ if (result == null) result = caseSanityChecker(evolvingCrossSpeciesModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingCrossSpeciesModelLabel(EvolvingCrossSpeciesModelLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingCrossSpeciesModelLabelValue(EvolvingCrossSpeciesModelLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Evolving Cross Species Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Evolving Cross Species Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingCrossSpeciesModel(EvolvingCrossSpeciesModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Comparable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Comparable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public <T> T1 caseComparable(Comparable<T> object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sanity Checker</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sanity Checker</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseSanityChecker(SanityChecker object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Identifiable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Identifiable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseIdentifiable(Identifiable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseLabel(Label object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Dynamic Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Dynamic Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDynamicLabel(DynamicLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Node Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Node Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseNodeLabel(NodeLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Dynamic Node Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Dynamic Node Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDynamicNodeLabel(DynamicNodeLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Integration Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Integration Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseIntegrationLabel(IntegrationLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDiseaseModelLabel(DiseaseModelLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseStandardDiseaseModelLabel(StandardDiseaseModelLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseLabelValue(LabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Primitive Type Operations</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Primitive Type Operations</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 casePrimitiveTypeOperations(PrimitiveTypeOperations object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Integration Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Integration Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseIntegrationLabelValue(IntegrationLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDiseaseModelLabelValue(DiseaseModelLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseStandardDiseaseModelLabelValue(StandardDiseaseModelLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SI Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SI Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseSILabelValue(SILabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SIR Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SIR Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseSIRLabelValue(SIRLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Decorator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Decorator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDecorator(Decorator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Node Decorator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Node Decorator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseNodeDecorator(NodeDecorator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Integration Decorator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Integration Decorator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseIntegrationDecorator(IntegrationDecorator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Modifiable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Modifiable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseModifiable(Modifiable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDiseaseModel(DiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseStandardDiseaseModel(StandardDiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SI</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SI</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseSI(SI object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingDiseaseModel(EvolvingDiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SI Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SI Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSIDiseaseModel(EvolvingSIDiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SIR Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SIR Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSIRDiseaseModel(EvolvingSIRDiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T1 defaultCase(EObject object) {
+ return null;
+ }
+
+} //EvolvingCrossSpeciesModelSwitch
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/.classpath b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/.classpath
new file mode 100644
index 0000000..22f3064
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/.project b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/.project
new file mode 100644
index 0000000..6ab1b5d
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.stem.diseasemodels.evolving</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.stem.model.builder.MetamodelBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.stem.model.common.ModelProjectNature</nature>
+ </natures>
+</projectDescription>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/META-INF/MANIFEST.MF b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..a0512d8
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/META-INF/MANIFEST.MF
@@ -0,0 +1,32 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.stem.diseasemodels.evolving;singleton:=true
+Bundle-Version: 3.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.stem.diseasemodels.evolving.provider.EvolvingEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.stem.diseasemodels.evolving,
+ org.eclipse.stem.diseasemodels.evolving.impl,
+ org.eclipse.stem.diseasemodels.evolving.presentation,
+ org.eclipse.stem.diseasemodels.evolving.provider,
+ org.eclipse.stem.diseasemodels.evolving.util
+Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.stem.diseasemodels;visibility:=reexport,
+ org.eclipse.stem.populationmodels;visibility:=reexport,
+ org.eclipse.stem.definitions;visibility:=reexport,
+ org.eclipse.stem.interventions,
+ org.eclipse.core.runtime,
+ org.eclipse.stem.ui.diseasemodels;visibility:=reexport,
+ org.eclipse.stem.ui;visibility:=reexport,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.emf.ecore.edit;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.ecore.editor;visibility:=reexport,
+ org.eclipse.stem.core;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/build.properties b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/build.properties
new file mode 100644
index 0000000..08f0e47
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/build.properties
@@ -0,0 +1,15 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ icons/,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingDiseaseTransformer.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingDiseaseTransformer.gif
new file mode 100644
index 0000000..c4fb30e
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingDiseaseTransformer.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingModelFile.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingModelFile.gif
new file mode 100644
index 0000000..b251792
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingModelFile.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSEIRDiseaseModel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSEIRDiseaseModel.gif
new file mode 100644
index 0000000..4e404e4
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSEIRDiseaseModel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSEIRDiseaseModelLabel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSEIRDiseaseModelLabel.gif
new file mode 100644
index 0000000..db7414e
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSEIRDiseaseModelLabel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSEIRDiseaseModelLabelValue.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSEIRDiseaseModelLabelValue.gif
new file mode 100644
index 0000000..c4fb30e
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSEIRDiseaseModelLabelValue.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIDiseaseModel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIDiseaseModel.gif
new file mode 100644
index 0000000..4e404e4
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIDiseaseModel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIDiseaseModelLabel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIDiseaseModelLabel.gif
new file mode 100644
index 0000000..45731fe
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIDiseaseModelLabel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIDiseaseModelLabelValue.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIDiseaseModelLabelValue.gif
new file mode 100644
index 0000000..1e5345f
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIDiseaseModelLabelValue.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIRDiseaseModel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIRDiseaseModel.gif
new file mode 100644
index 0000000..4e404e4
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIRDiseaseModel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIRDiseaseModelLabel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIRDiseaseModelLabel.gif
new file mode 100644
index 0000000..c00aedf
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIRDiseaseModelLabel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIRDiseaseModelLabelValue.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIRDiseaseModelLabelValue.gif
new file mode 100644
index 0000000..98b351f
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/obj16/EvolvingSIRDiseaseModelLabelValue.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/wizban/NewEvolving.gif b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/wizban/NewEvolving.gif
new file mode 100644
index 0000000..97fd1e1
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/icons/full/wizban/NewEvolving.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/.evolving.vmm b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/.evolving.vmm
new file mode 100644
index 0000000..6c5c1aa
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/.evolving.vmm
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.stem.model.vmm:CanvasPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:org.eclipse.stem.model.vmm="http:///org/eclipse/stem/model/vmm.ecore" metamodel="evolving.metamodel#/">
+ <modelElements model="evolving.metamodel#//@models.0">
+ <compartmentElements x="5" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.0/@compartments.0"/>
+ <compartmentElements x="110" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.0"/>
+ <compartmentElements x="215" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.1"/>
+ <compartmentElements x="320" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.2"/>
+ <compartmentElements x="425" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.2/@compartments.0"/>
+ </modelElements>
+ <modelElements model="evolving.metamodel#//@models.1">
+ <compartmentElements x="5" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.0/@compartments.0"/>
+ <compartmentElements x="110" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.0"/>
+ <compartmentElements x="215" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.1"/>
+ <compartmentElements x="320" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.2"/>
+ <compartmentElements x="425" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.2/@compartments.0"/>
+ <compartmentElements x="530" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.3/@compartments.0"/>
+ </modelElements>
+ <modelElements model="evolving.metamodel#//@models.2">
+ <compartmentElements x="5" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.0/@compartments.0"/>
+ <compartmentElements x="110" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.0"/>
+ <compartmentElements x="215" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.1"/>
+ <compartmentElements x="320" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.4/@compartments.2"/>
+ <compartmentElements x="425" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.2/@compartments.0"/>
+ <compartmentElements x="530" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.3/@compartments.0"/>
+ <compartmentElements x="635" y="5" width="75" height="75" compartment="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.1/@compartments.0"/>
+ </modelElements>
+</org.eclipse.stem.model.vmm:CanvasPackage>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/evolving.ecore b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/evolving.ecore
new file mode 100644
index 0000000..f4fdf4d
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/evolving.ecore
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="evolving" nsURI="http:///org/eclipse/stem/diseasemodels/evolving/evolving.ecore"
+ nsPrefix="org.eclipse.stem.diseasemodels.evolving">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/metamodel">
+ <details key="uri" value="platform:/resource/org.eclipse.stem.diseasemodels.evolving/model/evolving.metamodel"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EDataType" name="BooleanArray" instanceClassName="boolean[]"/>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingDiseaseTransformer" eSuperTypes="platform:/plugin/org.eclipse.stem.core/model/model.ecore#//TransformationDecorator">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="baseDisease" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//DiseaseModel"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="evolvedDiseases" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//DiseaseModel"
+ transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="evolutionCount" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="evolutionCountHardLimit"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="256"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stopAllEvolution" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ transient="true" defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingDiseaseModel" abstract="true"
+ interface="true">
+ <eOperations name="evolve" eType="#//EvolvingDiseaseModel">
+ <eParameters name="label" eType="ecore:EClass platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//DiseaseModelLabel"/>
+ </eOperations>
+ <eOperations name="calculateEvolvedInitialState"/>
+ <eOperations name="getGeneticDistance" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble">
+ <eParameters name="otherDiseaseStrain" eType="#//EvolvingDiseaseModel"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentDisease" eType="#//EvolvingDiseaseModel"
+ transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformer" eType="#//EvolvingDiseaseTransformer"
+ transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="evolvedAt" eType="ecore:EClass platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//DiseaseModelLabel"
+ transient="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="genome" eType="#//BooleanArray"
+ transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="evolutionCount" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ transient="true" defaultValueLiteral="0"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingSIDiseaseModelLabel" eSuperTypes="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//StandardDiseaseModelLabel">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingSIDiseaseModelLabelValue" eSuperTypes="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//SILabelValue">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingSIDiseaseModel" eSuperTypes="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//SI #//EvolvingDiseaseModel">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/label">
+ <details key="*" value="EvolvingSIDiseaseModelLabel"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/labelvalue">
+ <details key="*" value="EvolvingSIDiseaseModelLabelValue"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/adapters">
+ <details key="propertyEditorSuperClass" value="org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditor"/>
+ <details key="stringProviderSuperClass" value="org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter"/>
+ <details key="labelRelativeValueProviderSuperClass" value="org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider"/>
+ <details key="labelValueRelativeValueProviderSuperClass" value="org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="caseMutationRate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValueLiteral="0.00001"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="genomeLength" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="5"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="geneticDistNonlinExponent"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" defaultValueLiteral="1.0"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingSIRDiseaseModelLabel" eSuperTypes="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//StandardDiseaseModelLabel">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingSIRDiseaseModelLabelValue" eSuperTypes="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//SIRLabelValue">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingSIRDiseaseModel" eSuperTypes="#//EvolvingSIDiseaseModel">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/label">
+ <details key="*" value="EvolvingSIRDiseaseModelLabel"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/labelvalue">
+ <details key="*" value="EvolvingSIRDiseaseModelLabelValue"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/adapters">
+ <details key="propertyEditorSuperClass" value="org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditor"/>
+ <details key="stringProviderSuperClass" value="org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter"/>
+ <details key="labelRelativeValueProviderSuperClass" value="org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider"/>
+ <details key="labelValueRelativeValueProviderSuperClass" value="org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="immunityLossRate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValueLiteral="0.0">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/constraints">
+ <details key="minValue" value="0.0"/>
+ <details key="maxValue" value="1.0"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/messages">
+ <details key="name" value="Immunity Loss Rate"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="crossImmunityRate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValueLiteral="0.75"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingSEIRDiseaseModelLabel" eSuperTypes="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//StandardDiseaseModelLabel">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingSEIRDiseaseModelLabelValue"
+ eSuperTypes="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.ecore#//SEIRLabelValue">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EvolvingSEIRDiseaseModel" eSuperTypes="#//EvolvingSIRDiseaseModel">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/label">
+ <details key="*" value="EvolvingSEIRDiseaseModelLabel"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/labelvalue">
+ <details key="*" value="EvolvingSEIRDiseaseModelLabelValue"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/model/adapters">
+ <details key="propertyEditorSuperClass" value="org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditor"/>
+ <details key="stringProviderSuperClass" value="org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter"/>
+ <details key="labelRelativeValueProviderSuperClass" value="org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider"/>
+ <details key="labelValueRelativeValueProviderSuperClass" value="org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incubationRate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValueLiteral="0.0">
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/constraints">
+ <details key="minValue" value="0.0"/>
+ <details key="maxValue" value="1.0"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/modelparam/messages">
+ <details key="name" value="Incubation Rate"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/stem/modelgen/generated">
+ <details key="version" value="1.0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/evolving.genmodel b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/evolving.genmodel
new file mode 100644
index 0000000..6792c7a
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/evolving.genmodel
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.stem.diseasemodels.evolving/src" editDirectory="/org.eclipse.stem.diseasemodels.evolving/src"
+ editorDirectory="/org.eclipse.stem.diseasemodels.evolving/src" modelPluginID="org.eclipse.stem.diseasemodels.evolving"
+ templateDirectory="platform:/plugin/org.eclipse.stem.model.codegen/templates"
+ dynamicTemplates="true" forceOverwrite="true" modelName="Evolving" importerID="org.eclipse.emf.importer.ecore"
+ suppressNotification="true" complianceLevel="6.0" publicConstructors="true" editPluginID="org.eclipse.stem.diseasemodels.evolving"
+ editorPluginID="org.eclipse.stem.diseasemodels.evolving" usedGenPackages="platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//common platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//graph platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//model platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//modifier platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//scenario platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//sequencer platform:/plugin/org.eclipse.stem.diseasemodels/model/diseasemodels.genmodel#//standard platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//logger platform:/plugin/org.eclipse.stem.core/model/core.genmodel#//solver platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.stem.populationmodels/model/standard.genmodel#//standard platform:/plugin/org.eclipse.stem.definitions/model/definitions.genmodel#//labels">
+ <foreignModel>evolving.ecore</foreignModel>
+ <templatePluginVariables>STEM_CODEGEN=org.eclipse.stem.model.codegen</templatePluginVariables>
+ <templatePluginVariables>STEM_METAMODEL=org.eclipse.stem.model</templatePluginVariables>
+ <genPackages prefix="Evolving" basePackage="org.eclipse.stem.diseasemodels" disposableProviderFactory="true"
+ ecorePackage="evolving.ecore#/">
+ <genDataTypes ecoreDataType="evolving.ecore#//BooleanArray"/>
+ <genClasses ecoreClass="evolving.ecore#//EvolvingDiseaseTransformer">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference evolving.ecore#//EvolvingDiseaseTransformer/baseDisease"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference evolving.ecore#//EvolvingDiseaseTransformer/evolvedDiseases"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingDiseaseTransformer/evolutionCount"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingDiseaseTransformer/evolutionCountHardLimit"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingDiseaseTransformer/stopAllEvolution"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="evolving.ecore#//EvolvingDiseaseModel">
+ <genFeatures property="None" notify="false" createChild="false" propertySortChoices="true"
+ ecoreFeature="ecore:EReference evolving.ecore#//EvolvingDiseaseModel/parentDisease"/>
+ <genFeatures property="None" notify="false" createChild="false" propertySortChoices="true"
+ ecoreFeature="ecore:EReference evolving.ecore#//EvolvingDiseaseModel/transformer"/>
+ <genFeatures property="None" notify="false" createChild="false" propertySortChoices="true"
+ ecoreFeature="ecore:EReference evolving.ecore#//EvolvingDiseaseModel/evolvedAt"/>
+ <genFeatures property="None" createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingDiseaseModel/genome"/>
+ <genFeatures property="None" createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingDiseaseModel/evolutionCount"/>
+ <genOperations ecoreOperation="evolving.ecore#//EvolvingDiseaseModel/evolve">
+ <genParameters ecoreParameter="evolving.ecore#//EvolvingDiseaseModel/evolve/label"/>
+ </genOperations>
+ <genOperations ecoreOperation="evolving.ecore#//EvolvingDiseaseModel/calculateEvolvedInitialState"/>
+ <genOperations ecoreOperation="evolving.ecore#//EvolvingDiseaseModel/getGeneticDistance">
+ <genParameters ecoreParameter="evolving.ecore#//EvolvingDiseaseModel/getGeneticDistance/otherDiseaseStrain"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="evolving.ecore#//EvolvingSIDiseaseModelLabel"/>
+ <genClasses ecoreClass="evolving.ecore#//EvolvingSIDiseaseModelLabelValue"/>
+ <genClasses image="false" ecoreClass="evolving.ecore#//EvolvingSIDiseaseModel">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingSIDiseaseModel/caseMutationRate"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingSIDiseaseModel/genomeLength"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingSIDiseaseModel/geneticDistNonlinExponent"/>
+ </genClasses>
+ <genClasses ecoreClass="evolving.ecore#//EvolvingSIRDiseaseModelLabel"/>
+ <genClasses ecoreClass="evolving.ecore#//EvolvingSIRDiseaseModelLabelValue"/>
+ <genClasses image="false" ecoreClass="evolving.ecore#//EvolvingSIRDiseaseModel">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingSIRDiseaseModel/immunityLossRate"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingSIRDiseaseModel/crossImmunityRate"/>
+ </genClasses>
+ <genClasses ecoreClass="evolving.ecore#//EvolvingSEIRDiseaseModelLabel"/>
+ <genClasses ecoreClass="evolving.ecore#//EvolvingSEIRDiseaseModelLabelValue"/>
+ <genClasses image="false" ecoreClass="evolving.ecore#//EvolvingSEIRDiseaseModel">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute evolving.ecore#//EvolvingSEIRDiseaseModel/incubationRate"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/evolving.metamodel b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/evolving.metamodel
new file mode 100644
index 0000000..6e60acb
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/model/evolving.metamodel
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<org.eclipse.stem.model:Package xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:org.eclipse.stem.model="http:///org/eclipse/stem/model/metamodel.ecore"
+ packagePrefix="org.eclipse.stem.diseasemodels" name="Evolving">
+ <models name="EvolvingSIDiseaseModel" class="evolving.ecore#//EvolvingSIDiseaseModel"
+ parentModel="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@models.2"
+ compartments="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.2"/>
+ <models name="EvolvingSIRDiseaseModel" class="evolving.ecore#//EvolvingSIRDiseaseModel"
+ parentModel="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@models.2"
+ compartments="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.3">
+ <parameters name="immunityLossRate" dataType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValue="0.0" displayName="Immunity Loss Rate" unit="" helpMessage=""
+ invalidMessage="" missingMessage="">
+ <constraints name="minValue" constraint="0.0"/>
+ <constraints name="maxValue" constraint="1.0"/>
+ </parameters>
+ </models>
+ <models name="EvolvingSEIRDiseaseModel" class="evolving.ecore#//EvolvingSEIRDiseaseModel"
+ parentModel="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@models.3"
+ compartments="platform:/plugin/org.eclipse.stem.diseasemodels/model/standard.metamodel#//@compartmentGroups.1">
+ <parameters name="incubationRate" dataType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
+ defaultValue="0.0" displayName="Incubation Rate" unit="" helpMessage="" invalidMessage=""
+ missingMessage="">
+ <constraints name="minValue" constraint="0.0"/>
+ <constraints name="maxValue" constraint="1.0"/>
+ </parameters>
+ </models>
+</org.eclipse.stem.model:Package>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/plugin.properties b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/plugin.properties
new file mode 100644
index 0000000..b1367b4
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/plugin.properties
@@ -0,0 +1,82 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = Evolving Disease Models
+providerName = Eclipse Foundation
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+_UI_PropertyDescriptor_description = The {0} of the {1}
+_UI_EvolvingSIDiseaseModelLabel_type = Evolving SI Disease Model Label
+_UI_EvolvingSIDiseaseModelLabelValue_type = Evolving SI Disease Model Label Value
+_UI_EvolvingSIDiseaseModel_type = Evolving SI Disease Model
+_UI_Unknown_type = Object
+_UI_Unknown_datatype= Value
+_UI_Unknown_feature = Unspecified
+_UI_EvolvingEditor_menu = &Evolving Editor
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+_UI_OpenEditorError_label = Open Editor
+_UI_Wizard_category = Example EMF Model Creation Wizards
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+_UI_EvolvingModelWizard_label = Evolving Model
+_UI_EvolvingModelWizard_description = Create a new Evolving model
+_UI_EvolvingEditor_label = Evolving Model Editor
+_UI_EvolvingEditorFilenameDefaultBase = My
+_UI_EvolvingEditorFilenameExtensions = evolving
+_UI_Wizard_label = New
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+_UI_EvolvingSIRDiseaseModelLabel_type = Evolving SIR Disease Model Label
+_UI_EvolvingSIRDiseaseModelLabelValue_type = Evolving SIR Disease Model Label Value
+_UI_EvolvingSIRDiseaseModel_type = Evolving SIR Disease Model
+_UI_EvolvingSIRDiseaseModel_immunityLossRate_feature = Immunity Loss Rate
+_UI_EvolvingSEIRDiseaseModelLabel_type = Evolving SEIR Disease Model Label
+_UI_EvolvingSEIRDiseaseModelLabelValue_type = Evolving SEIR Disease Model Label Value
+_UI_EvolvingSEIRDiseaseModel_type = Evolving SEIR Disease Model
+_UI_EvolvingSEIRDiseaseModel_incubationRate_feature = Incubation Rate
+_UI_EvolvingDiseaseTransformer_type = Disease Transformer
+_UI_EvolvingDiseaseModel_type = Disease Model
+_UI_EvolvingDiseaseTransformer_baseDisease_feature = Base Disease
+_UI_EvolvingDiseaseTransformer_evolvedDiseases_feature = Evolved Diseases
+_UI_EvolvingDiseaseTransformer_evolutionCount_feature = Evolution Count
+_UI_EvolvingDiseaseTransformer_evolutionCountHardLimit_feature = Evolution Count Hard Limit
+_UI_EvolvingDiseaseTransformer_stopAllEvolution_feature = Stop All Evolution
+_UI_EvolvingDiseaseModel_parentDisease_feature = Parent Disease
+_UI_EvolvingDiseaseModel_transformer_feature = Transformer
+_UI_EvolvingDiseaseModel_evolvedAt_feature = Evolved At
+_UI_EvolvingDiseaseModel_evolutionCount_feature = Evolution Count
+_UI_EvolvingDiseaseModel_crossImmunityRate_feature = Cross Immunity Rate
+_UI_EvolvingDiseaseModel_caseMutationRate_feature = Case Mutation Rate
+_UI_EvolvingDiseaseModel_genomeLength_feature = Genome Length
+_UI_EvolvingDiseaseModel_geneticDistNonlinExponent_feature = Genetic Distance Non-Linear Exponent
+_UI_EvolvingDiseaseModel_genome_feature = Genome
+_UI_EvolvingSIDiseaseModel_caseMutationRate_feature = Case Mutation Rate
+_UI_EvolvingSIDiseaseModel_genomeLength_feature = Genome Length
+_UI_EvolvingSIDiseaseModel_geneticDistNonlinExponent_feature = Genetic Dist Nonlin Exponent
+_UI_EvolvingSIRDiseaseModel_crossImmunityRate_feature = Cross Immunity Rate
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/plugin.xml b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/plugin.xml
new file mode 100644
index 0000000..e8b1ba5
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/plugin.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.stem.model.metamodel">
+ <metamodel
+ path="model/evolving.metamodel">
+ </metamodel>
+ </extension>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <factory
+ uri="http:///org/eclipse/stem/diseasemodels/evolving/evolving.ecore"
+ class="org.eclipse.stem.diseasemodels.evolving.provider.EvolvingItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http:///org/eclipse/stem/diseasemodels/evolving/evolving.ecore"
+ class="org.eclipse.stem.diseasemodels.evolving.EvolvingPackage"
+ genModel = "model/evolving.genmodel" />
+ </extension>
+
+ <extension point="org.eclipse.ui.newWizards">
+ <category
+ id="org.eclipse.emf.ecore.Wizard.category.ID"
+ name="%_UI_Wizard_category"/>
+ <wizard
+ id="org.eclipse.stem.diseasemodels.evolving.presentation.EvolvingModelWizardID"
+ name="%_UI_EvolvingModelWizard_label"
+ class="org.eclipse.stem.diseasemodels.evolving.presentation.EvolvingModelWizard"
+ category="org.eclipse.emf.ecore.Wizard.category.ID"
+ icon="icons/full/obj16/EvolvingModelFile.gif">
+ <description>%_UI_EvolvingModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <editor
+ id="org.eclipse.stem.diseasemodels.evolving.presentation.EvolvingEditorID"
+ name="%_UI_EvolvingEditor_label"
+ icon="icons/full/obj16/EvolvingModelFile.gif"
+ extensions="evolving"
+ class="org.eclipse.stem.diseasemodels.evolving.presentation.EvolvingEditor"
+ contributorClass="org.eclipse.stem.diseasemodels.evolving.presentation.EvolvingActionBarContributor">
+ </editor>
+ </extension>
+
+ <extension point="org.eclipse.stem.diseasemodels.diseasemodel">
+ <classdef class="org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl"></classdef>
+ <dublin_core
+ creator=""
+ description=""
+ identifier=""
+ source=""
+ title="Evolving SI Disease Model"
+ license=""
+ publisher="">
+ </dublin_core>
+ </extension>
+
+ <extension point="org.eclipse.stem.diseasemodels.diseasemodel">
+ <classdef class="org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelImpl"></classdef>
+ <dublin_core
+ creator=""
+ description=""
+ identifier=""
+ source=""
+ title="Evolving SIR Disease Model"
+ license=""
+ publisher="">
+ </dublin_core>
+ </extension>
+
+ <extension point="org.eclipse.stem.diseasemodels.diseasemodel">
+ <classdef class="org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelImpl"></classdef>
+ <dublin_core
+ creator=""
+ description=""
+ identifier=""
+ source=""
+ title="Evolving SEIR Disease Model"
+ license=""
+ publisher="">
+ </dublin_core>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.startup">
+ <startup
+ class="org.eclipse.stem.diseasemodels.evolving.presentation.EvolvingPropertyEditorAdapterFactory">
+ </startup>
+ <startup
+ class="org.eclipse.stem.diseasemodels.evolving.presentation.EvolvingRelativeValueProviderAdapterFactory">
+ </startup>
+ </extension>
+
+
+</plugin>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingDiseaseModel.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingDiseaseModel.java
new file mode 100644
index 0000000..80e3da9
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingDiseaseModel.java
@@ -0,0 +1,184 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Disease Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getParentDisease <em>Parent Disease</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getTransformer <em>Transformer</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getEvolvedAt <em>Evolved At</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getGenome <em>Genome</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getEvolutionCount <em>Evolution Count</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseModel()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface EvolvingDiseaseModel extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Parent Disease</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parent Disease</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parent Disease</em>' reference.
+ * @see #setParentDisease(EvolvingDiseaseModel)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseModel_ParentDisease()
+ * @model transient="true"
+ * @generated
+ */
+ EvolvingDiseaseModel getParentDisease();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getParentDisease <em>Parent Disease</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parent Disease</em>' reference.
+ * @see #getParentDisease()
+ * @generated
+ */
+ void setParentDisease(EvolvingDiseaseModel value);
+
+ /**
+ * Returns the value of the '<em><b>Transformer</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transformer</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transformer</em>' reference.
+ * @see #setTransformer(EvolvingDiseaseTransformer)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseModel_Transformer()
+ * @model transient="true"
+ * @generated
+ */
+ EvolvingDiseaseTransformer getTransformer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getTransformer <em>Transformer</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Transformer</em>' reference.
+ * @see #getTransformer()
+ * @generated
+ */
+ void setTransformer(EvolvingDiseaseTransformer value);
+
+ /**
+ * Returns the value of the '<em><b>Evolved At</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Evolved At</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Evolved At</em>' reference.
+ * @see #setEvolvedAt(DiseaseModelLabel)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseModel_EvolvedAt()
+ * @model transient="true"
+ * @generated
+ */
+ DiseaseModelLabel getEvolvedAt();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getEvolvedAt <em>Evolved At</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Evolved At</em>' reference.
+ * @see #getEvolvedAt()
+ * @generated
+ */
+ void setEvolvedAt(DiseaseModelLabel value);
+
+ /**
+ * Returns the value of the '<em><b>Evolution Count</b></em>' attribute.
+ * The default value is <code>"0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Evolution Count</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Evolution Count</em>' attribute.
+ * @see #setEvolutionCount(int)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseModel_EvolutionCount()
+ * @model default="0" transient="true"
+ * @generated
+ */
+ int getEvolutionCount();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getEvolutionCount <em>Evolution Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Evolution Count</em>' attribute.
+ * @see #getEvolutionCount()
+ * @generated
+ */
+ void setEvolutionCount(int value);
+
+ /**
+ * Returns the value of the '<em><b>Genome</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Genome</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Genome</em>' attribute.
+ * @see #setGenome(boolean[])
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseModel_Genome()
+ * @model dataType="org.eclipse.stem.diseasemodels.evolving.BooleanArray" transient="true" derived="true"
+ * @generated
+ */
+ boolean[] getGenome();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getGenome <em>Genome</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Genome</em>' attribute.
+ * @see #getGenome()
+ * @generated
+ */
+ void setGenome(boolean[] value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ EvolvingDiseaseModel evolve(DiseaseModelLabel label);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void calculateEvolvedInitialState();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ double getGeneticDistance(EvolvingDiseaseModel otherDiseaseStrain);
+} // EvolvingDiseaseModel
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingDiseaseTransformer.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingDiseaseTransformer.java
new file mode 100644
index 0000000..a92b442
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingDiseaseTransformer.java
@@ -0,0 +1,168 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.stem.core.STEMURI;
+import org.eclipse.stem.core.model.TransformationDecorator;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Disease Transformer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getBaseDisease <em>Base Disease</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolvedDiseases <em>Evolved Diseases</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolutionCount <em>Evolution Count</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolutionCountHardLimit <em>Evolution Count Hard Limit</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#isStopAllEvolution <em>Stop All Evolution</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseTransformer()
+ * @model
+ * @generated
+ */
+public interface EvolvingDiseaseTransformer extends TransformationDecorator {
+
+ /**
+ * This is the top-level segment for all type URI's for labels.
+ * @generated NOT
+ */
+ String URI_TYPE_TRANSFORMER_SEGMENT = "transformer";
+
+ /**
+ * This is the type URI for a Label
+ * @generated NOT
+ */
+ URI URI_TYPE_TRANSFORMER = STEMURI.createTypeURI(URI_TYPE_TRANSFORMER_SEGMENT);
+
+
+ /**
+ * Returns the value of the '<em><b>Base Disease</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Disease</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Disease</em>' reference.
+ * @see #setBaseDisease(DiseaseModel)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseTransformer_BaseDisease()
+ * @model required="true"
+ * @generated
+ */
+ DiseaseModel getBaseDisease();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getBaseDisease <em>Base Disease</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Disease</em>' reference.
+ * @see #getBaseDisease()
+ * @generated
+ */
+ void setBaseDisease(DiseaseModel value);
+
+ /**
+ * Returns the value of the '<em><b>Evolved Diseases</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.stem.diseasemodels.standard.DiseaseModel}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Evolved Diseases</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Evolved Diseases</em>' reference list.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseTransformer_EvolvedDiseases()
+ * @model transient="true"
+ * @generated
+ */
+ EList<DiseaseModel> getEvolvedDiseases();
+
+ /**
+ * Returns the value of the '<em><b>Evolution Count</b></em>' attribute.
+ * The default value is <code>"0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Evolution Count</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Evolution Count</em>' attribute.
+ * @see #setEvolutionCount(int)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseTransformer_EvolutionCount()
+ * @model default="0"
+ * @generated
+ */
+ int getEvolutionCount();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolutionCount <em>Evolution Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Evolution Count</em>' attribute.
+ * @see #getEvolutionCount()
+ * @generated
+ */
+ void setEvolutionCount(int value);
+
+ /**
+ * Returns the value of the '<em><b>Evolution Count Hard Limit</b></em>' attribute.
+ * The default value is <code>"256"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Evolution Count Hard Limit</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Evolution Count Hard Limit</em>' attribute.
+ * @see #setEvolutionCountHardLimit(int)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseTransformer_EvolutionCountHardLimit()
+ * @model default="256"
+ * @generated
+ */
+ int getEvolutionCountHardLimit();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolutionCountHardLimit <em>Evolution Count Hard Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Evolution Count Hard Limit</em>' attribute.
+ * @see #getEvolutionCountHardLimit()
+ * @generated
+ */
+ void setEvolutionCountHardLimit(int value);
+
+ /**
+ * Returns the value of the '<em><b>Stop All Evolution</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stop All Evolution</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stop All Evolution</em>' attribute.
+ * @see #setStopAllEvolution(boolean)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingDiseaseTransformer_StopAllEvolution()
+ * @model default="false" transient="true"
+ * @generated
+ */
+ boolean isStopAllEvolution();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#isStopAllEvolution <em>Stop All Evolution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stop All Evolution</em>' attribute.
+ * @see #isStopAllEvolution()
+ * @generated
+ */
+ void setStopAllEvolution(boolean value);
+} // EvolvingDiseaseTransformer
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingFactory.java
new file mode 100644
index 0000000..1850692
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingFactory.java
@@ -0,0 +1,127 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+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.stem.diseasemodels.evolving.EvolvingPackage
+ * @generated
+ */
+public interface EvolvingFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EvolvingFactory eINSTANCE = org.eclipse.stem.diseasemodels.evolving.impl.EvolvingFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Disease Transformer</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Disease Transformer</em>'.
+ * @generated
+ */
+ EvolvingDiseaseTransformer createEvolvingDiseaseTransformer();
+
+ /**
+ * Returns a new object of class '<em>SI Disease Model Label</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SI Disease Model Label</em>'.
+ * @generated
+ */
+ EvolvingSIDiseaseModelLabel createEvolvingSIDiseaseModelLabel();
+
+ /**
+ * Returns a new object of class '<em>SI Disease Model Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SI Disease Model Label Value</em>'.
+ * @generated
+ */
+ EvolvingSIDiseaseModelLabelValue createEvolvingSIDiseaseModelLabelValue();
+
+ /**
+ * Returns a new object of class '<em>SI Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SI Disease Model</em>'.
+ * @generated
+ */
+ EvolvingSIDiseaseModel createEvolvingSIDiseaseModel();
+
+ /**
+ * Returns a new object of class '<em>SIR Disease Model Label</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SIR Disease Model Label</em>'.
+ * @generated
+ */
+ EvolvingSIRDiseaseModelLabel createEvolvingSIRDiseaseModelLabel();
+
+ /**
+ * Returns a new object of class '<em>SIR Disease Model Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SIR Disease Model Label Value</em>'.
+ * @generated
+ */
+ EvolvingSIRDiseaseModelLabelValue createEvolvingSIRDiseaseModelLabelValue();
+
+ /**
+ * Returns a new object of class '<em>SIR Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SIR Disease Model</em>'.
+ * @generated
+ */
+ EvolvingSIRDiseaseModel createEvolvingSIRDiseaseModel();
+
+ /**
+ * Returns a new object of class '<em>SEIR Disease Model Label</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SEIR Disease Model Label</em>'.
+ * @generated
+ */
+ EvolvingSEIRDiseaseModelLabel createEvolvingSEIRDiseaseModelLabel();
+
+ /**
+ * Returns a new object of class '<em>SEIR Disease Model Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SEIR Disease Model Label Value</em>'.
+ * @generated
+ */
+ EvolvingSEIRDiseaseModelLabelValue createEvolvingSEIRDiseaseModelLabelValue();
+
+ /**
+ * Returns a new object of class '<em>SEIR Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SEIR Disease Model</em>'.
+ * @generated
+ */
+ EvolvingSEIRDiseaseModel createEvolvingSEIRDiseaseModel();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ EvolvingPackage getEvolvingPackage();
+
+} //EvolvingFactory
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingPackage.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingPackage.java
new file mode 100644
index 0000000..dfa76aa
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingPackage.java
@@ -0,0 +1,2584 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.stem.core.model.ModelPackage;
+import org.eclipse.stem.diseasemodels.standard.StandardPackage;
+
+/**
+ * <!-- 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.stem.diseasemodels.evolving.EvolvingFactory
+ * @model kind="package"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * annotation="http:///org/eclipse/stem/modelgen/metamodel uri='platform:/resource/org.eclipse.stem.diseasemodels.evolving/model/evolving.metamodel'"
+ * @generated
+ */
+public interface EvolvingPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "evolving";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///org/eclipse/stem/diseasemodels/evolving/evolving.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "org.eclipse.stem.diseasemodels.evolving";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EvolvingPackage eINSTANCE = org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingDiseaseTransformerImpl <em>Disease Transformer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingDiseaseTransformerImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingDiseaseTransformer()
+ * @generated
+ */
+ int EVOLVING_DISEASE_TRANSFORMER = 0;
+
+ /**
+ * The feature id for the '<em><b>URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__URI = ModelPackage.TRANSFORMATION_DECORATOR__URI;
+
+ /**
+ * The feature id for the '<em><b>Type URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__TYPE_URI = ModelPackage.TRANSFORMATION_DECORATOR__TYPE_URI;
+
+ /**
+ * The feature id for the '<em><b>Dublin Core</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__DUBLIN_CORE = ModelPackage.TRANSFORMATION_DECORATOR__DUBLIN_CORE;
+
+ /**
+ * The feature id for the '<em><b>Labels To Update</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__LABELS_TO_UPDATE = ModelPackage.TRANSFORMATION_DECORATOR__LABELS_TO_UPDATE;
+
+ /**
+ * The feature id for the '<em><b>Graph</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__GRAPH = ModelPackage.TRANSFORMATION_DECORATOR__GRAPH;
+
+ /**
+ * The feature id for the '<em><b>Enabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__ENABLED = ModelPackage.TRANSFORMATION_DECORATOR__ENABLED;
+
+ /**
+ * The feature id for the '<em><b>Graph Decorated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__GRAPH_DECORATED = ModelPackage.TRANSFORMATION_DECORATOR__GRAPH_DECORATED;
+
+ /**
+ * The feature id for the '<em><b>Progress</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__PROGRESS = ModelPackage.TRANSFORMATION_DECORATOR__PROGRESS;
+
+ /**
+ * The feature id for the '<em><b>Source Labels</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__SOURCE_LABELS = ModelPackage.TRANSFORMATION_DECORATOR__SOURCE_LABELS;
+
+ /**
+ * The feature id for the '<em><b>Base Disease</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__BASE_DISEASE = ModelPackage.TRANSFORMATION_DECORATOR_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Evolved Diseases</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__EVOLVED_DISEASES = ModelPackage.TRANSFORMATION_DECORATOR_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Evolution Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT = ModelPackage.TRANSFORMATION_DECORATOR_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Evolution Count Hard Limit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT_HARD_LIMIT = ModelPackage.TRANSFORMATION_DECORATOR_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Stop All Evolution</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER__STOP_ALL_EVOLUTION = ModelPackage.TRANSFORMATION_DECORATOR_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Disease Transformer</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_TRANSFORMER_FEATURE_COUNT = ModelPackage.TRANSFORMATION_DECORATOR_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel <em>Disease Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingDiseaseModel()
+ * @generated
+ */
+ int EVOLVING_DISEASE_MODEL = 1;
+
+ /**
+ * The feature id for the '<em><b>Parent Disease</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_MODEL__PARENT_DISEASE = 0;
+
+ /**
+ * The feature id for the '<em><b>Transformer</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_MODEL__TRANSFORMER = 1;
+
+ /**
+ * The feature id for the '<em><b>Evolved At</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_MODEL__EVOLVED_AT = 2;
+
+ /**
+ * The feature id for the '<em><b>Genome</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_MODEL__GENOME = 3;
+
+ /**
+ * The feature id for the '<em><b>Evolution Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_MODEL__EVOLUTION_COUNT = 4;
+
+ /**
+ * The number of structural features of the '<em>Disease Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_DISEASE_MODEL_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelLabelImpl <em>SI Disease Model Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelLabelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIDiseaseModelLabel()
+ * @generated
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL = 2;
+
+ /**
+ * The feature id for the '<em><b>URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__URI = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__URI;
+
+ /**
+ * The feature id for the '<em><b>Type URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__TYPE_URI = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__TYPE_URI;
+
+ /**
+ * The feature id for the '<em><b>Dublin Core</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__DUBLIN_CORE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DUBLIN_CORE;
+
+ /**
+ * The feature id for the '<em><b>URI Of Identifiable To Be Labeled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__URI_OF_IDENTIFIABLE_TO_BE_LABELED = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__URI_OF_IDENTIFIABLE_TO_BE_LABELED;
+
+ /**
+ * The feature id for the '<em><b>Current Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__CURRENT_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__CURRENT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Identifiable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__IDENTIFIABLE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__IDENTIFIABLE;
+
+ /**
+ * The feature id for the '<em><b>Next Value Valid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__NEXT_VALUE_VALID = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NEXT_VALUE_VALID;
+
+ /**
+ * The feature id for the '<em><b>Next Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__NEXT_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NEXT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Decorator</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__DECORATOR = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DECORATOR;
+
+ /**
+ * The feature id for the '<em><b>Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__NODE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NODE;
+
+ /**
+ * The feature id for the '<em><b>Delta Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__DELTA_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DELTA_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Temp Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__TEMP_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__TEMP_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Probe Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__PROBE_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__PROBE_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Error Scale</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__ERROR_SCALE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__ERROR_SCALE;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__IDENTIFIER = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Population Label</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__POPULATION_LABEL = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__POPULATION_LABEL;
+
+ /**
+ * The feature id for the '<em><b>Population Model Label</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL__POPULATION_MODEL_LABEL = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__POPULATION_MODEL_LABEL;
+
+ /**
+ * The number of structural features of the '<em>SI Disease Model Label</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL_FEATURE_COUNT = StandardPackage.STANDARD_DISEASE_MODEL_LABEL_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelLabelValueImpl <em>SI Disease Model Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelLabelValueImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIDiseaseModelLabelValue()
+ * @generated
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE = 3;
+
+ /**
+ * The feature id for the '<em><b>Arrivals</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE__ARRIVALS = StandardPackage.SI_LABEL_VALUE__ARRIVALS;
+
+ /**
+ * The feature id for the '<em><b>Departures</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE__DEPARTURES = StandardPackage.SI_LABEL_VALUE__DEPARTURES;
+
+ /**
+ * The feature id for the '<em><b>Population Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE__POPULATION_COUNT = StandardPackage.SI_LABEL_VALUE__POPULATION_COUNT;
+
+ /**
+ * The feature id for the '<em><b>S</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE__S = StandardPackage.SI_LABEL_VALUE__S;
+
+ /**
+ * The feature id for the '<em><b>Incidence</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE__INCIDENCE = StandardPackage.SI_LABEL_VALUE__INCIDENCE;
+
+ /**
+ * The feature id for the '<em><b>Disease Deaths</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE__DISEASE_DEATHS = StandardPackage.SI_LABEL_VALUE__DISEASE_DEATHS;
+
+ /**
+ * The feature id for the '<em><b>I</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE__I = StandardPackage.SI_LABEL_VALUE__I;
+
+ /**
+ * The number of structural features of the '<em>SI Disease Model Label Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE_FEATURE_COUNT = StandardPackage.SI_LABEL_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl <em>SI Disease Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIDiseaseModel()
+ * @generated
+ */
+ int EVOLVING_SI_DISEASE_MODEL = 4;
+
+ /**
+ * The feature id for the '<em><b>URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__URI = StandardPackage.SI__URI;
+
+ /**
+ * The feature id for the '<em><b>Type URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__TYPE_URI = StandardPackage.SI__TYPE_URI;
+
+ /**
+ * The feature id for the '<em><b>Dublin Core</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__DUBLIN_CORE = StandardPackage.SI__DUBLIN_CORE;
+
+ /**
+ * The feature id for the '<em><b>Labels To Update</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__LABELS_TO_UPDATE = StandardPackage.SI__LABELS_TO_UPDATE;
+
+ /**
+ * The feature id for the '<em><b>Graph</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__GRAPH = StandardPackage.SI__GRAPH;
+
+ /**
+ * The feature id for the '<em><b>Enabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__ENABLED = StandardPackage.SI__ENABLED;
+
+ /**
+ * The feature id for the '<em><b>Graph Decorated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__GRAPH_DECORATED = StandardPackage.SI__GRAPH_DECORATED;
+
+ /**
+ * The feature id for the '<em><b>Progress</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__PROGRESS = StandardPackage.SI__PROGRESS;
+
+ /**
+ * The feature id for the '<em><b>Add Stochastic Noise</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__ADD_STOCHASTIC_NOISE = StandardPackage.SI__ADD_STOCHASTIC_NOISE;
+
+ /**
+ * The feature id for the '<em><b>Random Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__RANDOM_SEED = StandardPackage.SI__RANDOM_SEED;
+
+ /**
+ * The feature id for the '<em><b>Binomial Distribution</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__BINOMIAL_DISTRIBUTION = StandardPackage.SI__BINOMIAL_DISTRIBUTION;
+
+ /**
+ * The feature id for the '<em><b>Population Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__POPULATION_IDENTIFIER = StandardPackage.SI__POPULATION_IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Time Period</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__TIME_PERIOD = StandardPackage.SI__TIME_PERIOD;
+
+ /**
+ * The feature id for the '<em><b>Disease Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__DISEASE_NAME = StandardPackage.SI__DISEASE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Finite Difference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__FINITE_DIFFERENCE = StandardPackage.SI__FINITE_DIFFERENCE;
+
+ /**
+ * The feature id for the '<em><b>Frequency Dependent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__FREQUENCY_DEPENDENT = StandardPackage.SI__FREQUENCY_DEPENDENT;
+
+ /**
+ * The feature id for the '<em><b>Reference Population Density</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__REFERENCE_POPULATION_DENSITY = StandardPackage.SI__REFERENCE_POPULATION_DENSITY;
+
+ /**
+ * The feature id for the '<em><b>Road Network Infectious Proportion</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION = StandardPackage.SI__ROAD_NETWORK_INFECTIOUS_PROPORTION;
+
+ /**
+ * The feature id for the '<em><b>Characteristic Mixing Distance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE = StandardPackage.SI__CHARACTERISTIC_MIXING_DISTANCE;
+
+ /**
+ * The feature id for the '<em><b>Transmission Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__TRANSMISSION_RATE = StandardPackage.SI__TRANSMISSION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Non Linearity Coefficient</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__NON_LINEARITY_COEFFICIENT = StandardPackage.SI__NON_LINEARITY_COEFFICIENT;
+
+ /**
+ * The feature id for the '<em><b>Recovery Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__RECOVERY_RATE = StandardPackage.SI__RECOVERY_RATE;
+
+ /**
+ * The feature id for the '<em><b>Infectious Mortality Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__INFECTIOUS_MORTALITY_RATE = StandardPackage.SI__INFECTIOUS_MORTALITY_RATE;
+
+ /**
+ * The feature id for the '<em><b>Parent Disease</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__PARENT_DISEASE = StandardPackage.SI_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Transformer</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__TRANSFORMER = StandardPackage.SI_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Evolved At</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__EVOLVED_AT = StandardPackage.SI_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Genome</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__GENOME = StandardPackage.SI_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Evolution Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__EVOLUTION_COUNT = StandardPackage.SI_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Case Mutation Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__CASE_MUTATION_RATE = StandardPackage.SI_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Genome Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__GENOME_LENGTH = StandardPackage.SI_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Genetic Dist Nonlin Exponent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT = StandardPackage.SI_FEATURE_COUNT + 7;
+
+ /**
+ * The number of structural features of the '<em>SI Disease Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SI_DISEASE_MODEL_FEATURE_COUNT = StandardPackage.SI_FEATURE_COUNT + 8;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelLabelImpl <em>SIR Disease Model Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelLabelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIRDiseaseModelLabel()
+ * @generated
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL = 5;
+
+ /**
+ * The feature id for the '<em><b>URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__URI = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__URI;
+
+ /**
+ * The feature id for the '<em><b>Type URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__TYPE_URI = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__TYPE_URI;
+
+ /**
+ * The feature id for the '<em><b>Dublin Core</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__DUBLIN_CORE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DUBLIN_CORE;
+
+ /**
+ * The feature id for the '<em><b>URI Of Identifiable To Be Labeled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__URI_OF_IDENTIFIABLE_TO_BE_LABELED = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__URI_OF_IDENTIFIABLE_TO_BE_LABELED;
+
+ /**
+ * The feature id for the '<em><b>Current Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__CURRENT_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__CURRENT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Identifiable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__IDENTIFIABLE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__IDENTIFIABLE;
+
+ /**
+ * The feature id for the '<em><b>Next Value Valid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__NEXT_VALUE_VALID = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NEXT_VALUE_VALID;
+
+ /**
+ * The feature id for the '<em><b>Next Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__NEXT_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NEXT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Decorator</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__DECORATOR = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DECORATOR;
+
+ /**
+ * The feature id for the '<em><b>Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__NODE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NODE;
+
+ /**
+ * The feature id for the '<em><b>Delta Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__DELTA_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DELTA_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Temp Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__TEMP_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__TEMP_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Probe Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__PROBE_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__PROBE_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Error Scale</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__ERROR_SCALE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__ERROR_SCALE;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__IDENTIFIER = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Population Label</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__POPULATION_LABEL = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__POPULATION_LABEL;
+
+ /**
+ * The feature id for the '<em><b>Population Model Label</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL__POPULATION_MODEL_LABEL = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__POPULATION_MODEL_LABEL;
+
+ /**
+ * The number of structural features of the '<em>SIR Disease Model Label</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_FEATURE_COUNT = StandardPackage.STANDARD_DISEASE_MODEL_LABEL_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelLabelValueImpl <em>SIR Disease Model Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelLabelValueImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIRDiseaseModelLabelValue()
+ * @generated
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE = 6;
+
+ /**
+ * The feature id for the '<em><b>Arrivals</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE__ARRIVALS = StandardPackage.SIR_LABEL_VALUE__ARRIVALS;
+
+ /**
+ * The feature id for the '<em><b>Departures</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE__DEPARTURES = StandardPackage.SIR_LABEL_VALUE__DEPARTURES;
+
+ /**
+ * The feature id for the '<em><b>Population Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE__POPULATION_COUNT = StandardPackage.SIR_LABEL_VALUE__POPULATION_COUNT;
+
+ /**
+ * The feature id for the '<em><b>S</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE__S = StandardPackage.SIR_LABEL_VALUE__S;
+
+ /**
+ * The feature id for the '<em><b>Incidence</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE__INCIDENCE = StandardPackage.SIR_LABEL_VALUE__INCIDENCE;
+
+ /**
+ * The feature id for the '<em><b>Disease Deaths</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE__DISEASE_DEATHS = StandardPackage.SIR_LABEL_VALUE__DISEASE_DEATHS;
+
+ /**
+ * The feature id for the '<em><b>I</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE__I = StandardPackage.SIR_LABEL_VALUE__I;
+
+ /**
+ * The feature id for the '<em><b>R</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE__R = StandardPackage.SIR_LABEL_VALUE__R;
+
+ /**
+ * The number of structural features of the '<em>SIR Disease Model Label Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE_FEATURE_COUNT = StandardPackage.SIR_LABEL_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelImpl <em>SIR Disease Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIRDiseaseModel()
+ * @generated
+ */
+ int EVOLVING_SIR_DISEASE_MODEL = 7;
+
+ /**
+ * The feature id for the '<em><b>URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__URI = EVOLVING_SI_DISEASE_MODEL__URI;
+
+ /**
+ * The feature id for the '<em><b>Type URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__TYPE_URI = EVOLVING_SI_DISEASE_MODEL__TYPE_URI;
+
+ /**
+ * The feature id for the '<em><b>Dublin Core</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__DUBLIN_CORE = EVOLVING_SI_DISEASE_MODEL__DUBLIN_CORE;
+
+ /**
+ * The feature id for the '<em><b>Labels To Update</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__LABELS_TO_UPDATE = EVOLVING_SI_DISEASE_MODEL__LABELS_TO_UPDATE;
+
+ /**
+ * The feature id for the '<em><b>Graph</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__GRAPH = EVOLVING_SI_DISEASE_MODEL__GRAPH;
+
+ /**
+ * The feature id for the '<em><b>Enabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__ENABLED = EVOLVING_SI_DISEASE_MODEL__ENABLED;
+
+ /**
+ * The feature id for the '<em><b>Graph Decorated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__GRAPH_DECORATED = EVOLVING_SI_DISEASE_MODEL__GRAPH_DECORATED;
+
+ /**
+ * The feature id for the '<em><b>Progress</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__PROGRESS = EVOLVING_SI_DISEASE_MODEL__PROGRESS;
+
+ /**
+ * The feature id for the '<em><b>Add Stochastic Noise</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__ADD_STOCHASTIC_NOISE = EVOLVING_SI_DISEASE_MODEL__ADD_STOCHASTIC_NOISE;
+
+ /**
+ * The feature id for the '<em><b>Random Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__RANDOM_SEED = EVOLVING_SI_DISEASE_MODEL__RANDOM_SEED;
+
+ /**
+ * The feature id for the '<em><b>Binomial Distribution</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__BINOMIAL_DISTRIBUTION = EVOLVING_SI_DISEASE_MODEL__BINOMIAL_DISTRIBUTION;
+
+ /**
+ * The feature id for the '<em><b>Population Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__POPULATION_IDENTIFIER = EVOLVING_SI_DISEASE_MODEL__POPULATION_IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Time Period</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__TIME_PERIOD = EVOLVING_SI_DISEASE_MODEL__TIME_PERIOD;
+
+ /**
+ * The feature id for the '<em><b>Disease Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__DISEASE_NAME = EVOLVING_SI_DISEASE_MODEL__DISEASE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Finite Difference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__FINITE_DIFFERENCE = EVOLVING_SI_DISEASE_MODEL__FINITE_DIFFERENCE;
+
+ /**
+ * The feature id for the '<em><b>Frequency Dependent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__FREQUENCY_DEPENDENT = EVOLVING_SI_DISEASE_MODEL__FREQUENCY_DEPENDENT;
+
+ /**
+ * The feature id for the '<em><b>Reference Population Density</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__REFERENCE_POPULATION_DENSITY = EVOLVING_SI_DISEASE_MODEL__REFERENCE_POPULATION_DENSITY;
+
+ /**
+ * The feature id for the '<em><b>Road Network Infectious Proportion</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION = EVOLVING_SI_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION;
+
+ /**
+ * The feature id for the '<em><b>Characteristic Mixing Distance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE = EVOLVING_SI_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE;
+
+ /**
+ * The feature id for the '<em><b>Transmission Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__TRANSMISSION_RATE = EVOLVING_SI_DISEASE_MODEL__TRANSMISSION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Non Linearity Coefficient</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__NON_LINEARITY_COEFFICIENT = EVOLVING_SI_DISEASE_MODEL__NON_LINEARITY_COEFFICIENT;
+
+ /**
+ * The feature id for the '<em><b>Recovery Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__RECOVERY_RATE = EVOLVING_SI_DISEASE_MODEL__RECOVERY_RATE;
+
+ /**
+ * The feature id for the '<em><b>Infectious Mortality Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__INFECTIOUS_MORTALITY_RATE = EVOLVING_SI_DISEASE_MODEL__INFECTIOUS_MORTALITY_RATE;
+
+ /**
+ * The feature id for the '<em><b>Parent Disease</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__PARENT_DISEASE = EVOLVING_SI_DISEASE_MODEL__PARENT_DISEASE;
+
+ /**
+ * The feature id for the '<em><b>Transformer</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__TRANSFORMER = EVOLVING_SI_DISEASE_MODEL__TRANSFORMER;
+
+ /**
+ * The feature id for the '<em><b>Evolved At</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__EVOLVED_AT = EVOLVING_SI_DISEASE_MODEL__EVOLVED_AT;
+
+ /**
+ * The feature id for the '<em><b>Genome</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__GENOME = EVOLVING_SI_DISEASE_MODEL__GENOME;
+
+ /**
+ * The feature id for the '<em><b>Evolution Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__EVOLUTION_COUNT = EVOLVING_SI_DISEASE_MODEL__EVOLUTION_COUNT;
+
+ /**
+ * The feature id for the '<em><b>Case Mutation Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__CASE_MUTATION_RATE = EVOLVING_SI_DISEASE_MODEL__CASE_MUTATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Genome Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__GENOME_LENGTH = EVOLVING_SI_DISEASE_MODEL__GENOME_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Genetic Dist Nonlin Exponent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT = EVOLVING_SI_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT;
+
+ /**
+ * The feature id for the '<em><b>Immunity Loss Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE = EVOLVING_SI_DISEASE_MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Cross Immunity Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE = EVOLVING_SI_DISEASE_MODEL_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>SIR Disease Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT = EVOLVING_SI_DISEASE_MODEL_FEATURE_COUNT + 2;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelLabelImpl <em>SEIR Disease Model Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelLabelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSEIRDiseaseModelLabel()
+ * @generated
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL = 8;
+
+ /**
+ * The feature id for the '<em><b>URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__URI = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__URI;
+
+ /**
+ * The feature id for the '<em><b>Type URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__TYPE_URI = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__TYPE_URI;
+
+ /**
+ * The feature id for the '<em><b>Dublin Core</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__DUBLIN_CORE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DUBLIN_CORE;
+
+ /**
+ * The feature id for the '<em><b>URI Of Identifiable To Be Labeled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__URI_OF_IDENTIFIABLE_TO_BE_LABELED = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__URI_OF_IDENTIFIABLE_TO_BE_LABELED;
+
+ /**
+ * The feature id for the '<em><b>Current Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__CURRENT_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__CURRENT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Identifiable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__IDENTIFIABLE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__IDENTIFIABLE;
+
+ /**
+ * The feature id for the '<em><b>Next Value Valid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__NEXT_VALUE_VALID = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NEXT_VALUE_VALID;
+
+ /**
+ * The feature id for the '<em><b>Next Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__NEXT_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NEXT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Decorator</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__DECORATOR = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DECORATOR;
+
+ /**
+ * The feature id for the '<em><b>Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__NODE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__NODE;
+
+ /**
+ * The feature id for the '<em><b>Delta Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__DELTA_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__DELTA_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Temp Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__TEMP_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__TEMP_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Probe Value</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__PROBE_VALUE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__PROBE_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Error Scale</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__ERROR_SCALE = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__ERROR_SCALE;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__IDENTIFIER = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Population Label</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__POPULATION_LABEL = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__POPULATION_LABEL;
+
+ /**
+ * The feature id for the '<em><b>Population Model Label</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL__POPULATION_MODEL_LABEL = StandardPackage.STANDARD_DISEASE_MODEL_LABEL__POPULATION_MODEL_LABEL;
+
+ /**
+ * The number of structural features of the '<em>SEIR Disease Model Label</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_FEATURE_COUNT = StandardPackage.STANDARD_DISEASE_MODEL_LABEL_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelLabelValueImpl <em>SEIR Disease Model Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelLabelValueImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSEIRDiseaseModelLabelValue()
+ * @generated
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE = 9;
+
+ /**
+ * The feature id for the '<em><b>Arrivals</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE__ARRIVALS = StandardPackage.SEIR_LABEL_VALUE__ARRIVALS;
+
+ /**
+ * The feature id for the '<em><b>Departures</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE__DEPARTURES = StandardPackage.SEIR_LABEL_VALUE__DEPARTURES;
+
+ /**
+ * The feature id for the '<em><b>Population Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE__POPULATION_COUNT = StandardPackage.SEIR_LABEL_VALUE__POPULATION_COUNT;
+
+ /**
+ * The feature id for the '<em><b>S</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE__S = StandardPackage.SEIR_LABEL_VALUE__S;
+
+ /**
+ * The feature id for the '<em><b>Incidence</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE__INCIDENCE = StandardPackage.SEIR_LABEL_VALUE__INCIDENCE;
+
+ /**
+ * The feature id for the '<em><b>Disease Deaths</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE__DISEASE_DEATHS = StandardPackage.SEIR_LABEL_VALUE__DISEASE_DEATHS;
+
+ /**
+ * The feature id for the '<em><b>I</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE__I = StandardPackage.SEIR_LABEL_VALUE__I;
+
+ /**
+ * The feature id for the '<em><b>R</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE__R = StandardPackage.SEIR_LABEL_VALUE__R;
+
+ /**
+ * The feature id for the '<em><b>E</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE__E = StandardPackage.SEIR_LABEL_VALUE__E;
+
+ /**
+ * The number of structural features of the '<em>SEIR Disease Model Label Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE_FEATURE_COUNT = StandardPackage.SEIR_LABEL_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelImpl <em>SEIR Disease Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSEIRDiseaseModel()
+ * @generated
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL = 10;
+
+ /**
+ * The feature id for the '<em><b>URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__URI = EVOLVING_SIR_DISEASE_MODEL__URI;
+
+ /**
+ * The feature id for the '<em><b>Type URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__TYPE_URI = EVOLVING_SIR_DISEASE_MODEL__TYPE_URI;
+
+ /**
+ * The feature id for the '<em><b>Dublin Core</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__DUBLIN_CORE = EVOLVING_SIR_DISEASE_MODEL__DUBLIN_CORE;
+
+ /**
+ * The feature id for the '<em><b>Labels To Update</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__LABELS_TO_UPDATE = EVOLVING_SIR_DISEASE_MODEL__LABELS_TO_UPDATE;
+
+ /**
+ * The feature id for the '<em><b>Graph</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__GRAPH = EVOLVING_SIR_DISEASE_MODEL__GRAPH;
+
+ /**
+ * The feature id for the '<em><b>Enabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__ENABLED = EVOLVING_SIR_DISEASE_MODEL__ENABLED;
+
+ /**
+ * The feature id for the '<em><b>Graph Decorated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__GRAPH_DECORATED = EVOLVING_SIR_DISEASE_MODEL__GRAPH_DECORATED;
+
+ /**
+ * The feature id for the '<em><b>Progress</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__PROGRESS = EVOLVING_SIR_DISEASE_MODEL__PROGRESS;
+
+ /**
+ * The feature id for the '<em><b>Add Stochastic Noise</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__ADD_STOCHASTIC_NOISE = EVOLVING_SIR_DISEASE_MODEL__ADD_STOCHASTIC_NOISE;
+
+ /**
+ * The feature id for the '<em><b>Random Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__RANDOM_SEED = EVOLVING_SIR_DISEASE_MODEL__RANDOM_SEED;
+
+ /**
+ * The feature id for the '<em><b>Binomial Distribution</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__BINOMIAL_DISTRIBUTION = EVOLVING_SIR_DISEASE_MODEL__BINOMIAL_DISTRIBUTION;
+
+ /**
+ * The feature id for the '<em><b>Population Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__POPULATION_IDENTIFIER = EVOLVING_SIR_DISEASE_MODEL__POPULATION_IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Time Period</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__TIME_PERIOD = EVOLVING_SIR_DISEASE_MODEL__TIME_PERIOD;
+
+ /**
+ * The feature id for the '<em><b>Disease Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__DISEASE_NAME = EVOLVING_SIR_DISEASE_MODEL__DISEASE_NAME;
+
+ /**
+ * The feature id for the '<em><b>Finite Difference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__FINITE_DIFFERENCE = EVOLVING_SIR_DISEASE_MODEL__FINITE_DIFFERENCE;
+
+ /**
+ * The feature id for the '<em><b>Frequency Dependent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__FREQUENCY_DEPENDENT = EVOLVING_SIR_DISEASE_MODEL__FREQUENCY_DEPENDENT;
+
+ /**
+ * The feature id for the '<em><b>Reference Population Density</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__REFERENCE_POPULATION_DENSITY = EVOLVING_SIR_DISEASE_MODEL__REFERENCE_POPULATION_DENSITY;
+
+ /**
+ * The feature id for the '<em><b>Road Network Infectious Proportion</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION = EVOLVING_SIR_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION;
+
+ /**
+ * The feature id for the '<em><b>Characteristic Mixing Distance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE = EVOLVING_SIR_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE;
+
+ /**
+ * The feature id for the '<em><b>Transmission Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__TRANSMISSION_RATE = EVOLVING_SIR_DISEASE_MODEL__TRANSMISSION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Non Linearity Coefficient</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__NON_LINEARITY_COEFFICIENT = EVOLVING_SIR_DISEASE_MODEL__NON_LINEARITY_COEFFICIENT;
+
+ /**
+ * The feature id for the '<em><b>Recovery Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__RECOVERY_RATE = EVOLVING_SIR_DISEASE_MODEL__RECOVERY_RATE;
+
+ /**
+ * The feature id for the '<em><b>Infectious Mortality Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__INFECTIOUS_MORTALITY_RATE = EVOLVING_SIR_DISEASE_MODEL__INFECTIOUS_MORTALITY_RATE;
+
+ /**
+ * The feature id for the '<em><b>Parent Disease</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__PARENT_DISEASE = EVOLVING_SIR_DISEASE_MODEL__PARENT_DISEASE;
+
+ /**
+ * The feature id for the '<em><b>Transformer</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__TRANSFORMER = EVOLVING_SIR_DISEASE_MODEL__TRANSFORMER;
+
+ /**
+ * The feature id for the '<em><b>Evolved At</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__EVOLVED_AT = EVOLVING_SIR_DISEASE_MODEL__EVOLVED_AT;
+
+ /**
+ * The feature id for the '<em><b>Genome</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__GENOME = EVOLVING_SIR_DISEASE_MODEL__GENOME;
+
+ /**
+ * The feature id for the '<em><b>Evolution Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__EVOLUTION_COUNT = EVOLVING_SIR_DISEASE_MODEL__EVOLUTION_COUNT;
+
+ /**
+ * The feature id for the '<em><b>Case Mutation Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__CASE_MUTATION_RATE = EVOLVING_SIR_DISEASE_MODEL__CASE_MUTATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Genome Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__GENOME_LENGTH = EVOLVING_SIR_DISEASE_MODEL__GENOME_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Genetic Dist Nonlin Exponent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT = EVOLVING_SIR_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT;
+
+ /**
+ * The feature id for the '<em><b>Immunity Loss Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE = EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE;
+
+ /**
+ * The feature id for the '<em><b>Cross Immunity Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE = EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE;
+
+ /**
+ * The feature id for the '<em><b>Incubation Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE = EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>SEIR Disease Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EVOLVING_SEIR_DISEASE_MODEL_FEATURE_COUNT = EVOLVING_SIR_DISEASE_MODEL_FEATURE_COUNT + 1;
+
+
+ /**
+ * The meta object id for the '<em>Boolean Array</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getBooleanArray()
+ * @generated
+ */
+ int BOOLEAN_ARRAY = 11;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer <em>Disease Transformer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Disease Transformer</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer
+ * @generated
+ */
+ EClass getEvolvingDiseaseTransformer();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getBaseDisease <em>Base Disease</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Disease</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getBaseDisease()
+ * @see #getEvolvingDiseaseTransformer()
+ * @generated
+ */
+ EReference getEvolvingDiseaseTransformer_BaseDisease();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolvedDiseases <em>Evolved Diseases</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Evolved Diseases</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolvedDiseases()
+ * @see #getEvolvingDiseaseTransformer()
+ * @generated
+ */
+ EReference getEvolvingDiseaseTransformer_EvolvedDiseases();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolutionCount <em>Evolution Count</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Evolution Count</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolutionCount()
+ * @see #getEvolvingDiseaseTransformer()
+ * @generated
+ */
+ EAttribute getEvolvingDiseaseTransformer_EvolutionCount();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolutionCountHardLimit <em>Evolution Count Hard Limit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Evolution Count Hard Limit</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#getEvolutionCountHardLimit()
+ * @see #getEvolvingDiseaseTransformer()
+ * @generated
+ */
+ EAttribute getEvolvingDiseaseTransformer_EvolutionCountHardLimit();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#isStopAllEvolution <em>Stop All Evolution</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Stop All Evolution</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer#isStopAllEvolution()
+ * @see #getEvolvingDiseaseTransformer()
+ * @generated
+ */
+ EAttribute getEvolvingDiseaseTransformer_StopAllEvolution();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel <em>Disease Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Disease Model</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel
+ * @generated
+ */
+ EClass getEvolvingDiseaseModel();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getParentDisease <em>Parent Disease</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Parent Disease</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getParentDisease()
+ * @see #getEvolvingDiseaseModel()
+ * @generated
+ */
+ EReference getEvolvingDiseaseModel_ParentDisease();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getTransformer <em>Transformer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Transformer</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getTransformer()
+ * @see #getEvolvingDiseaseModel()
+ * @generated
+ */
+ EReference getEvolvingDiseaseModel_Transformer();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getEvolvedAt <em>Evolved At</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Evolved At</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getEvolvedAt()
+ * @see #getEvolvingDiseaseModel()
+ * @generated
+ */
+ EReference getEvolvingDiseaseModel_EvolvedAt();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getEvolutionCount <em>Evolution Count</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Evolution Count</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getEvolutionCount()
+ * @see #getEvolvingDiseaseModel()
+ * @generated
+ */
+ EAttribute getEvolvingDiseaseModel_EvolutionCount();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel <em>SI Disease Model Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SI Disease Model Label</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel
+ * @generated
+ */
+ EClass getEvolvingSIDiseaseModelLabel();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue <em>SI Disease Model Label Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SI Disease Model Label Value</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue
+ * @generated
+ */
+ EClass getEvolvingSIDiseaseModelLabelValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getGenome <em>Genome</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Genome</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel#getGenome()
+ * @see #getEvolvingDiseaseModel()
+ * @generated
+ */
+ EAttribute getEvolvingDiseaseModel_Genome();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel <em>SI Disease Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SI Disease Model</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel
+ * @generated
+ */
+ EClass getEvolvingSIDiseaseModel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getCaseMutationRate <em>Case Mutation Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Case Mutation Rate</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getCaseMutationRate()
+ * @see #getEvolvingSIDiseaseModel()
+ * @generated
+ */
+ EAttribute getEvolvingSIDiseaseModel_CaseMutationRate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getGenomeLength <em>Genome Length</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Genome Length</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getGenomeLength()
+ * @see #getEvolvingSIDiseaseModel()
+ * @generated
+ */
+ EAttribute getEvolvingSIDiseaseModel_GenomeLength();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getGeneticDistNonlinExponent <em>Genetic Dist Nonlin Exponent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Genetic Dist Nonlin Exponent</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getGeneticDistNonlinExponent()
+ * @see #getEvolvingSIDiseaseModel()
+ * @generated
+ */
+ EAttribute getEvolvingSIDiseaseModel_GeneticDistNonlinExponent();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel <em>SIR Disease Model Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SIR Disease Model Label</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel
+ * @generated
+ */
+ EClass getEvolvingSIRDiseaseModelLabel();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue <em>SIR Disease Model Label Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SIR Disease Model Label Value</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue
+ * @generated
+ */
+ EClass getEvolvingSIRDiseaseModelLabelValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel <em>SIR Disease Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SIR Disease Model</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel
+ * @generated
+ */
+ EClass getEvolvingSIRDiseaseModel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel#getImmunityLossRate <em>Immunity Loss Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Immunity Loss Rate</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel#getImmunityLossRate()
+ * @see #getEvolvingSIRDiseaseModel()
+ * @generated
+ */
+ EAttribute getEvolvingSIRDiseaseModel_ImmunityLossRate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel#getCrossImmunityRate <em>Cross Immunity Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cross Immunity Rate</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel#getCrossImmunityRate()
+ * @see #getEvolvingSIRDiseaseModel()
+ * @generated
+ */
+ EAttribute getEvolvingSIRDiseaseModel_CrossImmunityRate();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel <em>SEIR Disease Model Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SEIR Disease Model Label</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel
+ * @generated
+ */
+ EClass getEvolvingSEIRDiseaseModelLabel();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue <em>SEIR Disease Model Label Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SEIR Disease Model Label Value</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue
+ * @generated
+ */
+ EClass getEvolvingSEIRDiseaseModelLabelValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel <em>SEIR Disease Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SEIR Disease Model</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel
+ * @generated
+ */
+ EClass getEvolvingSEIRDiseaseModel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel#getIncubationRate <em>Incubation Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Incubation Rate</em>'.
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel#getIncubationRate()
+ * @see #getEvolvingSEIRDiseaseModel()
+ * @generated
+ */
+ EAttribute getEvolvingSEIRDiseaseModel_IncubationRate();
+
+ /**
+ * Returns the meta object for data type '<em>Boolean Array</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Boolean Array</em>'.
+ * @model instanceClass="boolean[]"
+ * @generated
+ */
+ EDataType getBooleanArray();
+
+ /**
+ * 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
+ */
+ EvolvingFactory getEvolvingFactory();
+
+ /**
+ * <!-- 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.stem.diseasemodels.evolving.impl.EvolvingDiseaseTransformerImpl <em>Disease Transformer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingDiseaseTransformerImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingDiseaseTransformer()
+ * @generated
+ */
+ EClass EVOLVING_DISEASE_TRANSFORMER = eINSTANCE.getEvolvingDiseaseTransformer();
+
+ /**
+ * The meta object literal for the '<em><b>Base Disease</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EVOLVING_DISEASE_TRANSFORMER__BASE_DISEASE = eINSTANCE.getEvolvingDiseaseTransformer_BaseDisease();
+
+ /**
+ * The meta object literal for the '<em><b>Evolved Diseases</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EVOLVING_DISEASE_TRANSFORMER__EVOLVED_DISEASES = eINSTANCE.getEvolvingDiseaseTransformer_EvolvedDiseases();
+
+ /**
+ * The meta object literal for the '<em><b>Evolution Count</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT = eINSTANCE.getEvolvingDiseaseTransformer_EvolutionCount();
+
+ /**
+ * The meta object literal for the '<em><b>Evolution Count Hard Limit</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT_HARD_LIMIT = eINSTANCE.getEvolvingDiseaseTransformer_EvolutionCountHardLimit();
+
+ /**
+ * The meta object literal for the '<em><b>Stop All Evolution</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_DISEASE_TRANSFORMER__STOP_ALL_EVOLUTION = eINSTANCE.getEvolvingDiseaseTransformer_StopAllEvolution();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel <em>Disease Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingDiseaseModel()
+ * @generated
+ */
+ EClass EVOLVING_DISEASE_MODEL = eINSTANCE.getEvolvingDiseaseModel();
+
+ /**
+ * The meta object literal for the '<em><b>Parent Disease</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EVOLVING_DISEASE_MODEL__PARENT_DISEASE = eINSTANCE.getEvolvingDiseaseModel_ParentDisease();
+
+ /**
+ * The meta object literal for the '<em><b>Transformer</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EVOLVING_DISEASE_MODEL__TRANSFORMER = eINSTANCE.getEvolvingDiseaseModel_Transformer();
+
+ /**
+ * The meta object literal for the '<em><b>Evolved At</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EVOLVING_DISEASE_MODEL__EVOLVED_AT = eINSTANCE.getEvolvingDiseaseModel_EvolvedAt();
+
+ /**
+ * The meta object literal for the '<em><b>Evolution Count</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_DISEASE_MODEL__EVOLUTION_COUNT = eINSTANCE.getEvolvingDiseaseModel_EvolutionCount();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelLabelImpl <em>SI Disease Model Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelLabelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIDiseaseModelLabel()
+ * @generated
+ */
+ EClass EVOLVING_SI_DISEASE_MODEL_LABEL = eINSTANCE.getEvolvingSIDiseaseModelLabel();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelLabelValueImpl <em>SI Disease Model Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelLabelValueImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIDiseaseModelLabelValue()
+ * @generated
+ */
+ EClass EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE = eINSTANCE.getEvolvingSIDiseaseModelLabelValue();
+
+ /**
+ * The meta object literal for the '<em><b>Genome</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_DISEASE_MODEL__GENOME = eINSTANCE.getEvolvingDiseaseModel_Genome();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl <em>SI Disease Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIDiseaseModel()
+ * @generated
+ */
+ EClass EVOLVING_SI_DISEASE_MODEL = eINSTANCE.getEvolvingSIDiseaseModel();
+
+ /**
+ * The meta object literal for the '<em><b>Case Mutation Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_SI_DISEASE_MODEL__CASE_MUTATION_RATE = eINSTANCE.getEvolvingSIDiseaseModel_CaseMutationRate();
+
+ /**
+ * The meta object literal for the '<em><b>Genome Length</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_SI_DISEASE_MODEL__GENOME_LENGTH = eINSTANCE.getEvolvingSIDiseaseModel_GenomeLength();
+
+ /**
+ * The meta object literal for the '<em><b>Genetic Dist Nonlin Exponent</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_SI_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT = eINSTANCE.getEvolvingSIDiseaseModel_GeneticDistNonlinExponent();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelLabelImpl <em>SIR Disease Model Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelLabelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIRDiseaseModelLabel()
+ * @generated
+ */
+ EClass EVOLVING_SIR_DISEASE_MODEL_LABEL = eINSTANCE.getEvolvingSIRDiseaseModelLabel();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelLabelValueImpl <em>SIR Disease Model Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelLabelValueImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIRDiseaseModelLabelValue()
+ * @generated
+ */
+ EClass EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE = eINSTANCE.getEvolvingSIRDiseaseModelLabelValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelImpl <em>SIR Disease Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSIRDiseaseModel()
+ * @generated
+ */
+ EClass EVOLVING_SIR_DISEASE_MODEL = eINSTANCE.getEvolvingSIRDiseaseModel();
+
+ /**
+ * The meta object literal for the '<em><b>Immunity Loss Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE = eINSTANCE.getEvolvingSIRDiseaseModel_ImmunityLossRate();
+
+ /**
+ * The meta object literal for the '<em><b>Cross Immunity Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE = eINSTANCE.getEvolvingSIRDiseaseModel_CrossImmunityRate();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelLabelImpl <em>SEIR Disease Model Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelLabelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSEIRDiseaseModelLabel()
+ * @generated
+ */
+ EClass EVOLVING_SEIR_DISEASE_MODEL_LABEL = eINSTANCE.getEvolvingSEIRDiseaseModelLabel();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelLabelValueImpl <em>SEIR Disease Model Label Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelLabelValueImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSEIRDiseaseModelLabelValue()
+ * @generated
+ */
+ EClass EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE = eINSTANCE.getEvolvingSEIRDiseaseModelLabelValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelImpl <em>SEIR Disease Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelImpl
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getEvolvingSEIRDiseaseModel()
+ * @generated
+ */
+ EClass EVOLVING_SEIR_DISEASE_MODEL = eINSTANCE.getEvolvingSEIRDiseaseModel();
+
+ /**
+ * The meta object literal for the '<em><b>Incubation Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE = eINSTANCE.getEvolvingSEIRDiseaseModel_IncubationRate();
+
+ /**
+ * The meta object literal for the '<em>Boolean Array</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.stem.diseasemodels.evolving.impl.EvolvingPackageImpl#getBooleanArray()
+ * @generated
+ */
+ EDataType BOOLEAN_ARRAY = eINSTANCE.getBooleanArray();
+
+ }
+
+} //EvolvingPackage
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSEIRDiseaseModel.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSEIRDiseaseModel.java
new file mode 100644
index 0000000..3b1f4d9
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSEIRDiseaseModel.java
@@ -0,0 +1,60 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SEIR Disease Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel#getIncubationRate <em>Incubation Rate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSEIRDiseaseModel()
+ * @model annotation="http:///org/eclipse/stem/modelgen/model/label *='EvolvingSEIRDiseaseModelLabel'"
+ * annotation="http:///org/eclipse/stem/modelgen/model/labelvalue *='EvolvingSEIRDiseaseModelLabelValue'"
+ * annotation="http:///org/eclipse/stem/modelgen/model/adapters propertyEditorSuperClass='org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditor' stringProviderSuperClass='org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter' labelRelativeValueProviderSuperClass='org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider' labelValueRelativeValueProviderSuperClass='org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingSEIRDiseaseModel extends EvolvingSIRDiseaseModel {
+ /**
+ * Returns the value of the '<em><b>Incubation Rate</b></em>' attribute.
+ * The default value is <code>"0.0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Incubation Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Incubation Rate</em>' attribute.
+ * @see #setIncubationRate(double)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSEIRDiseaseModel_IncubationRate()
+ * @model default="0.0"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/constraints minValue='0.0' maxValue='1.0'"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/messages name='Incubation Rate'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ double getIncubationRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel#getIncubationRate <em>Incubation Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Incubation Rate</em>' attribute.
+ * @see #getIncubationRate()
+ * @generated
+ */
+ void setIncubationRate(double value);
+
+
+} // EvolvingSEIRDiseaseModel
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSEIRDiseaseModelLabel.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSEIRDiseaseModelLabel.java
new file mode 100644
index 0000000..8dfcaff
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSEIRDiseaseModelLabel.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SEIR Disease Model Label</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSEIRDiseaseModelLabel()
+ * @model annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingSEIRDiseaseModelLabel extends StandardDiseaseModelLabel {
+} // EvolvingSEIRDiseaseModelLabel
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSEIRDiseaseModelLabelValue.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSEIRDiseaseModelLabelValue.java
new file mode 100644
index 0000000..d0a79ee
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSEIRDiseaseModelLabelValue.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+import org.eclipse.stem.diseasemodels.standard.SEIRLabelValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SEIR Disease Model Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSEIRDiseaseModelLabelValue()
+ * @model annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingSEIRDiseaseModelLabelValue extends SEIRLabelValue {
+} // EvolvingSEIRDiseaseModelLabelValue
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIDiseaseModel.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIDiseaseModel.java
new file mode 100644
index 0000000..8ba3bba
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIDiseaseModel.java
@@ -0,0 +1,115 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+import org.eclipse.stem.diseasemodels.standard.SI;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SI Disease Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getCaseMutationRate <em>Case Mutation Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getGenomeLength <em>Genome Length</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getGeneticDistNonlinExponent <em>Genetic Dist Nonlin Exponent</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIDiseaseModel()
+ * @model annotation="http:///org/eclipse/stem/modelgen/model/label *='EvolvingSIDiseaseModelLabel'"
+ * annotation="http:///org/eclipse/stem/modelgen/model/labelvalue *='EvolvingSIDiseaseModelLabelValue'"
+ * annotation="http:///org/eclipse/stem/modelgen/model/adapters propertyEditorSuperClass='org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditor' stringProviderSuperClass='org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter' labelRelativeValueProviderSuperClass='org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider' labelValueRelativeValueProviderSuperClass='org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingSIDiseaseModel extends SI, EvolvingDiseaseModel {
+
+ /**
+ * Returns the value of the '<em><b>Case Mutation Rate</b></em>' attribute.
+ * The default value is <code>"0.00001"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Case Mutation Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Case Mutation Rate</em>' attribute.
+ * @see #setCaseMutationRate(double)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIDiseaseModel_CaseMutationRate()
+ * @model default="0.00001"
+ * @generated
+ */
+ double getCaseMutationRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getCaseMutationRate <em>Case Mutation Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Case Mutation Rate</em>' attribute.
+ * @see #getCaseMutationRate()
+ * @generated
+ */
+ void setCaseMutationRate(double value);
+
+ /**
+ * Returns the value of the '<em><b>Genome Length</b></em>' attribute.
+ * The default value is <code>"5"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Genome Length</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Genome Length</em>' attribute.
+ * @see #setGenomeLength(int)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIDiseaseModel_GenomeLength()
+ * @model default="5"
+ * @generated
+ */
+ int getGenomeLength();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getGenomeLength <em>Genome Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Genome Length</em>' attribute.
+ * @see #getGenomeLength()
+ * @generated
+ */
+ void setGenomeLength(int value);
+
+ /**
+ * Returns the value of the '<em><b>Genetic Dist Nonlin Exponent</b></em>' attribute.
+ * The default value is <code>"1.0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Genetic Dist Nonlin Exponent</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Genetic Dist Nonlin Exponent</em>' attribute.
+ * @see #setGeneticDistNonlinExponent(double)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIDiseaseModel_GeneticDistNonlinExponent()
+ * @model default="1.0"
+ * @generated
+ */
+ double getGeneticDistNonlinExponent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel#getGeneticDistNonlinExponent <em>Genetic Dist Nonlin Exponent</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Genetic Dist Nonlin Exponent</em>' attribute.
+ * @see #getGeneticDistNonlinExponent()
+ * @generated
+ */
+ void setGeneticDistNonlinExponent(double value);
+
+} // EvolvingSIDiseaseModel
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIDiseaseModelLabel.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIDiseaseModelLabel.java
new file mode 100644
index 0000000..88b63da
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIDiseaseModelLabel.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SI Disease Model Label</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIDiseaseModelLabel()
+ * @model annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingSIDiseaseModelLabel extends StandardDiseaseModelLabel {
+} // EvolvingSIDiseaseModelLabel
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIDiseaseModelLabelValue.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIDiseaseModelLabelValue.java
new file mode 100644
index 0000000..4323762
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIDiseaseModelLabelValue.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+import org.eclipse.stem.diseasemodels.standard.SILabelValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SI Disease Model Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIDiseaseModelLabelValue()
+ * @model annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingSIDiseaseModelLabelValue extends SILabelValue {
+} // EvolvingSIDiseaseModelLabelValue
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIRDiseaseModel.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIRDiseaseModel.java
new file mode 100644
index 0000000..a90c083
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIRDiseaseModel.java
@@ -0,0 +1,88 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SIR Disease Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel#getImmunityLossRate <em>Immunity Loss Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel#getCrossImmunityRate <em>Cross Immunity Rate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIRDiseaseModel()
+ * @model annotation="http:///org/eclipse/stem/modelgen/model/label *='EvolvingSIRDiseaseModelLabel'"
+ * annotation="http:///org/eclipse/stem/modelgen/model/labelvalue *='EvolvingSIRDiseaseModelLabelValue'"
+ * annotation="http:///org/eclipse/stem/modelgen/model/adapters propertyEditorSuperClass='org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditor' stringProviderSuperClass='org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter' labelRelativeValueProviderSuperClass='org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider' labelValueRelativeValueProviderSuperClass='org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingSIRDiseaseModel extends EvolvingSIDiseaseModel {
+ /**
+ * Returns the value of the '<em><b>Immunity Loss Rate</b></em>' attribute.
+ * The default value is <code>"0.0"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Immunity Loss Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Immunity Loss Rate</em>' attribute.
+ * @see #setImmunityLossRate(double)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIRDiseaseModel_ImmunityLossRate()
+ * @model default="0.0"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/constraints minValue='0.0' maxValue='1.0'"
+ * annotation="http:///org/eclipse/stem/modelgen/modelparam/messages name='Immunity Loss Rate'"
+ * annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+ double getImmunityLossRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel#getImmunityLossRate <em>Immunity Loss Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Immunity Loss Rate</em>' attribute.
+ * @see #getImmunityLossRate()
+ * @generated
+ */
+ void setImmunityLossRate(double value);
+
+ /**
+ * Returns the value of the '<em><b>Cross Immunity Rate</b></em>' attribute.
+ * The default value is <code>"0.75"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cross Immunity Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cross Immunity Rate</em>' attribute.
+ * @see #setCrossImmunityRate(double)
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIRDiseaseModel_CrossImmunityRate()
+ * @model default="0.75"
+ * @generated
+ */
+ double getCrossImmunityRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel#getCrossImmunityRate <em>Cross Immunity Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cross Immunity Rate</em>' attribute.
+ * @see #getCrossImmunityRate()
+ * @generated
+ */
+ void setCrossImmunityRate(double value);
+
+
+} // EvolvingSIRDiseaseModel
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIRDiseaseModelLabel.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIRDiseaseModelLabel.java
new file mode 100644
index 0000000..cf81460
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIRDiseaseModelLabel.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SIR Disease Model Label</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIRDiseaseModelLabel()
+ * @model annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingSIRDiseaseModelLabel extends StandardDiseaseModelLabel {
+} // EvolvingSIRDiseaseModelLabel
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIRDiseaseModelLabelValue.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIRDiseaseModelLabelValue.java
new file mode 100644
index 0000000..460b392
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/EvolvingSIRDiseaseModelLabelValue.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving;
+
+import org.eclipse.stem.diseasemodels.standard.SIRLabelValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SIR Disease Model Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.stem.diseasemodels.evolving.EvolvingPackage#getEvolvingSIRDiseaseModelLabelValue()
+ * @model annotation="http:///org/eclipse/stem/modelgen/generated version='1.0'"
+ * @generated
+ */
+public interface EvolvingSIRDiseaseModelLabelValue extends SIRLabelValue {
+} // EvolvingSIRDiseaseModelLabelValue
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingDiseaseTransformerImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingDiseaseTransformerImpl.java
new file mode 100644
index 0000000..3d3d14f
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingDiseaseTransformerImpl.java
@@ -0,0 +1,410 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.BasicInternalEList;
+import org.eclipse.stem.core.STEMURI;
+import org.eclipse.stem.core.graph.NodeLabel;
+import org.eclipse.stem.core.model.STEMTime;
+import org.eclipse.stem.core.model.impl.TransformationDecoratorImpl;
+import org.eclipse.stem.core.scenario.ScenarioInitializationException;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Disease Transformer</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingDiseaseTransformerImpl#getBaseDisease <em>Base Disease</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingDiseaseTransformerImpl#getEvolvedDiseases <em>Evolved Diseases</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingDiseaseTransformerImpl#getEvolutionCount <em>Evolution Count</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingDiseaseTransformerImpl#getEvolutionCountHardLimit <em>Evolution Count Hard Limit</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingDiseaseTransformerImpl#isStopAllEvolution <em>Stop All Evolution</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingDiseaseTransformerImpl extends TransformationDecoratorImpl implements EvolvingDiseaseTransformer {
+ /**
+ * The cached value of the '{@link #getBaseDisease() <em>Base Disease</em>}' reference.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #getBaseDisease()
+ * @generated
+ * @ordered
+ */
+ protected DiseaseModel baseDisease;
+ /**
+ * The cached value of the '{@link #getEvolvedDiseases() <em>Evolved Diseases</em>}' reference list.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getEvolvedDiseases()
+ * @generated
+ * @ordered
+ */
+ protected EList<DiseaseModel> evolvedDiseases;
+ /**
+ * The default value of the '{@link #getEvolutionCount() <em>Evolution Count</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getEvolutionCount()
+ * @generated
+ * @ordered
+ */
+ protected static final int EVOLUTION_COUNT_EDEFAULT = 0;
+ /**
+ * The cached value of the '{@link #getEvolutionCount() <em>Evolution Count</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #getEvolutionCount()
+ * @generated
+ * @ordered
+ */
+ protected int evolutionCount = EVOLUTION_COUNT_EDEFAULT;
+ /**
+ * The default value of the '{@link #getEvolutionCountHardLimit() <em>Evolution Count Hard Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvolutionCountHardLimit()
+ * @generated
+ * @ordered
+ */
+ protected static final int EVOLUTION_COUNT_HARD_LIMIT_EDEFAULT = 255;
+ /**
+ * The cached value of the '{@link #getEvolutionCountHardLimit() <em>Evolution Count Hard Limit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvolutionCountHardLimit()
+ * @generated
+ * @ordered
+ */
+ protected int evolutionCountHardLimit = EVOLUTION_COUNT_HARD_LIMIT_EDEFAULT;
+ /**
+ * The default value of the '{@link #isStopAllEvolution() <em>Stop All Evolution</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #isStopAllEvolution()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean STOP_ALL_EVOLUTION_EDEFAULT = false;
+ /**
+ * The cached value of the '{@link #isStopAllEvolution() <em>Stop All Evolution</em>}' attribute.
+ * <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ * @see #isStopAllEvolution()
+ * @generated
+ * @ordered
+ */
+ protected boolean stopAllEvolution = STOP_ALL_EVOLUTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EvolvingDiseaseTransformerImpl() {
+ super();
+ // TODO This probably needs to be inherited from the disease model
+ this.setURI(STEMURI.createURI("/" + STEMURI.generateUniquePart()+"/EvolvingDiseaseTransformerImpl" ) );
+ setTypeURI(URI_TYPE_TRANSFORMER);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingPackage.Literals.EVOLVING_DISEASE_TRANSFORMER;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public DiseaseModel getBaseDisease() {
+ if (baseDisease != null && baseDisease.eIsProxy()) {
+ InternalEObject oldBaseDisease = (InternalEObject)baseDisease;
+ baseDisease = (DiseaseModel)eResolveProxy(oldBaseDisease);
+ if (baseDisease != oldBaseDisease) {
+ }
+ }
+ return baseDisease;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public DiseaseModel basicGetBaseDisease() {
+ return baseDisease;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBaseDisease(DiseaseModel newBaseDisease) {
+ baseDisease = newBaseDisease;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<DiseaseModel> getEvolvedDiseases() {
+ if (evolvedDiseases == null) {
+ evolvedDiseases = new BasicInternalEList<DiseaseModel>(DiseaseModel.class);
+ }
+ return evolvedDiseases;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getEvolutionCount() {
+ return evolutionCount;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEvolutionCount(int newEvolutionCount) {
+ evolutionCount = newEvolutionCount;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public int getEvolutionCountHardLimit() {
+ return evolutionCountHardLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEvolutionCountHardLimit(int newEvolutionCountHardLimit) {
+ evolutionCountHardLimit = newEvolutionCountHardLimit;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isStopAllEvolution() {
+ return stopAllEvolution;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStopAllEvolution(boolean newStopAllEvolution) {
+ stopAllEvolution = newStopAllEvolution;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__BASE_DISEASE:
+ if (resolve) return getBaseDisease();
+ return basicGetBaseDisease();
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLVED_DISEASES:
+ return getEvolvedDiseases();
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT:
+ return getEvolutionCount();
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT_HARD_LIMIT:
+ return getEvolutionCountHardLimit();
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__STOP_ALL_EVOLUTION:
+ return isStopAllEvolution();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__BASE_DISEASE:
+ setBaseDisease((DiseaseModel)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLVED_DISEASES:
+ getEvolvedDiseases().clear();
+ getEvolvedDiseases().addAll((Collection<? extends DiseaseModel>)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT:
+ setEvolutionCount((Integer)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT_HARD_LIMIT:
+ setEvolutionCountHardLimit((Integer)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__STOP_ALL_EVOLUTION:
+ setStopAllEvolution((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__BASE_DISEASE:
+ setBaseDisease((DiseaseModel)null);
+ return;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLVED_DISEASES:
+ getEvolvedDiseases().clear();
+ return;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT:
+ setEvolutionCount(EVOLUTION_COUNT_EDEFAULT);
+ return;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT_HARD_LIMIT:
+ setEvolutionCountHardLimit(EVOLUTION_COUNT_HARD_LIMIT_EDEFAULT);
+ return;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__STOP_ALL_EVOLUTION:
+ setStopAllEvolution(STOP_ALL_EVOLUTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__BASE_DISEASE:
+ return baseDisease != null;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLVED_DISEASES:
+ return evolvedDiseases != null && !evolvedDiseases.isEmpty();
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT:
+ return evolutionCount != EVOLUTION_COUNT_EDEFAULT;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT_HARD_LIMIT:
+ return evolutionCountHardLimit != EVOLUTION_COUNT_HARD_LIMIT_EDEFAULT;
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__STOP_ALL_EVOLUTION:
+ return stopAllEvolution != STOP_ALL_EVOLUTION_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (evolutionCount: ");
+ result.append(evolutionCount);
+ result.append(", evolutionCountHardLimit: ");
+ result.append(evolutionCountHardLimit);
+ result.append(", stopAllEvolution: ");
+ result.append(stopAllEvolution);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public void updateLabels(STEMTime time, long timerPeriod, int cycle) {
+
+ // if we have hit the hard limit on max mutations (max Diseases)
+ if (this.stopAllEvolution) {
+ return;
+ }
+
+// int evolvingLabelCount = 0;
+// int diseaseLabelCount = 0;
+// int totalLabelCount = 0;
+// int evolutions = 0;
+
+ Set<URI> exisitingNodeKeys = new HashSet<URI>(getGraph().getNodeLabels().keySet());
+
+ for (URI nodeUri : exisitingNodeKeys) {
+
+ // for (Entry<URI,NodeLabel> nodeLabel :
+ // getGraph().getNodeLabels().entrySet()) {
+
+ NodeLabel nodeLabel = getGraph().getNodeLabels().get(nodeUri);
+
+ //totalLabelCount++;
+ if (nodeLabel instanceof DiseaseModelLabel) {
+ //diseaseLabelCount++;
+ DiseaseModelLabel dmLabel = (DiseaseModelLabel) nodeLabel;
+ if (dmLabel.getDecorator() instanceof EvolvingDiseaseModel) {
+ //evolvingLabelCount++;
+ EvolvingDiseaseModel baseDiseaseModel = (EvolvingDiseaseModel) dmLabel.getDecorator();
+
+ // ********** EVOLVE **********
+ EvolvingDiseaseModel evolvedDiseaseModel = baseDiseaseModel.evolve(dmLabel);
+ if (evolvedDiseaseModel != null) {
+ evolutionCount++;
+ if (evolutionCount >= evolutionCountHardLimit) {
+ System.out.println("Evolution Count Exceeds hard limit");
+ this.stopAllEvolution = true;
+ }
+ try {
+ DiseaseModel evolvedDiseaseAsModel = ((DiseaseModel) evolvedDiseaseModel);
+ getEvolvedDiseases().add(evolvedDiseaseAsModel);
+ getGraph().getDecorators().add(evolvedDiseaseAsModel);
+ evolvedDiseaseAsModel.decorateGraph(time);
+ evolvedDiseaseAsModel.setGraphDecorated(true);
+ evolvedDiseaseModel.calculateEvolvedInitialState();
+
+ System.err.println("*** Mutation ***" + evolutionCount);
+ } catch (ScenarioInitializationException sne) {
+ System.err.println("Error decorating mutated disease model");
+ }
+ }
+ }
+ }
+ }
+
+ //System.err.println("- Evolution Transform Complete ["+hashCode()+"]" +
+ //"{"+cycle+","+totalLabelCount+","+diseaseLabelCount+","+evolvingLabelCount+","+getEvolutionCount()+"}");
+ }
+
+ @Override
+ public void decorateGraph(STEMTime time) throws ScenarioInitializationException {
+
+ }
+
+ @Override
+ public void resetLabels() throws ScenarioInitializationException {
+ super.resetLabels();
+ evolutionCount = EVOLUTION_COUNT_EDEFAULT;
+ getEvolvedDiseases().clear();
+ }
+
+} // EvolvingDiseaseTransformerImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingFactoryImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingFactoryImpl.java
new file mode 100644
index 0000000..5e21a9f
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingFactoryImpl.java
@@ -0,0 +1,256 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.stem.diseasemodels.evolving.*;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingFactory;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingFactoryImpl extends EFactoryImpl implements EvolvingFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static EvolvingFactory init() {
+ try {
+ EvolvingFactory theEvolvingFactory = (EvolvingFactory)EPackage.Registry.INSTANCE.getEFactory(EvolvingPackage.eNS_URI);
+ if (theEvolvingFactory != null) {
+ return theEvolvingFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new EvolvingFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER: return createEvolvingDiseaseTransformer();
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL_LABEL: return createEvolvingSIDiseaseModelLabel();
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE: return createEvolvingSIDiseaseModelLabelValue();
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL: return createEvolvingSIDiseaseModel();
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_LABEL: return createEvolvingSIRDiseaseModelLabel();
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE: return createEvolvingSIRDiseaseModelLabelValue();
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL: return createEvolvingSIRDiseaseModel();
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL_LABEL: return createEvolvingSEIRDiseaseModelLabel();
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE: return createEvolvingSEIRDiseaseModelLabelValue();
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL: return createEvolvingSEIRDiseaseModel();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case EvolvingPackage.BOOLEAN_ARRAY:
+ return createBooleanArrayFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case EvolvingPackage.BOOLEAN_ARRAY:
+ return convertBooleanArrayToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingDiseaseTransformer createEvolvingDiseaseTransformer() {
+ EvolvingDiseaseTransformerImpl evolvingDiseaseTransformer = new EvolvingDiseaseTransformerImpl();
+ return evolvingDiseaseTransformer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIDiseaseModelLabel createEvolvingSIDiseaseModelLabel() {
+ EvolvingSIDiseaseModelLabelImpl evolvingSIDiseaseModelLabel = new EvolvingSIDiseaseModelLabelImpl();
+ return evolvingSIDiseaseModelLabel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIDiseaseModelLabelValue createEvolvingSIDiseaseModelLabelValue() {
+ EvolvingSIDiseaseModelLabelValueImpl evolvingSIDiseaseModelLabelValue = new EvolvingSIDiseaseModelLabelValueImpl();
+ return evolvingSIDiseaseModelLabelValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIDiseaseModel createEvolvingSIDiseaseModel() {
+ EvolvingSIDiseaseModelImpl evolvingSIDiseaseModel = new EvolvingSIDiseaseModelImpl();
+ return evolvingSIDiseaseModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIRDiseaseModelLabel createEvolvingSIRDiseaseModelLabel() {
+ EvolvingSIRDiseaseModelLabelImpl evolvingSIRDiseaseModelLabel = new EvolvingSIRDiseaseModelLabelImpl();
+ return evolvingSIRDiseaseModelLabel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIRDiseaseModelLabelValue createEvolvingSIRDiseaseModelLabelValue() {
+ EvolvingSIRDiseaseModelLabelValueImpl evolvingSIRDiseaseModelLabelValue = new EvolvingSIRDiseaseModelLabelValueImpl();
+ return evolvingSIRDiseaseModelLabelValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIRDiseaseModel createEvolvingSIRDiseaseModel() {
+ EvolvingSIRDiseaseModelImpl evolvingSIRDiseaseModel = new EvolvingSIRDiseaseModelImpl();
+ return evolvingSIRDiseaseModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSEIRDiseaseModelLabel createEvolvingSEIRDiseaseModelLabel() {
+ EvolvingSEIRDiseaseModelLabelImpl evolvingSEIRDiseaseModelLabel = new EvolvingSEIRDiseaseModelLabelImpl();
+ return evolvingSEIRDiseaseModelLabel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSEIRDiseaseModelLabelValue createEvolvingSEIRDiseaseModelLabelValue() {
+ EvolvingSEIRDiseaseModelLabelValueImpl evolvingSEIRDiseaseModelLabelValue = new EvolvingSEIRDiseaseModelLabelValueImpl();
+ return evolvingSEIRDiseaseModelLabelValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSEIRDiseaseModel createEvolvingSEIRDiseaseModel() {
+ EvolvingSEIRDiseaseModelImpl evolvingSEIRDiseaseModel = new EvolvingSEIRDiseaseModelImpl();
+ return evolvingSEIRDiseaseModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean[] createBooleanArrayFromString(EDataType eDataType, String initialValue) {
+ return (boolean[])super.createFromString(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertBooleanArrayToString(EDataType eDataType, Object instanceValue) {
+ return super.convertToString(instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingPackage getEvolvingPackage() {
+ return (EvolvingPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static EvolvingPackage getPackage() {
+ return EvolvingPackage.eINSTANCE;
+ }
+
+} //EvolvingFactoryImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingPackageImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingPackageImpl.java
new file mode 100644
index 0000000..aa1d0b6
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingPackageImpl.java
@@ -0,0 +1,860 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.stem.core.model.ModelPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingFactory;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingPackageImpl extends EPackageImpl implements EvolvingPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingDiseaseTransformerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingDiseaseModelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingSIDiseaseModelLabelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingSIDiseaseModelLabelValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingSIDiseaseModelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingSIRDiseaseModelLabelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingSIRDiseaseModelLabelValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingSIRDiseaseModelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingSEIRDiseaseModelLabelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingSEIRDiseaseModelLabelValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass evolvingSEIRDiseaseModelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType booleanArrayEDataType = 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.stem.diseasemodels.evolving.EvolvingPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private EvolvingPackageImpl() {
+ super(eNS_URI, EvolvingFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link EvolvingPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static EvolvingPackage init() {
+ if (isInited) return (EvolvingPackage)EPackage.Registry.INSTANCE.getEPackage(EvolvingPackage.eNS_URI);
+
+ // Obtain or create and register package
+ EvolvingPackageImpl theEvolvingPackage = (EvolvingPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EvolvingPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EvolvingPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ StandardPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theEvolvingPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theEvolvingPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theEvolvingPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(EvolvingPackage.eNS_URI, theEvolvingPackage);
+ return theEvolvingPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingDiseaseTransformer() {
+ return evolvingDiseaseTransformerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEvolvingDiseaseTransformer_BaseDisease() {
+ return (EReference)evolvingDiseaseTransformerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEvolvingDiseaseTransformer_EvolvedDiseases() {
+ return (EReference)evolvingDiseaseTransformerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingDiseaseTransformer_EvolutionCount() {
+ return (EAttribute)evolvingDiseaseTransformerEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingDiseaseTransformer_EvolutionCountHardLimit() {
+ return (EAttribute)evolvingDiseaseTransformerEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingDiseaseTransformer_StopAllEvolution() {
+ return (EAttribute)evolvingDiseaseTransformerEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingDiseaseModel() {
+ return evolvingDiseaseModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEvolvingDiseaseModel_ParentDisease() {
+ return (EReference)evolvingDiseaseModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEvolvingDiseaseModel_Transformer() {
+ return (EReference)evolvingDiseaseModelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEvolvingDiseaseModel_EvolvedAt() {
+ return (EReference)evolvingDiseaseModelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingDiseaseModel_EvolutionCount() {
+ return (EAttribute)evolvingDiseaseModelEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingSIDiseaseModelLabel() {
+ return evolvingSIDiseaseModelLabelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingSIDiseaseModelLabelValue() {
+ return evolvingSIDiseaseModelLabelValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingDiseaseModel_Genome() {
+ return (EAttribute)evolvingDiseaseModelEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingSIDiseaseModel() {
+ return evolvingSIDiseaseModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingSIDiseaseModel_CaseMutationRate() {
+ return (EAttribute)evolvingSIDiseaseModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingSIDiseaseModel_GenomeLength() {
+ return (EAttribute)evolvingSIDiseaseModelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingSIDiseaseModel_GeneticDistNonlinExponent() {
+ return (EAttribute)evolvingSIDiseaseModelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingSIRDiseaseModelLabel() {
+ return evolvingSIRDiseaseModelLabelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingSIRDiseaseModelLabelValue() {
+ return evolvingSIRDiseaseModelLabelValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingSIRDiseaseModel() {
+ return evolvingSIRDiseaseModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingSIRDiseaseModel_ImmunityLossRate() {
+ return (EAttribute)evolvingSIRDiseaseModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingSIRDiseaseModel_CrossImmunityRate() {
+ return (EAttribute)evolvingSIRDiseaseModelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingSEIRDiseaseModelLabel() {
+ return evolvingSEIRDiseaseModelLabelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingSEIRDiseaseModelLabelValue() {
+ return evolvingSEIRDiseaseModelLabelValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvolvingSEIRDiseaseModel() {
+ return evolvingSEIRDiseaseModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEvolvingSEIRDiseaseModel_IncubationRate() {
+ return (EAttribute)evolvingSEIRDiseaseModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getBooleanArray() {
+ return booleanArrayEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingFactory getEvolvingFactory() {
+ return (EvolvingFactory)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
+ evolvingDiseaseTransformerEClass = createEClass(EVOLVING_DISEASE_TRANSFORMER);
+ createEReference(evolvingDiseaseTransformerEClass, EVOLVING_DISEASE_TRANSFORMER__BASE_DISEASE);
+ createEReference(evolvingDiseaseTransformerEClass, EVOLVING_DISEASE_TRANSFORMER__EVOLVED_DISEASES);
+ createEAttribute(evolvingDiseaseTransformerEClass, EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT);
+ createEAttribute(evolvingDiseaseTransformerEClass, EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT_HARD_LIMIT);
+ createEAttribute(evolvingDiseaseTransformerEClass, EVOLVING_DISEASE_TRANSFORMER__STOP_ALL_EVOLUTION);
+
+ evolvingDiseaseModelEClass = createEClass(EVOLVING_DISEASE_MODEL);
+ createEReference(evolvingDiseaseModelEClass, EVOLVING_DISEASE_MODEL__PARENT_DISEASE);
+ createEReference(evolvingDiseaseModelEClass, EVOLVING_DISEASE_MODEL__TRANSFORMER);
+ createEReference(evolvingDiseaseModelEClass, EVOLVING_DISEASE_MODEL__EVOLVED_AT);
+ createEAttribute(evolvingDiseaseModelEClass, EVOLVING_DISEASE_MODEL__GENOME);
+ createEAttribute(evolvingDiseaseModelEClass, EVOLVING_DISEASE_MODEL__EVOLUTION_COUNT);
+
+ evolvingSIDiseaseModelLabelEClass = createEClass(EVOLVING_SI_DISEASE_MODEL_LABEL);
+
+ evolvingSIDiseaseModelLabelValueEClass = createEClass(EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE);
+
+ evolvingSIDiseaseModelEClass = createEClass(EVOLVING_SI_DISEASE_MODEL);
+ createEAttribute(evolvingSIDiseaseModelEClass, EVOLVING_SI_DISEASE_MODEL__CASE_MUTATION_RATE);
+ createEAttribute(evolvingSIDiseaseModelEClass, EVOLVING_SI_DISEASE_MODEL__GENOME_LENGTH);
+ createEAttribute(evolvingSIDiseaseModelEClass, EVOLVING_SI_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT);
+
+ evolvingSIRDiseaseModelLabelEClass = createEClass(EVOLVING_SIR_DISEASE_MODEL_LABEL);
+
+ evolvingSIRDiseaseModelLabelValueEClass = createEClass(EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE);
+
+ evolvingSIRDiseaseModelEClass = createEClass(EVOLVING_SIR_DISEASE_MODEL);
+ createEAttribute(evolvingSIRDiseaseModelEClass, EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE);
+ createEAttribute(evolvingSIRDiseaseModelEClass, EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE);
+
+ evolvingSEIRDiseaseModelLabelEClass = createEClass(EVOLVING_SEIR_DISEASE_MODEL_LABEL);
+
+ evolvingSEIRDiseaseModelLabelValueEClass = createEClass(EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE);
+
+ evolvingSEIRDiseaseModelEClass = createEClass(EVOLVING_SEIR_DISEASE_MODEL);
+ createEAttribute(evolvingSEIRDiseaseModelEClass, EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE);
+
+ // Create data types
+ booleanArrayEDataType = createEDataType(BOOLEAN_ARRAY);
+ }
+
+ /**
+ * <!-- 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
+ ModelPackage theModelPackage = (ModelPackage)EPackage.Registry.INSTANCE.getEPackage(ModelPackage.eNS_URI);
+ StandardPackage theStandardPackage = (StandardPackage)EPackage.Registry.INSTANCE.getEPackage(StandardPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ evolvingDiseaseTransformerEClass.getESuperTypes().add(theModelPackage.getTransformationDecorator());
+ evolvingSIDiseaseModelLabelEClass.getESuperTypes().add(theStandardPackage.getStandardDiseaseModelLabel());
+ evolvingSIDiseaseModelLabelValueEClass.getESuperTypes().add(theStandardPackage.getSILabelValue());
+ evolvingSIDiseaseModelEClass.getESuperTypes().add(theStandardPackage.getSI());
+ evolvingSIDiseaseModelEClass.getESuperTypes().add(this.getEvolvingDiseaseModel());
+ evolvingSIRDiseaseModelLabelEClass.getESuperTypes().add(theStandardPackage.getStandardDiseaseModelLabel());
+ evolvingSIRDiseaseModelLabelValueEClass.getESuperTypes().add(theStandardPackage.getSIRLabelValue());
+ evolvingSIRDiseaseModelEClass.getESuperTypes().add(this.getEvolvingSIDiseaseModel());
+ evolvingSEIRDiseaseModelLabelEClass.getESuperTypes().add(theStandardPackage.getStandardDiseaseModelLabel());
+ evolvingSEIRDiseaseModelLabelValueEClass.getESuperTypes().add(theStandardPackage.getSEIRLabelValue());
+ evolvingSEIRDiseaseModelEClass.getESuperTypes().add(this.getEvolvingSIRDiseaseModel());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(evolvingDiseaseTransformerEClass, EvolvingDiseaseTransformer.class, "EvolvingDiseaseTransformer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEvolvingDiseaseTransformer_BaseDisease(), theStandardPackage.getDiseaseModel(), null, "baseDisease", null, 1, 1, EvolvingDiseaseTransformer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEvolvingDiseaseTransformer_EvolvedDiseases(), theStandardPackage.getDiseaseModel(), null, "evolvedDiseases", null, 0, -1, EvolvingDiseaseTransformer.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingDiseaseTransformer_EvolutionCount(), ecorePackage.getEInt(), "evolutionCount", "0", 0, 1, EvolvingDiseaseTransformer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingDiseaseTransformer_EvolutionCountHardLimit(), ecorePackage.getEInt(), "evolutionCountHardLimit", "256", 0, 1, EvolvingDiseaseTransformer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingDiseaseTransformer_StopAllEvolution(), ecorePackage.getEBoolean(), "stopAllEvolution", "false", 0, 1, EvolvingDiseaseTransformer.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(evolvingDiseaseModelEClass, EvolvingDiseaseModel.class, "EvolvingDiseaseModel", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEvolvingDiseaseModel_ParentDisease(), this.getEvolvingDiseaseModel(), null, "parentDisease", null, 0, 1, EvolvingDiseaseModel.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEvolvingDiseaseModel_Transformer(), this.getEvolvingDiseaseTransformer(), null, "transformer", null, 0, 1, EvolvingDiseaseModel.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEvolvingDiseaseModel_EvolvedAt(), theStandardPackage.getDiseaseModelLabel(), null, "evolvedAt", null, 0, 1, EvolvingDiseaseModel.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingDiseaseModel_Genome(), this.getBooleanArray(), "genome", null, 0, 1, EvolvingDiseaseModel.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingDiseaseModel_EvolutionCount(), ecorePackage.getEInt(), "evolutionCount", "0", 0, 1, EvolvingDiseaseModel.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ EOperation op = addEOperation(evolvingDiseaseModelEClass, this.getEvolvingDiseaseModel(), "evolve", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, theStandardPackage.getDiseaseModelLabel(), "label", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(evolvingDiseaseModelEClass, null, "calculateEvolvedInitialState", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(evolvingDiseaseModelEClass, ecorePackage.getEDouble(), "getGeneticDistance", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getEvolvingDiseaseModel(), "otherDiseaseStrain", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(evolvingSIDiseaseModelLabelEClass, EvolvingSIDiseaseModelLabel.class, "EvolvingSIDiseaseModelLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(evolvingSIDiseaseModelLabelValueEClass, EvolvingSIDiseaseModelLabelValue.class, "EvolvingSIDiseaseModelLabelValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(evolvingSIDiseaseModelEClass, EvolvingSIDiseaseModel.class, "EvolvingSIDiseaseModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEvolvingSIDiseaseModel_CaseMutationRate(), ecorePackage.getEDouble(), "caseMutationRate", "0.00001", 0, 1, EvolvingSIDiseaseModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingSIDiseaseModel_GenomeLength(), ecorePackage.getEInt(), "genomeLength", "5", 0, 1, EvolvingSIDiseaseModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingSIDiseaseModel_GeneticDistNonlinExponent(), ecorePackage.getEDouble(), "geneticDistNonlinExponent", "1.0", 0, 1, EvolvingSIDiseaseModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(evolvingSIRDiseaseModelLabelEClass, EvolvingSIRDiseaseModelLabel.class, "EvolvingSIRDiseaseModelLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(evolvingSIRDiseaseModelLabelValueEClass, EvolvingSIRDiseaseModelLabelValue.class, "EvolvingSIRDiseaseModelLabelValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(evolvingSIRDiseaseModelEClass, EvolvingSIRDiseaseModel.class, "EvolvingSIRDiseaseModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEvolvingSIRDiseaseModel_ImmunityLossRate(), ecorePackage.getEDouble(), "immunityLossRate", "0.0", 0, 1, EvolvingSIRDiseaseModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEvolvingSIRDiseaseModel_CrossImmunityRate(), ecorePackage.getEDouble(), "crossImmunityRate", "0.75", 0, 1, EvolvingSIRDiseaseModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(evolvingSEIRDiseaseModelLabelEClass, EvolvingSEIRDiseaseModelLabel.class, "EvolvingSEIRDiseaseModelLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(evolvingSEIRDiseaseModelLabelValueEClass, EvolvingSEIRDiseaseModelLabelValue.class, "EvolvingSEIRDiseaseModelLabelValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(evolvingSEIRDiseaseModelEClass, EvolvingSEIRDiseaseModel.class, "EvolvingSEIRDiseaseModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEvolvingSEIRDiseaseModel_IncubationRate(), ecorePackage.getEDouble(), "incubationRate", "0.0", 0, 1, EvolvingSEIRDiseaseModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize data types
+ initEDataType(booleanArrayEDataType, boolean[].class, "BooleanArray", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/stem/modelgen/generated
+ createGeneratedAnnotations();
+ // http:///org/eclipse/stem/modelgen/metamodel
+ createMetamodelAnnotations();
+ // http:///org/eclipse/stem/modelgen/model/label
+ createLabelAnnotations();
+ // http:///org/eclipse/stem/modelgen/model/labelvalue
+ createLabelvalueAnnotations();
+ // http:///org/eclipse/stem/modelgen/model/adapters
+ createAdaptersAnnotations();
+ // http:///org/eclipse/stem/modelgen/modelparam/constraints
+ createConstraintsAnnotations();
+ // http:///org/eclipse/stem/modelgen/modelparam/messages
+ createMessagesAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/generated</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createGeneratedAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/generated";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingSIDiseaseModelLabelEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingSIDiseaseModelLabelValueEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingSIDiseaseModelEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingSIRDiseaseModelLabelEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingSIRDiseaseModelLabelValueEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingSIRDiseaseModelEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingSIRDiseaseModel_ImmunityLossRate(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingSEIRDiseaseModelLabelEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingSEIRDiseaseModelLabelValueEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (evolvingSEIRDiseaseModelEClass,
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ addAnnotation
+ (getEvolvingSEIRDiseaseModel_IncubationRate(),
+ source,
+ new String[] {
+ "version", "1.0"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/metamodel</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createMetamodelAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/metamodel";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "uri", "platform:/resource/org.eclipse.stem.diseasemodels.evolving/model/evolving.metamodel"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/model/label</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createLabelAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/model/label";
+ addAnnotation
+ (evolvingSIDiseaseModelEClass,
+ source,
+ new String[] {
+ "*", "EvolvingSIDiseaseModelLabel"
+ });
+ addAnnotation
+ (evolvingSIRDiseaseModelEClass,
+ source,
+ new String[] {
+ "*", "EvolvingSIRDiseaseModelLabel"
+ });
+ addAnnotation
+ (evolvingSEIRDiseaseModelEClass,
+ source,
+ new String[] {
+ "*", "EvolvingSEIRDiseaseModelLabel"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/model/labelvalue</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createLabelvalueAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/model/labelvalue";
+ addAnnotation
+ (evolvingSIDiseaseModelEClass,
+ source,
+ new String[] {
+ "*", "EvolvingSIDiseaseModelLabelValue"
+ });
+ addAnnotation
+ (evolvingSIRDiseaseModelEClass,
+ source,
+ new String[] {
+ "*", "EvolvingSIRDiseaseModelLabelValue"
+ });
+ addAnnotation
+ (evolvingSEIRDiseaseModelEClass,
+ source,
+ new String[] {
+ "*", "EvolvingSEIRDiseaseModelLabelValue"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/model/adapters</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createAdaptersAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/model/adapters";
+ addAnnotation
+ (evolvingSIDiseaseModelEClass,
+ source,
+ new String[] {
+ "propertyEditorSuperClass", "org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditor",
+ "stringProviderSuperClass", "org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter",
+ "labelRelativeValueProviderSuperClass", "org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider",
+ "labelValueRelativeValueProviderSuperClass", "org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider"
+ });
+ addAnnotation
+ (evolvingSIRDiseaseModelEClass,
+ source,
+ new String[] {
+ "propertyEditorSuperClass", "org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditor",
+ "stringProviderSuperClass", "org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter",
+ "labelRelativeValueProviderSuperClass", "org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider",
+ "labelValueRelativeValueProviderSuperClass", "org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider"
+ });
+ addAnnotation
+ (evolvingSEIRDiseaseModelEClass,
+ source,
+ new String[] {
+ "propertyEditorSuperClass", "org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditor",
+ "stringProviderSuperClass", "org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter",
+ "labelRelativeValueProviderSuperClass", "org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider",
+ "labelValueRelativeValueProviderSuperClass", "org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/modelparam/constraints</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createConstraintsAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/modelparam/constraints";
+ addAnnotation
+ (getEvolvingSIRDiseaseModel_ImmunityLossRate(),
+ source,
+ new String[] {
+ "minValue", "0.0",
+ "maxValue", "1.0"
+ });
+ addAnnotation
+ (getEvolvingSEIRDiseaseModel_IncubationRate(),
+ source,
+ new String[] {
+ "minValue", "0.0",
+ "maxValue", "1.0"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/stem/modelgen/modelparam/messages</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createMessagesAnnotations() {
+ String source = "http:///org/eclipse/stem/modelgen/modelparam/messages";
+ addAnnotation
+ (getEvolvingSIRDiseaseModel_ImmunityLossRate(),
+ source,
+ new String[] {
+ "name", "Immunity Loss Rate"
+ });
+ addAnnotation
+ (getEvolvingSEIRDiseaseModel_IncubationRate(),
+ source,
+ new String[] {
+ "name", "Incubation Rate"
+ });
+ }
+
+} //EvolvingPackageImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSEIRDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSEIRDiseaseModelImpl.java
new file mode 100644
index 0000000..4683ef5
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSEIRDiseaseModelImpl.java
@@ -0,0 +1,553 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.stem.core.graph.DynamicLabel;
+import org.eclipse.stem.core.graph.Exchange;
+import org.eclipse.stem.core.graph.ExchangePool;
+import org.eclipse.stem.core.graph.ExchangeType;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.Node;
+import org.eclipse.stem.core.graph.NodeLabel;
+import org.eclipse.stem.core.model.Decorator;
+import org.eclipse.stem.core.model.STEMTime;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingFactory;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.SEIRLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardPackage;
+import org.eclipse.stem.diseasemodels.standard.impl.SEIRLabelValueImpl;
+import org.eclipse.stem.interventions.StandardInterventionLabel;
+import org.eclipse.stem.interventions.StandardInterventionLabelValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SEIR Disease Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSEIRDiseaseModelImpl#getIncubationRate <em>Incubation Rate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingSEIRDiseaseModelImpl extends EvolvingSIRDiseaseModelImpl implements EvolvingSEIRDiseaseModel {
+ /**
+ * The default value of the '{@link #getIncubationRate() <em>Incubation Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncubationRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double INCUBATION_RATE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getIncubationRate() <em>Incubation Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncubationRate()
+ * @generated
+ * @ordered
+ */
+ protected double incubationRate = INCUBATION_RATE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSEIRDiseaseModelImpl() {
+ super();
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingPackage.Literals.EVOLVING_SEIR_DISEASE_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getIncubationRate() {
+ return incubationRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIncubationRate(double newIncubationRate) {
+ incubationRate = newIncubationRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE:
+ return getIncubationRate();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE:
+ setIncubationRate((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE:
+ setIncubationRate(INCUBATION_RATE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE:
+ return incubationRate != INCUBATION_RATE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (incubationRate: ");
+ result.append(incubationRate);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * @see org.eclipse.stem.diseasemodels.standard.impl.SIImpl#computeDiseaseDeltas(StandardDiseaseModelLabelValue,
+ * StandardDiseaseModelLabel, long)
+ * @generated NOT
+ */
+ @Override
+ public void calculateDeltas(STEMTime time, double t, long timeDelta, EList<DynamicLabel> labels) {
+
+
+ final double adjustedInfectiousMortalityRate = getAdjustedInfectiousMortalityRate(timeDelta);
+ double transmissionRate = getAdjustedTransmissionRate(timeDelta);
+ final double adjustedRecoveryRate = getAdjustedRecoveryRate(timeDelta);
+ final double adjustedImmunityLossRate = getAdjustedImmunityLossRate(timeDelta);
+ final double adjustedIncubationRate = getAdjustedIncubationRate(timeDelta);
+
+ for(int _i=0;_i<labels.size();++_i) {
+ final DynamicLabel label = labels.get(_i);
+ IntegrationLabel ilabel = (IntegrationLabel)label;
+
+ StandardDiseaseModelLabel diseaseLabel = (StandardDiseaseModelLabel)ilabel;
+ StandardDiseaseModelLabelValue currentState = (StandardDiseaseModelLabelValue)ilabel.getProbeValue();
+ StandardDiseaseModelLabelValue deltaValue = (StandardDiseaseModelLabelValue)ilabel.getDeltaValue();
+
+ deltaValue.reset();
+
+ final SEIRLabelValue currentSEIR = (SEIRLabelValue) currentState;
+
+ // Compute deaths
+
+ final double diseaseDeaths = adjustedInfectiousMortalityRate
+ * currentSEIR.getI();
+
+
+
+ if(!this.isFrequencyDependent()) transmissionRate = transmissionRate * getTransmissionRateScaleFactor(diseaseLabel);
+
+
+ // The effective Infectious population is a dimensionles number normalize by total
+ // population used in teh computation of bets*S*i where i = Ieffective/Pop.
+ // This includes a correction to the current
+ // infectious population (Ieffective) based on the conserved exchange of people (circulation)
+ // between regions. Note that this is no the "arrivals" and "departures" which are
+ // a different process.
+ final double effectiveInfectious = getNormalizedEffectiveInfectious(diseaseLabel.getNode(), diseaseLabel, currentSEIR.getI(), StandardPackage.Literals.SI_LABEL_VALUE__I, StandardPackage.Literals.STANDARD_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE, StandardPackage.Literals.STANDARD_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION);
+
+ /*
+ * Compute state transitions
+ *
+ * Regarding computing the number of transitions from Susceptible to Exposed:
+ * In a linear model the "effective" number of infectious people is just
+ * the number of infectious people In a nonlinear model we have a
+ * nonLinearity exponent that is > 1 this models the effect of immune
+ * system saturation when Susceptible people are exposed to large
+ * numbers of infectious people. then the "effective" number of
+ * infectious people is I^nonLinearity exponent to allow for either
+ * linear or nonlinear models we always calculate I^nonLinearity
+ * exponent and allow nonLinearity exponent >= 1.0
+ */
+ double numberOfInfectedToRecovered = adjustedRecoveryRate
+ * currentSEIR.getI();
+ double numberOfRecoveredToSusceptible = adjustedImmunityLossRate
+ * currentSEIR.getR();
+ // Need to checked what do do here. If non linear coefficient is not 1 and
+ // the effective infectious is negative (which is possible), what do do?
+ // Let's fall back on the linear method for now.
+
+ ////////////////////////////////////////////////////
+ // ******* EVOLVING DISEASE MODEL *************** //
+ //
+ // Si* = Si ∏_(j≠i) 〖[1-χji (Rj/N〗)]
+ //
+ double effectiveSusceptible = currentSEIR.getS();
+ double popCount = currentSEIR.getS()+currentSEIR.getE()+currentSEIR.getI()+currentSEIR.getR();
+ double crossProduct = 1.0;
+ if((crossImmunityRate>0.0)&&(effectiveSusceptible>1)) {
+ // NEED TO CORRECT SUSCEPTIBLES BASED ON CROSS STRAIN IMMUNITY //
+ Node thisNode = diseaseLabel.getNode();
+ EList<NodeLabel> allLabels = thisNode.getLabels();
+ for(NodeLabel nl:allLabels) {
+ if(nl instanceof EvolvingSEIRDiseaseModelLabel) {
+ EvolvingSEIRDiseaseModelLabel seirLabel = (EvolvingSEIRDiseaseModelLabel) nl;
+ Decorator otherDisease = seirLabel.getDecorator();
+ if(otherDisease instanceof EvolvingSEIRDiseaseModel) {
+ // should always be true
+ EvolvingSEIRDiseaseModel otherSEIRDiease = (EvolvingSEIRDiseaseModel)otherDisease;
+ if(!otherSEIRDiease.getDiseaseName().equals(this.getDiseaseName())) {
+ // ie NOT this DISEASE
+ EvolvingSEIRDiseaseModelLabelValue otherValue = (EvolvingSEIRDiseaseModelLabelValue)seirLabel.getCurrentValue();
+
+
+ double immuneTerm = otherValue.getR()/popCount;
+
+ // the genetic distance is based on comparing the 2 genomes. Each letter gives a difference of 1
+ // the crossImmunityRate is the crossImmunity with 1 nt different
+ double geneticDistance = getGeneticDistance(otherSEIRDiease);
+
+ // for a center of mass distance model uncomment the following....
+ // double geneticDistance *= getCMdistance(otherSEIR);
+
+ if(geneticDistance >= 1 ) {
+ immuneTerm *= (crossImmunityRate/ geneticDistance);
+ }
+
+
+ crossProduct *= (1.0-immuneTerm);
+ // prevent round off error
+ if(crossProduct < 0) {
+ crossProduct = 0.0; // round off error
+ }
+
+
+ }
+ }
+ }
+ }
+ }
+ effectiveSusceptible *= crossProduct;
+ //System.out.println("S = "+currentSEIR.getS()+" crossProduct = "+crossProduct+" Seffective = "+effectiveSusceptible);
+
+
+
+
+ double numberOfSusceptibleToExposed = 0.0;
+ if(getNonLinearityCoefficient() != 1.0 && effectiveInfectious >=0.0)
+ numberOfSusceptibleToExposed = transmissionRate
+ * effectiveSusceptible* Math.pow(effectiveInfectious, getNonLinearityCoefficient());
+ else
+ numberOfSusceptibleToExposed = transmissionRate
+ * effectiveSusceptible* effectiveInfectious;
+
+
+
+
+ // ******* EVOLVING DISEASE MODEL *************** //
+ ////////////////////////////////////////////////////
+
+
+
+ double numberOfExposedToInfectious =adjustedIncubationRate
+ * currentSEIR.getE();
+
+
+ // Determine delta S
+ double deltaS = numberOfRecoveredToSusceptible - numberOfSusceptibleToExposed;
+ // Determine delta E
+ double deltaE = numberOfSusceptibleToExposed - numberOfExposedToInfectious;
+ // Determine delta I
+ double deltaI = numberOfExposedToInfectious - numberOfInfectedToRecovered - diseaseDeaths;
+ // Determine delta R
+ double deltaR = numberOfInfectedToRecovered - numberOfRecoveredToSusceptible;
+
+ StandardInterventionLabel scl = findInterventionLabel((Node)diseaseLabel.getIdentifiable());
+ if(scl != null) {
+ double vaccinations = ((StandardInterventionLabelValue)scl.getCurrentValue()).getVaccinations();
+ double isolations = ((StandardInterventionLabelValue)scl.getCurrentValue()).getIsolations();
+ vaccinations *= ((double) timeDelta / (double) getTimePeriod());
+ isolations *= ((double) timeDelta / (double) getTimePeriod());
+ if(currentSEIR.getS() < vaccinations) vaccinations = currentSEIR.getS();
+ if(currentSEIR.getI() < isolations) isolations = currentSEIR.getI();
+
+ deltaS -= vaccinations;
+ deltaR += vaccinations;
+ deltaI -= isolations;
+ deltaR += isolations;
+ }
+
+
+
+ /////////////////////////////////////////////////////////////////////////////
+ // added to express the transitions. Necessary to support stochastic modeling
+ // S->E
+ Exchange seExchange = (Exchange)ExchangePool.POOL.get();
+ seExchange.setSource(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_S());
+ seExchange.setTarget(StandardPackage.eINSTANCE.getSEIRLabelValue_E());
+ seExchange.setCount(numberOfSusceptibleToExposed);
+ seExchange.getForIncidence().add(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_Incidence());
+ seExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(seExchange);
+
+ // E->I
+ Exchange eiExchange = (Exchange)ExchangePool.POOL.get();
+ eiExchange.setSource(StandardPackage.eINSTANCE.getSEIRLabelValue_E());
+ eiExchange.setTarget(StandardPackage.eINSTANCE.getSILabelValue_I());
+ eiExchange.setCount(numberOfExposedToInfectious);
+ eiExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(eiExchange);
+
+ // I->R
+ Exchange irExchange = (Exchange)ExchangePool.POOL.get();
+ irExchange.setSource(StandardPackage.eINSTANCE.getSILabelValue_I());
+ irExchange.setTarget(StandardPackage.eINSTANCE.getSIRLabelValue_R());
+ irExchange.setCount(numberOfInfectedToRecovered);
+ irExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(irExchange);
+
+ // R->S
+ Exchange rsExchange = (Exchange)ExchangePool.POOL.get();
+ rsExchange.setSource(StandardPackage.eINSTANCE.getSIRLabelValue_R());
+ rsExchange.setTarget(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_S());
+ rsExchange.setCount(numberOfRecoveredToSusceptible);
+ rsExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(rsExchange);
+ // added to express the transitions. Necessary to support stochastic modeling
+ /////////////////////////////////////////////////////////////////////////////
+
+
+ SEIRLabelValueImpl ret = (SEIRLabelValueImpl)deltaValue;
+ ret.setS(deltaS);
+ ret.setE(deltaE);
+ ret.setI(deltaI);
+ ret.setIncidence(numberOfSusceptibleToExposed);
+ ret.setR(deltaR);
+ ret.setDiseaseDeaths(diseaseDeaths);
+
+ computeAdditionalDeltasAndExchanges(ilabel, time, t, timeDelta);
+ }
+
+ } // computeDiseaseDeltas
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void calculateEvolvedInitialState() {
+
+ EvolvingSEIRDiseaseModel parentDiseaseModel = (EvolvingSEIRDiseaseModel)getParentDisease();
+ DiseaseModelLabel parentEvolutionSource = getEvolvedAt();
+ if (parentDiseaseModel == null && parentEvolutionSource == null) {
+ // The evolution wasn't initialized correctly.
+ // This should be unreachable but who knows.
+ System.err.println("Trying to calculate label state from an improperly initialized evolved model. Do something.");
+ return;
+ }
+
+ Node currentNode = parentEvolutionSource.getNode();
+ URI evolutionLocation = currentNode.getURI();
+
+// // Matt, we have not decorated the graph at this point right??
+ for (DynamicLabel dl : this.getLabelsToUpdate()) {
+ if (dl instanceof EvolvingSEIRDiseaseModelLabel) {
+ double s = 0.0;
+ double e = 0.0;
+ double i = 0.0;
+ double r = 0.0;
+ double diseaseDeaths = 0.0;
+
+ // this is the new label we need to set
+ EvolvingSEIRDiseaseModelLabel childLabel = (EvolvingSEIRDiseaseModelLabel)dl;
+ EvolvingSEIRDiseaseModelLabelValue childLabelValues = (EvolvingSEIRDiseaseModelLabelValue)childLabel.getCurrentValue();
+ // this is the new label we need to set
+ EvolvingSEIRDiseaseModelLabel parentSEIRlabel = (EvolvingSEIRDiseaseModelLabel) parentEvolutionSource;
+ // same parent population
+ childLabel.setPopulationLabel(parentSEIRlabel.getPopulationLabel());
+ childLabel.setPopulationModelLabel(parentSEIRlabel.getPopulationModelLabel());
+ // get the parent label value - we need this to know the current population
+ EvolvingSEIRDiseaseModelLabelValue lv = (EvolvingSEIRDiseaseModelLabelValue)parentSEIRlabel.getCurrentValue();
+ double popCount = lv.getPopulationCount();
+ s = popCount;
+
+
+ // Do something interesting here to initialize disease state
+ // TODO performance question
+ // TODO we are looking through the entire graphs to find THIS label.
+ if (childLabel.getNode().getURI().equals(evolutionLocation)) {
+ // This is where the evolution happened, so you probably need to set your
+ // infectious state differently
+ //System.out.println("initializing child disease at evolution location "+evolutionLocation.lastSegment());
+ if(parentEvolutionSource instanceof EvolvingSEIRDiseaseModelLabel) {
+ // should be true
+ if(popCount > 1.0) {
+ // init the child diseases values
+ e = 1.0;
+ s = s - 1.0;
+ //System.err.println("!!! Evolving SEIR Mutation !!! at "+evolutionLocation.lastSegment());
+ } else {
+ System.err.println("Likely ERROR: Zero population detected on node "+currentNode.getURI().lastSegment()+" ... Do something.");
+ }
+ }
+
+ } else {
+ // This is everywhere else
+ // for now we are already set
+ } // if else
+
+ childLabelValues.setS(s);
+ childLabelValues.setE(e);
+ childLabelValues.setI(i);
+ childLabelValues.setR(r);
+ childLabelValues.setDiseaseDeaths(diseaseDeaths);
+ }
+ }
+ }
+
+ /**
+ * This method is called when a disease model mutates back into itself
+ * @generated NOT
+ */
+ protected void updateDuplicateEvolvedInitialState(Node currentNode) {
+ URI evolutionLocation = currentNode.getURI();
+
+// // Matt, we have not decorated the graph at this point right??
+ for (DynamicLabel dl : this.getLabelsToUpdate()) {
+ if (dl instanceof EvolvingSEIRDiseaseModelLabel) {
+
+ // this is the new label we need to set
+ EvolvingSEIRDiseaseModelLabel diseaseLabel = (EvolvingSEIRDiseaseModelLabel)dl;
+ EvolvingSEIRDiseaseModelLabelValue childLabelValues = (EvolvingSEIRDiseaseModelLabelValue)diseaseLabel.getCurrentValue();
+ double s = childLabelValues.getS();
+ double e = childLabelValues.getE();
+ double i = childLabelValues.getI();
+ double r = childLabelValues.getR();
+ double diseaseDeaths = childLabelValues.getDiseaseDeaths();
+
+ // Do something interesting here to initialize disease state
+ // TODO performance question
+ // TODO we are looking through the entire graphs to find THIS label.
+ if (diseaseLabel.getNode().getURI().equals(evolutionLocation)) {
+ // This is where the evolution happened, so you probably need to set your
+ // infectious state differently
+ //System.out.println("initializing child disease a
+
+ if(s > 2.0) {
+ // init the child diseases values
+ e = 1.0;
+ s = s - 1.0;
+ //System.err.println("!!! Evolving SEIR Mutation !!! at "+evolutionLocation.lastSegment());
+ } else {
+ //System.err.println("Likely ERROR: Zero population detected on node "+currentNode.getURI().lastSegment()+" ... Do something.");
+ }
+ } else {
+ // This is everywhere else
+ // for now we are already set
+ } // if else
+
+ childLabelValues.setS(s);
+ childLabelValues.setE(e);
+ childLabelValues.setI(i);
+ childLabelValues.setR(r);
+ childLabelValues.setDiseaseDeaths(diseaseDeaths);
+ }
+ }
+ }
+
+
+ protected double getAdjustedIncubationRate(long timeDelta) {
+ return getIncubationRate()
+ * ((double) timeDelta / (double) getTimePeriod());
+ } // getAdjustedIncubationRate
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DiseaseModelLabel createDiseaseModelLabel(String populationIdentifier) {
+ DiseaseModelLabel label = EvolvingFactory.eINSTANCE.createEvolvingSEIRDiseaseModelLabel();
+ label.setTypeURI(DiseaseModelLabel.URI_TYPE_DYNAMIC_DISEASE_LABEL);
+
+ return label;
+ } // createDiseaseModelLabel
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DiseaseModelLabelValue createDiseaseModelLabelValue(String populationIdentifier) {
+ return EvolvingFactory.eINSTANCE.createEvolvingSEIRDiseaseModelLabelValue();
+ }
+
+
+} //EvolvingSEIRDiseaseModelImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSEIRDiseaseModelLabelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSEIRDiseaseModelLabelImpl.java
new file mode 100644
index 0000000..773c76f
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSEIRDiseaseModelLabelImpl.java
@@ -0,0 +1,52 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingFactory;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelLabelImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SEIR Disease Model Label</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated NOT
+ */
+public class EvolvingSEIRDiseaseModelLabelImpl extends StandardDiseaseModelLabelImpl implements EvolvingSEIRDiseaseModelLabel {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSEIRDiseaseModelLabelImpl() {
+ super();
+ setCurrentValue(EvolvingFactory.eINSTANCE.createEvolvingSEIRDiseaseModelLabelValue());
+ setNextValue(EvolvingFactory.eINSTANCE.createEvolvingSEIRDiseaseModelLabelValue());
+ setTempValue(EvolvingFactory.eINSTANCE.createEvolvingSEIRDiseaseModelLabelValue());
+ setProbeValue(EvolvingFactory.eINSTANCE.createEvolvingSEIRDiseaseModelLabelValue());
+ setErrorScale(EvolvingFactory.eINSTANCE.createEvolvingSEIRDiseaseModelLabelValue());
+ setDeltaValue(EvolvingFactory.eINSTANCE.createEvolvingSEIRDiseaseModelLabelValue());
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingPackage.Literals.EVOLVING_SEIR_DISEASE_MODEL_LABEL;
+ }
+
+
+
+
+} //EvolvingSEIRDiseaseModelLabelImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSEIRDiseaseModelLabelValueImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSEIRDiseaseModelLabelValueImpl.java
new file mode 100644
index 0000000..f21d434
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSEIRDiseaseModelLabelValueImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.impl.SEIRLabelValueImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SEIR Disease Model Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingSEIRDiseaseModelLabelValueImpl extends SEIRLabelValueImpl implements EvolvingSEIRDiseaseModelLabelValue {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSEIRDiseaseModelLabelValueImpl() {
+ super();
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingPackage.Literals.EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE;
+ }
+
+
+} //EvolvingSEIRDiseaseModelLabelValueImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIDiseaseModelImpl.java
new file mode 100644
index 0000000..3954122
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIDiseaseModelImpl.java
@@ -0,0 +1,981 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import java.util.Arrays;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.stem.core.graph.DynamicLabel;
+import org.eclipse.stem.core.graph.Exchange;
+import org.eclipse.stem.core.graph.ExchangePool;
+import org.eclipse.stem.core.graph.ExchangeType;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.Node;
+import org.eclipse.stem.core.model.Model;
+import org.eclipse.stem.core.model.STEMTime;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingFactory;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.SILabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardPackage;
+import org.eclipse.stem.diseasemodels.standard.impl.SIImpl;
+import org.eclipse.stem.diseasemodels.standard.impl.SILabelValueImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SI Disease Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl#getParentDisease <em>Parent Disease</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl#getTransformer <em>Transformer</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl#getEvolvedAt <em>Evolved At</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl#getGenome <em>Genome</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl#getEvolutionCount <em>Evolution Count</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl#getCaseMutationRate <em>Case Mutation Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl#getGenomeLength <em>Genome Length</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIDiseaseModelImpl#getGeneticDistNonlinExponent <em>Genetic Dist Nonlin Exponent</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingSIDiseaseModelImpl extends SIImpl implements EvolvingSIDiseaseModel {
+ /**
+ * The cached value of the '{@link #getParentDisease() <em>Parent Disease</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParentDisease()
+ * @generated
+ * @ordered
+ */
+ protected EvolvingDiseaseModel parentDisease;
+ /**
+ * The cached value of the '{@link #getTransformer() <em>Transformer</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransformer()
+ * @generated
+ * @ordered
+ */
+ protected EvolvingDiseaseTransformer transformer;
+ /**
+ * The cached value of the '{@link #getEvolvedAt() <em>Evolved At</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvolvedAt()
+ * @generated
+ * @ordered
+ */
+ protected DiseaseModelLabel evolvedAt;
+ /**
+ * The default value of the '{@link #getGenome() <em>Genome</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenome()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean[] GENOME_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getGenome() <em>Genome</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenome()
+ * @generated
+ * @ordered
+ */
+ protected boolean[] genome = GENOME_EDEFAULT;
+ /**
+ * The default value of the '{@link #getEvolutionCount() <em>Evolution Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvolutionCount()
+ * @generated
+ * @ordered
+ */
+ protected static final int EVOLUTION_COUNT_EDEFAULT = 0;
+ /**
+ * The cached value of the '{@link #getEvolutionCount() <em>Evolution Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEvolutionCount()
+ * @generated
+ * @ordered
+ */
+ protected int evolutionCount = EVOLUTION_COUNT_EDEFAULT;
+ /**
+ * The default value of the '{@link #getCaseMutationRate() <em>Case Mutation Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCaseMutationRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double CASE_MUTATION_RATE_EDEFAULT = 1.0E-5;
+ /**
+ * The cached value of the '{@link #getCaseMutationRate() <em>Case Mutation Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCaseMutationRate()
+ * @generated
+ * @ordered
+ */
+ protected double caseMutationRate = CASE_MUTATION_RATE_EDEFAULT;
+ /**
+ * The default value of the '{@link #getGenomeLength() <em>Genome Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenomeLength()
+ * @generated
+ * @ordered
+ */
+ protected static final int GENOME_LENGTH_EDEFAULT = 5;
+ /**
+ * The cached value of the '{@link #getGenomeLength() <em>Genome Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenomeLength()
+ * @generated
+ * @ordered
+ */
+ protected int genomeLength = GENOME_LENGTH_EDEFAULT;
+ /**
+ * The default value of the '{@link #getGeneticDistNonlinExponent() <em>Genetic Dist Nonlin Exponent</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGeneticDistNonlinExponent()
+ * @generated
+ * @ordered
+ */
+ protected static final double GENETIC_DIST_NONLIN_EXPONENT_EDEFAULT = 1.0;
+ /**
+ * The cached value of the '{@link #getGeneticDistNonlinExponent() <em>Genetic Dist Nonlin Exponent</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGeneticDistNonlinExponent()
+ * @generated
+ * @ordered
+ */
+ protected double geneticDistNonlinExponent = GENETIC_DIST_NONLIN_EXPONENT_EDEFAULT;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EvolvingSIDiseaseModelImpl() {
+ super();
+ setTransformer(new EvolvingDiseaseTransformerImpl());
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingPackage.Literals.EVOLVING_SI_DISEASE_MODEL;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingDiseaseModel getParentDisease() {
+ if (parentDisease != null && parentDisease.eIsProxy()) {
+ InternalEObject oldParentDisease = (InternalEObject)parentDisease;
+ parentDisease = (EvolvingDiseaseModel)eResolveProxy(oldParentDisease);
+ if (parentDisease != oldParentDisease) {
+ }
+ }
+ return parentDisease;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingDiseaseModel basicGetParentDisease() {
+ return parentDisease;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentDisease(EvolvingDiseaseModel newParentDisease) {
+ parentDisease = newParentDisease;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingDiseaseTransformer getTransformer() {
+ if (transformer != null && transformer.eIsProxy()) {
+ InternalEObject oldTransformer = (InternalEObject)transformer;
+ transformer = (EvolvingDiseaseTransformer)eResolveProxy(oldTransformer);
+ if (transformer != oldTransformer) {
+ }
+ }
+ return transformer;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingDiseaseTransformer basicGetTransformer() {
+ return transformer;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTransformer(EvolvingDiseaseTransformer newTransformer) {
+ transformer = newTransformer;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DiseaseModelLabel getEvolvedAt() {
+ if (evolvedAt != null && evolvedAt.eIsProxy()) {
+ InternalEObject oldEvolvedAt = (InternalEObject)evolvedAt;
+ evolvedAt = (DiseaseModelLabel)eResolveProxy(oldEvolvedAt);
+ if (evolvedAt != oldEvolvedAt) {
+ }
+ }
+ return evolvedAt;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DiseaseModelLabel basicGetEvolvedAt() {
+ return evolvedAt;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEvolvedAt(DiseaseModelLabel newEvolvedAt) {
+ evolvedAt = newEvolvedAt;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getEvolutionCount() {
+ return evolutionCount;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEvolutionCount(int newEvolutionCount) {
+ evolutionCount = newEvolutionCount;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getCaseMutationRate() {
+ return caseMutationRate;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCaseMutationRate(double newCaseMutationRate) {
+ caseMutationRate = newCaseMutationRate;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getGenomeLength() {
+ return genomeLength;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGenomeLength(int newGenomeLength) {
+ genomeLength = newGenomeLength;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getGeneticDistNonlinExponent() {
+ return geneticDistNonlinExponent;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGeneticDistNonlinExponent(double newGeneticDistNonlinExponent) {
+ geneticDistNonlinExponent = newGeneticDistNonlinExponent;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean[] getGenome() {
+ if (genome == null) {
+ genome = new boolean[genomeLength];
+ for(int i = 0; i < genome.length; i ++) {
+ genome[i] = true;
+ }
+ }
+ return genome;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGenome(boolean[] newGenome) {
+ genome = newGenome;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__PARENT_DISEASE:
+ if (resolve) return getParentDisease();
+ return basicGetParentDisease();
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__TRANSFORMER:
+ if (resolve) return getTransformer();
+ return basicGetTransformer();
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLVED_AT:
+ if (resolve) return getEvolvedAt();
+ return basicGetEvolvedAt();
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME:
+ return getGenome();
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLUTION_COUNT:
+ return getEvolutionCount();
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__CASE_MUTATION_RATE:
+ return getCaseMutationRate();
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME_LENGTH:
+ return getGenomeLength();
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT:
+ return getGeneticDistNonlinExponent();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__PARENT_DISEASE:
+ setParentDisease((EvolvingDiseaseModel)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__TRANSFORMER:
+ setTransformer((EvolvingDiseaseTransformer)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLVED_AT:
+ setEvolvedAt((DiseaseModelLabel)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME:
+ setGenome((boolean[])newValue);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLUTION_COUNT:
+ setEvolutionCount((Integer)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__CASE_MUTATION_RATE:
+ setCaseMutationRate((Double)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME_LENGTH:
+ setGenomeLength((Integer)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT:
+ setGeneticDistNonlinExponent((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__PARENT_DISEASE:
+ setParentDisease((EvolvingDiseaseModel)null);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__TRANSFORMER:
+ setTransformer((EvolvingDiseaseTransformer)null);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLVED_AT:
+ setEvolvedAt((DiseaseModelLabel)null);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME:
+ setGenome(GENOME_EDEFAULT);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLUTION_COUNT:
+ setEvolutionCount(EVOLUTION_COUNT_EDEFAULT);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__CASE_MUTATION_RATE:
+ setCaseMutationRate(CASE_MUTATION_RATE_EDEFAULT);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME_LENGTH:
+ setGenomeLength(GENOME_LENGTH_EDEFAULT);
+ return;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT:
+ setGeneticDistNonlinExponent(GENETIC_DIST_NONLIN_EXPONENT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__PARENT_DISEASE:
+ return parentDisease != null;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__TRANSFORMER:
+ return transformer != null;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLVED_AT:
+ return evolvedAt != null;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME:
+ return GENOME_EDEFAULT == null ? genome != null : !GENOME_EDEFAULT.equals(genome);
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLUTION_COUNT:
+ return evolutionCount != EVOLUTION_COUNT_EDEFAULT;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__CASE_MUTATION_RATE:
+ return caseMutationRate != CASE_MUTATION_RATE_EDEFAULT;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME_LENGTH:
+ return genomeLength != GENOME_LENGTH_EDEFAULT;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT:
+ return geneticDistNonlinExponent != GENETIC_DIST_NONLIN_EXPONENT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == EvolvingDiseaseModel.class) {
+ switch (derivedFeatureID) {
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__PARENT_DISEASE: return EvolvingPackage.EVOLVING_DISEASE_MODEL__PARENT_DISEASE;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__TRANSFORMER: return EvolvingPackage.EVOLVING_DISEASE_MODEL__TRANSFORMER;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLVED_AT: return EvolvingPackage.EVOLVING_DISEASE_MODEL__EVOLVED_AT;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME: return EvolvingPackage.EVOLVING_DISEASE_MODEL__GENOME;
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLUTION_COUNT: return EvolvingPackage.EVOLVING_DISEASE_MODEL__EVOLUTION_COUNT;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == EvolvingDiseaseModel.class) {
+ switch (baseFeatureID) {
+ case EvolvingPackage.EVOLVING_DISEASE_MODEL__PARENT_DISEASE: return EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__PARENT_DISEASE;
+ case EvolvingPackage.EVOLVING_DISEASE_MODEL__TRANSFORMER: return EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__TRANSFORMER;
+ case EvolvingPackage.EVOLVING_DISEASE_MODEL__EVOLVED_AT: return EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLVED_AT;
+ case EvolvingPackage.EVOLVING_DISEASE_MODEL__GENOME: return EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME;
+ case EvolvingPackage.EVOLVING_DISEASE_MODEL__EVOLUTION_COUNT: return EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLUTION_COUNT;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (genome: ");
+ result.append(genome);
+ result.append(", evolutionCount: ");
+ result.append(evolutionCount);
+ result.append(", caseMutationRate: ");
+ result.append(caseMutationRate);
+ result.append(", genomeLength: ");
+ result.append(genomeLength);
+ result.append(", geneticDistNonlinExponent: ");
+ result.append(geneticDistNonlinExponent);
+ result.append(')');
+ return result.toString();
+ }
+
+
+ /**
+ * @see org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelImpl#computeTransitions(org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue,
+ * long, double, long)
+ * @generated NOT
+ */
+ @Override
+ public void calculateDeltas(STEMTime time, double t, long timeDelta, EList<DynamicLabel> labels) {
+
+
+ final double adjustedInfectiousMortalityRate = getAdjustedInfectiousMortalityRate(timeDelta);
+ double transmissionRate = getAdjustedTransmissionRate(timeDelta);
+ final double adjustedRecoveryRate = getAdjustedRecoveryRate(timeDelta);
+
+ for(int _i=0;_i<labels.size();++_i) {
+ final DynamicLabel label = labels.get(_i);
+ IntegrationLabel ilabel = (IntegrationLabel)label;
+
+ StandardDiseaseModelLabel diseaseLabel = (StandardDiseaseModelLabel)ilabel;
+ StandardDiseaseModelLabelValue currentState = (StandardDiseaseModelLabelValue)ilabel.getProbeValue();
+ StandardDiseaseModelLabelValue deltaValue = (StandardDiseaseModelLabelValue)ilabel.getDeltaValue();
+
+ deltaValue.reset();
+
+ final SILabelValue currentSI = (SILabelValue) currentState;
+
+ // Compute deaths
+
+ final double diseaseDeaths = adjustedInfectiousMortalityRate
+ * currentSI.getI();
+
+ // This is beta*
+
+
+ if(!this.isFrequencyDependent()) transmissionRate *= getTransmissionRateScaleFactor(diseaseLabel);
+
+ // The effective Infectious population is a dimensionles number normalize by total
+ // population used in teh computation of bets*S*i where i = Ieffective/Pop.
+ // This includes a correction to the current
+ // infectious population (Ieffective) based on the conserved exchange of people (circulation)
+ // between regions. Note that this is no the "arrivals" and "departures" which are
+ // a different process.
+ final double effectiveInfectious = getNormalizedEffectiveInfectious(diseaseLabel.getNode(), diseaseLabel, currentSI.getI(), StandardPackage.Literals.SI_LABEL_VALUE__I, StandardPackage.Literals.STANDARD_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE, StandardPackage.Literals.STANDARD_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION);
+
+ /*
+ * Compute state transitions
+ *
+ * Regarding computing the number of transitions from Susceptible to Exposed:
+ * In a linear model the "effective" number of infectious people is just
+ * the number of infectious people In a nonlinear model we have a
+ * nonLinearity exponent that is > 1 this models the effect of immune
+ * system saturation when Susceptible people are exposed to large
+ * numbers of infectious people. then the "effective" number of
+ * infectious people is I^nonLinearity exponent to allow for either
+ * linear or nonlinear models we always calculate I^nonLinearity
+ * exponent and allow nonLinearity exponent >= 1.0
+ */
+
+ // Need to checked what do do here. If non linear coefficient is not 1 and
+ // the effective infectious is negative (which is possible), what do do?
+ // Let's fall back on the linear method for now.
+ double numberOfSusceptibleToInfected = 0.0;
+
+
+
+
+
+ if(getNonLinearityCoefficient() != 1.0 && effectiveInfectious >= 0.0)
+ numberOfSusceptibleToInfected = transmissionRate
+ * currentSI.getS()* Math.pow(effectiveInfectious, getNonLinearityCoefficient());
+ else
+ numberOfSusceptibleToInfected = transmissionRate
+ * currentSI.getS()* effectiveInfectious;
+
+ double numberOfInfectedToSusceptible = adjustedRecoveryRate
+ * currentSI.getI();
+
+
+ // Determine delta S
+ final double deltaS = - numberOfSusceptibleToInfected + numberOfInfectedToSusceptible;
+ // Determine delta I
+ final double deltaI = numberOfSusceptibleToInfected - numberOfInfectedToSusceptible - diseaseDeaths;
+
+ SILabelValueImpl ret = (SILabelValueImpl)deltaValue;
+
+ // Store transitions (for stochastic models)
+
+ /////////////////////////////////////////////////////////////////////////////
+ // added to express the transitions. Necessary to support stochastic modeling
+ // S->I
+ Exchange siExchange = (Exchange)ExchangePool.POOL.get();
+ siExchange.setSource(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_S());
+ siExchange.setTarget(StandardPackage.eINSTANCE.getSILabelValue_I());
+ siExchange.setCount(numberOfSusceptibleToInfected);
+ siExchange.getForIncidence().add(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_Incidence());
+ siExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ ret.getDepartures().add(siExchange);
+
+ // I->S
+ Exchange isExchange = (Exchange)ExchangePool.POOL.get();
+ isExchange.setSource(StandardPackage.eINSTANCE.getSILabelValue_I());
+ isExchange.setTarget(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_S());
+ isExchange.setCount(numberOfInfectedToSusceptible);
+ isExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ ret.getDepartures().add(isExchange);
+ // added to express the transitions. Necessary to support stochastic modeling
+ /////////////////////////////////////////////////////////////////////////////
+
+ ret.setS(deltaS);
+ ret.setI(deltaI);
+ ret.setIncidence(numberOfSusceptibleToInfected);
+ ret.setDiseaseDeaths(diseaseDeaths);
+
+ computeAdditionalDeltasAndExchanges(ilabel, time, t, timeDelta);
+ }
+ } //
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EvolvingDiseaseModel evolve(DiseaseModelLabel label) {
+
+
+ // test
+ SILabelValue siValues = (SILabelValue)label.getCurrentValue();
+ double incidence = siValues.getIncidence();
+
+ if(incidence > 1) {
+
+ double pic = Math.random();
+ double threshold = (incidence*caseMutationRate);
+
+ if(pic < threshold) {
+
+ final boolean[] newGenome = mutateGenome(getGenome());
+
+ // check that the genome does not already exist!!
+ // if we have mutated back to an existing genome we just
+ // return null (because that disease is already defined everywhere
+ String evolutionKey = String.valueOf(Arrays.hashCode(newGenome));
+
+ for (DiseaseModel dm : getTransformer().getEvolvedDiseases()) {
+
+ // If the disease model's URI query string contains the evolved genome's hash key,
+ // then the disease already exists in the simulation
+
+ // platform://resource/MyProject/decorators/MyEvolvingDiseaseModel.standard?genomehash
+
+ if (evolutionKey.equals(dm.getURI().query())) {
+ return null;
+ }
+ }
+
+ int evolutions = getEvolutionCount();
+ setEvolutionCount(++evolutions);
+
+ String genomeSTR = getGenomeSTR(newGenome);
+ String phyloDieaseName = getPhyloDiseaseName(getDiseaseName());
+ String uniqueIdentifier = phyloDieaseName + ":"+ evolutions+"_["+genomeSTR+"]";
+
+
+ EvolvingSIDiseaseModel dm = EcoreUtil.copy(this);
+ dm.setGenome(newGenome);
+ getTransformer().getEvolvedDiseases().add(dm);
+ dm.setGraphDecorated(false);
+ dm.setDiseaseName(uniqueIdentifier);
+ dm.setTransformer(getTransformer());
+ dm.setParentDisease(this);
+ dm.setURI(getURI().appendQuery(evolutionKey));
+ dm.setEvolvedAt(label);
+
+// totalEvolved++;
+// System.out.println(" ********** Evolutions = "+totalEvolved );
+
+ return dm;
+ }
+ }
+
+ return null;
+ }// evolve
+
+ /**
+ * mutate a parent genome
+ * @param parentGenome
+ * @return
+ */
+ public boolean[] mutateGenome(boolean[] parentGenome) {
+ // Update the genome
+ genomeLength = parentGenome.length;
+ boolean[] genome = new boolean[genomeLength];
+
+ double dMute = Math.random()*genome.length;
+ int iMute = (int)Math.round(dMute);
+
+ for(int i = 0; i < genome.length; i ++) {
+ genome[i] = parentGenome[i];
+ if(i==iMute) genome[i] = (!parentGenome[i]);
+ }
+ return genome;
+ }
+ /**
+ *
+ * @param genome
+ * @return
+ */
+ public static String getGenomeSTR(boolean[] genome) {
+ String retval = "";
+ for(int i = 0; i < genome.length; i ++) {
+ if(genome[i]) {
+ retval += "1";
+ } else {
+ retval += "0";
+ }
+ }
+ return retval;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void calculateEvolvedInitialState() {
+
+
+ EvolvingSIDiseaseModelImpl parentDiseaseModel = (EvolvingSIDiseaseModelImpl)getParentDisease();
+ DiseaseModelLabel parentEvolutionSource = getEvolvedAt();
+ if (parentDiseaseModel == null && parentEvolutionSource == null) {
+ // The evolution wasn't initialized correctly.
+ // This should be unreachable but who knows.
+ System.err.println("Trying to calculate label state from an improperly initialized evolved model. Do something.");
+ return;
+ }
+
+ Node currentNode = parentEvolutionSource.getNode();
+ URI evolutionLocation = currentNode.getURI();
+
+
+ boolean[] genome = getGenome();
+ boolean[] parentGenome = parentDiseaseModel.getGenome();
+
+ // Update the genome
+ if(genome != null && genome.length > 1) {
+ double dMute = Math.random()*genome.length;
+ int iMute = (int)Math.round(dMute);
+ for(int i = 0; i < genome.length; i ++) {
+ genome[i] = parentGenome[i];
+ if (i == iMute) {
+ genome[i] = !genome[i];
+ }
+ }
+ }
+ setGenome(genome);
+
+// // Matt, we have not decorated the graph at this point right??
+ for (DynamicLabel dl : this.getLabelsToUpdate()) {
+ if (dl instanceof EvolvingSIDiseaseModelLabel) {
+ double s = 0.0;
+ double i = 0.0;
+ double diseaseDeaths = 0.0;
+
+ // this is the new label we need to set
+ EvolvingSIDiseaseModelLabel childLabel = (EvolvingSIDiseaseModelLabel)dl;
+ EvolvingSIDiseaseModelLabelValue childLabelValues = (EvolvingSIDiseaseModelLabelValue)childLabel.getCurrentValue();
+ // this is the new label we need to set
+ EvolvingSIDiseaseModelLabel parentSIlabel = (EvolvingSIDiseaseModelLabel) parentEvolutionSource;
+ // same parent population
+ childLabel.setPopulationLabel(parentSIlabel.getPopulationLabel());
+ childLabel.setPopulationModelLabel(parentSIlabel.getPopulationModelLabel());
+
+ // get the parent label value - we need this to know the current population
+ EvolvingSIDiseaseModelLabelValue lv = (EvolvingSIDiseaseModelLabelValue)parentSIlabel.getCurrentValue();
+ double popCount = lv.getPopulationCount();
+ s = popCount;
+
+ // Do something interesting here to initialize disease state
+ // TODO performance question
+ // TODO we are looking through the entire graphs to find THIS label.
+ if (childLabel.getNode().getURI().equals(evolutionLocation)) {
+ // This is where the evolution happened, so you probably need to set your
+ // infectious state differently
+ System.out.println("initializing child disease at evolution location");
+ if(parentEvolutionSource instanceof EvolvingSIDiseaseModelLabel) {
+ // should be true
+ if(popCount > 1.0) {
+ // init the child diseases values
+ i = 1.0;
+ s = s - 1.0;
+ } else {
+ System.err.println("Likely ERROR: Zero population detected on node "+currentNode.getURI().lastSegment()+" ... Do something.");
+ }
+ }
+
+ } else {
+ // This is everywhere else
+ // for now we are already set
+ } // if else
+
+ childLabelValues.setS(s);
+ childLabelValues.setI(i);
+ childLabelValues.setDiseaseDeaths(diseaseDeaths);
+ }
+ }
+
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public double getGeneticDistance(EvolvingDiseaseModel otherDieaseStrain) {
+ boolean[] genome = getGenome();
+ if(genome==null || genome.length <= 1) {
+ // In this version we just return 1.0 since we do not implement a genome yet
+ return 1.0;
+ } else {
+ boolean[] otherGenome = otherDieaseStrain.getGenome();
+ double ntDistance = 0;
+ for(int i = 0; i < genome.length; i ++) {
+ if(genome[i] != otherGenome[i]) {
+ ntDistance ++;
+ }
+ }
+ double cmDistance = getCMdistance(otherDieaseStrain);
+ return Math.pow(ntDistance,geneticDistNonlinExponent);
+ }
+ }
+
+ /**
+ *
+ * @param genome1
+ * @param genome2
+ * @return
+ */
+ protected double getCMdistance(EvolvingDiseaseModel otherStrain) {
+ double cm1 = getGeneticCenterOfMass(this);
+ double cm2 = getGeneticCenterOfMass(otherStrain);
+ double diff = Math.abs(cm1-cm1);
+ if(diff >= 1.0) {
+ return diff;
+ } else {
+ return 1.0;
+ }
+ }
+
+
+ /**
+ * NOT USED
+ * @return
+ */
+ protected double getGeneticCenterOfMass(EvolvingDiseaseModel otherStrain) {
+ double cm = 0;
+
+ boolean[] genome = getGenome();
+ boolean[] otherGenome = otherStrain.getGenome();
+
+ for(int i = 0; i < genome.length; i ++) {
+ if(otherGenome[i]) cm += i;
+ }
+ cm /= genome.length;
+ return cm;
+ }
+
+
+ /**
+ *
+ * @param rootName
+ * @return
+ */
+ protected String getPhyloDiseaseName(String rootName) {
+ String retVal = rootName;
+ int idx1 = retVal.indexOf("_[");
+ if(idx1>=0) {
+ retVal=rootName.substring(0, idx1);
+ }
+ return retVal;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.stem.diseasemodels.standard.impl.DiseaseModelImpl#prepare(org.eclipse.stem.core.model.Model, org.eclipse.stem.core.model.STEMTime)
+ */
+ @Override
+ public void prepare(Model model, STEMTime time) {
+ super.prepare(model, time);
+
+ // Get and set the disease model's transformer as a node decorator
+ EvolvingDiseaseTransformer transformer = getTransformer();
+ if (transformer != null) {
+ model.getNodeDecorators().add(transformer);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DiseaseModelLabel createDiseaseModelLabel(String populationIdentifier) {
+ DiseaseModelLabel label = EvolvingFactory.eINSTANCE.createEvolvingSIDiseaseModelLabel();
+ label.setTypeURI(DiseaseModelLabel.URI_TYPE_DYNAMIC_DISEASE_LABEL);
+
+ return label;
+ } // createDiseaseModelLabel
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DiseaseModelLabelValue createDiseaseModelLabelValue(String populationIdentifier) {
+ return EvolvingFactory.eINSTANCE.createEvolvingSIDiseaseModelLabelValue();
+ }
+
+
+} //EvolvingSIDiseaseModelImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIDiseaseModelLabelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIDiseaseModelLabelImpl.java
new file mode 100644
index 0000000..8131841
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIDiseaseModelLabelImpl.java
@@ -0,0 +1,52 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingFactory;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelLabelImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SI Disease Model Label</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated NOT
+ */
+public class EvolvingSIDiseaseModelLabelImpl extends StandardDiseaseModelLabelImpl implements EvolvingSIDiseaseModelLabel {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIDiseaseModelLabelImpl() {
+ super();
+ setCurrentValue(EvolvingFactory.eINSTANCE.createEvolvingSIDiseaseModelLabelValue());
+ setNextValue(EvolvingFactory.eINSTANCE.createEvolvingSIDiseaseModelLabelValue());
+ setTempValue(EvolvingFactory.eINSTANCE.createEvolvingSIDiseaseModelLabelValue());
+ setProbeValue(EvolvingFactory.eINSTANCE.createEvolvingSIDiseaseModelLabelValue());
+ setErrorScale(EvolvingFactory.eINSTANCE.createEvolvingSIDiseaseModelLabelValue());
+ setDeltaValue(EvolvingFactory.eINSTANCE.createEvolvingSIDiseaseModelLabelValue());
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingPackage.Literals.EVOLVING_SI_DISEASE_MODEL_LABEL;
+ }
+
+
+
+
+} //EvolvingSIDiseaseModelLabelImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIDiseaseModelLabelValueImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIDiseaseModelLabelValueImpl.java
new file mode 100644
index 0000000..8fe9adf
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIDiseaseModelLabelValueImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.impl.SILabelValueImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SI Disease Model Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingSIDiseaseModelLabelValueImpl extends SILabelValueImpl implements EvolvingSIDiseaseModelLabelValue {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIDiseaseModelLabelValueImpl() {
+ super();
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingPackage.Literals.EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE;
+ }
+
+
+} //EvolvingSIDiseaseModelLabelValueImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIRDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIRDiseaseModelImpl.java
new file mode 100644
index 0000000..b027007
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIRDiseaseModelImpl.java
@@ -0,0 +1,559 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.stem.core.graph.DynamicLabel;
+import org.eclipse.stem.core.graph.Exchange;
+import org.eclipse.stem.core.graph.ExchangePool;
+import org.eclipse.stem.core.graph.ExchangeType;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.Node;
+import org.eclipse.stem.core.graph.NodeLabel;
+import org.eclipse.stem.core.model.Decorator;
+import org.eclipse.stem.core.model.STEMTime;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingFactory;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardPackage;
+import org.eclipse.stem.diseasemodels.standard.impl.SIRLabelValueImpl;
+import org.eclipse.stem.interventions.StandardInterventionLabel;
+import org.eclipse.stem.interventions.StandardInterventionLabelValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SIR Disease Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelImpl#getImmunityLossRate <em>Immunity Loss Rate</em>}</li>
+ * <li>{@link org.eclipse.stem.diseasemodels.evolving.impl.EvolvingSIRDiseaseModelImpl#getCrossImmunityRate <em>Cross Immunity Rate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingSIRDiseaseModelImpl extends EvolvingSIDiseaseModelImpl implements EvolvingSIRDiseaseModel {
+ /**
+ * The default value of the '{@link #getImmunityLossRate() <em>Immunity Loss Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImmunityLossRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double IMMUNITY_LOSS_RATE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getImmunityLossRate() <em>Immunity Loss Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getImmunityLossRate()
+ * @generated
+ * @ordered
+ */
+ protected double immunityLossRate = IMMUNITY_LOSS_RATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCrossImmunityRate() <em>Cross Immunity Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCrossImmunityRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double CROSS_IMMUNITY_RATE_EDEFAULT = 0.75;
+
+ /**
+ * The cached value of the '{@link #getCrossImmunityRate() <em>Cross Immunity Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCrossImmunityRate()
+ * @generated
+ * @ordered
+ */
+ protected double crossImmunityRate = CROSS_IMMUNITY_RATE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIRDiseaseModelImpl() {
+ super();
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingPackage.Literals.EVOLVING_SIR_DISEASE_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getImmunityLossRate() {
+ return immunityLossRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImmunityLossRate(double newImmunityLossRate) {
+ immunityLossRate = newImmunityLossRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getCrossImmunityRate() {
+ return crossImmunityRate;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCrossImmunityRate(double newCrossImmunityRate) {
+ crossImmunityRate = newCrossImmunityRate;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE:
+ return getImmunityLossRate();
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE:
+ return getCrossImmunityRate();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE:
+ setImmunityLossRate((Double)newValue);
+ return;
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE:
+ setCrossImmunityRate((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE:
+ setImmunityLossRate(IMMUNITY_LOSS_RATE_EDEFAULT);
+ return;
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE:
+ setCrossImmunityRate(CROSS_IMMUNITY_RATE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE:
+ return immunityLossRate != IMMUNITY_LOSS_RATE_EDEFAULT;
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE:
+ return crossImmunityRate != CROSS_IMMUNITY_RATE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (immunityLossRate: ");
+ result.append(immunityLossRate);
+ result.append(", crossImmunityRate: ");
+ result.append(crossImmunityRate);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void calculateEvolvedInitialState() {
+ EvolvingSIRDiseaseModelImpl parentDiseaseModel = (EvolvingSIRDiseaseModelImpl)getParentDisease();
+ DiseaseModelLabel parentEvolutionSource = getEvolvedAt();
+ if (parentDiseaseModel == null && parentEvolutionSource == null) {
+ // The evolution wasn't initialized correctly.
+ // This should be unreachable but who knows.
+ System.err.println("Trying to calculate label state from an improperly initialized evolved model. Do something.");
+ return;
+ }
+
+ Node currentNode = parentEvolutionSource.getNode();
+ URI evolutionLocation = currentNode.getURI();
+
+ boolean[] genome = getGenome();
+ boolean[] parentGenome = parentDiseaseModel.getGenome();
+
+ // Update the genome
+ if(genome != null && genome.length > 1) {
+ double dMute = Math.random()*genome.length;
+ int iMute = (int)Math.round(dMute);
+ for(int i = 0; i < genome.length; i ++) {
+ genome[i] = parentGenome[i];
+ if(i==iMute) {
+ genome[i] = !genome[i];
+ }
+ }
+ }
+
+ setGenome(genome);
+
+// // Matt, we have not decorated the graph at this point right??
+ for (DynamicLabel dl : this.getLabelsToUpdate()) {
+ if (dl instanceof EvolvingSIRDiseaseModelLabel) {
+ double s = 0.0;
+ double i = 0.0;
+ double r = 0.0;
+ double diseaseDeaths = 0.0;
+
+ // this is the new label we need to set
+ EvolvingSIRDiseaseModelLabel childLabel = (EvolvingSIRDiseaseModelLabel)dl;
+ EvolvingSIRDiseaseModelLabelValue childLabelValues = (EvolvingSIRDiseaseModelLabelValue)childLabel.getCurrentValue();
+ // this is the new label we need to set
+ EvolvingSIRDiseaseModelLabel parentSIRlabel = (EvolvingSIRDiseaseModelLabel) parentEvolutionSource;
+ // same parent population
+ childLabel.setPopulationLabel(parentSIRlabel.getPopulationLabel());
+ childLabel.setPopulationModelLabel(parentSIRlabel.getPopulationModelLabel());
+
+ // get the parent label value - we need this to know the current population
+ EvolvingSIRDiseaseModelLabelValue lv = (EvolvingSIRDiseaseModelLabelValue)parentSIRlabel.getCurrentValue();
+ double popCount = lv.getPopulationCount();
+ s = popCount;
+
+
+ // Do something interesting here to initialize disease state
+ // TODO performance question
+ // TODO we are looking through the entire graphs to find THIS label.
+ if (childLabel.getNode().getURI().equals(evolutionLocation)) {
+ // This is where the evolution happened, so you probably need to set your
+ // infectious state differently
+ System.out.println("initializing child disease at evolution location");
+ if(parentEvolutionSource instanceof EvolvingSIRDiseaseModelLabel) {
+ // should be true
+ if(popCount > 1.0) {
+ // init the child diseases values
+ i = 1.0;
+ s = s - 1.0;
+ } else {
+ System.err.println("Likely ERROR: Zero population detected on node "+currentNode.getURI().lastSegment()+" ... Do something.");
+ }
+ }
+
+ } else {
+ // This is everywhere else
+ // for now we are already set
+ } // if else
+
+ childLabelValues.setS(s);
+ childLabelValues.setI(i);
+ childLabelValues.setR(r);
+ childLabelValues.setDiseaseDeaths(diseaseDeaths);
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ *
+ * @param timeDelta
+ * @return
+ *
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected double getAdjustedImmunityLossRate(long timeDelta) {
+ return getImmunityLossRate()
+ * ((double) timeDelta / (double) getTimePeriod());
+ } // getAdjustedImmunityRate
+
+ /**
+ * @see org.eclipse.stem.diseasemodels.standard.impl.SIImpl#computeTransitions(StandardDiseaseModelLabelValue,
+ * StandardDiseaseModelLabel, long)
+ * @generated NOT
+ */
+ @Override
+ public void calculateDeltas(STEMTime time, double t, long timeDelta, EList<DynamicLabel> labels) {
+
+
+ final double adjustedInfectiousMortalityRate = getAdjustedInfectiousMortalityRate(timeDelta);
+ // This is beta*
+ double transmissionRate = getAdjustedTransmissionRate(timeDelta);
+ final double adjustedRecoveryRate = getAdjustedRecoveryRate(timeDelta);
+ final double adjustedImmunityLossRate = getAdjustedImmunityLossRate(timeDelta);
+
+ for(int _i=0;_i<labels.size();++_i) {
+ final DynamicLabel label = labels.get(_i);
+ IntegrationLabel ilabel = (IntegrationLabel)label;
+
+ StandardDiseaseModelLabel diseaseLabel = (StandardDiseaseModelLabel)ilabel;
+ StandardDiseaseModelLabelValue currentState = (StandardDiseaseModelLabelValue)ilabel.getProbeValue();
+ StandardDiseaseModelLabelValue deltaValue = (StandardDiseaseModelLabelValue)ilabel.getDeltaValue();
+
+ deltaValue.reset();
+
+ final EvolvingSIRDiseaseModelLabelValue currentSIR = (EvolvingSIRDiseaseModelLabelValue) currentState;
+
+ // Compute deaths
+
+ final double diseaseDeaths = adjustedInfectiousMortalityRate
+ * currentSIR.getI();
+
+
+
+ if(!this.isFrequencyDependent()) transmissionRate *= getTransmissionRateScaleFactor(diseaseLabel);
+
+ // The effective Infectious population is a dimensionles number normalize by total
+ // population used in teh computation of bets*S*i where i = Ieffective/Pop.
+ // This includes a correction to the current
+ // infectious population (Ieffective) based on the conserved exchange of people (circulation)
+ // between regions. Note that this is no the "arrivals" and "departures" which are
+ // a different process.
+ final double effectiveInfectious = getNormalizedEffectiveInfectious(diseaseLabel.getNode(), diseaseLabel, currentSIR.getI(), StandardPackage.Literals.SI_LABEL_VALUE__I, StandardPackage.Literals.STANDARD_DISEASE_MODEL__CHARACTERISTIC_MIXING_DISTANCE, StandardPackage.Literals.STANDARD_DISEASE_MODEL__ROAD_NETWORK_INFECTIOUS_PROPORTION);
+
+ /*
+ * Compute state transitions
+ *
+ * Regarding computing the number of transitions from Susceptible to Exposed:
+ * In a linear model the "effective" number of infectious people is just
+ * the number of infectious people In a nonlinear model we have a
+ * nonLinearity exponent that is > 1 this models the effect of immune
+ * system saturation when Susceptible people are exposed to large
+ * numbers of infectious people. then the "effective" number of
+ * infectious people is I^nonLinearity exponent to allow for either
+ * linear or nonlinear models we always calculate I^nonLinearity
+ * exponent and allow nonLinearity exponent >= 1.0
+ */
+ double numberOfInfectedToRecovered = adjustedRecoveryRate
+ * currentSIR.getI();
+ double numberOfRecoveredToSusceptible = adjustedImmunityLossRate
+ * currentSIR.getR();
+
+
+
+
+
+ ////////////////////////////////////////////////////
+ // ******* EVOLVING DISEASE MODEL *************** //
+ //
+ // Si* = Si ∏_(j≠i) 〖[1-χji (Rj/N〗)]
+ //
+ double effectiveSusceptible = currentSIR.getS();
+ double popCount = currentSIR.getS()+currentSIR.getI()+currentSIR.getR();
+ double crossProduct = 1.0;
+ if((crossImmunityRate>0.0)&&(effectiveSusceptible>1)) {
+ // NEED TO CORRECT SUSCEPTIBLES BASED ON CROSS STRAIN IMMUNITY //
+ Node thisNode = diseaseLabel.getNode();
+ EList<NodeLabel> allLabels = thisNode.getLabels();
+ for(NodeLabel nl:allLabels) {
+ if(nl instanceof EvolvingSIRDiseaseModelLabel) {
+ EvolvingSIRDiseaseModelLabel sirLabel = (EvolvingSIRDiseaseModelLabel) nl;
+ Decorator otherDisease = sirLabel.getDecorator();
+ if(otherDisease instanceof EvolvingSIRDiseaseModel) {
+ // should always be true
+ EvolvingSIRDiseaseModel otherSIRDiease = (EvolvingSIRDiseaseModel)otherDisease;
+ if(!otherSIRDiease.getDiseaseName().equals(this.getDiseaseName())) {
+ // ie NOT this DISEASE
+ EvolvingSIRDiseaseModelLabelValue otherValue = (EvolvingSIRDiseaseModelLabelValue)sirLabel.getCurrentValue();
+
+
+ double immuneTerm = otherValue.getR()/popCount;
+
+ // the genetic distance is based on comparing the 2 genomes. Each letter gives a difference of 1
+ // the crossImmunityRate is the crossImmunity with 1 nt different
+ double geneticDistance = getGeneticDistance(otherSIRDiease);
+
+ // for a center of mass distance model uncomment the following....
+ // double geneticDistance *= getCMdistance(otherSIR);
+
+ if(geneticDistance >= 1 ) {
+ immuneTerm *= (crossImmunityRate/ geneticDistance);
+ }
+
+
+ crossProduct *= (1.0-immuneTerm);
+ // prevent round off error
+ if(crossProduct < 0) {
+ crossProduct = 0.0; // round off error
+ }
+
+
+ }
+ }
+ }
+ }
+ }
+ effectiveSusceptible *= crossProduct;
+ //System.out.println("S = "+currentSIR.getS()+" crossProduct = "+crossProduct+" Seffective = "+effectiveSusceptible);
+
+
+ // Need to checked what do do here. If non linear coefficient is not 1 and
+ // the effective infectious is negative (which is possible), what do do?
+ // Let's fall back on the linear method for now.
+
+ double numberOfSusceptibleToInfected = 0.0;
+ if(getNonLinearityCoefficient() != 1.0 && effectiveInfectious >=0.0)
+ numberOfSusceptibleToInfected = transmissionRate
+ * effectiveSusceptible* Math.pow(effectiveInfectious, getNonLinearityCoefficient());
+ else
+ numberOfSusceptibleToInfected = transmissionRate
+ * effectiveSusceptible* effectiveInfectious;
+
+
+
+
+ // ******* EVOLVING DISEASE MODEL *************** //
+ ////////////////////////////////////////////////////
+
+
+
+ // Determine delta S
+ double deltaS = numberOfRecoveredToSusceptible - numberOfSusceptibleToInfected;
+ // Determine delta I
+ double deltaI = numberOfSusceptibleToInfected- numberOfInfectedToRecovered - diseaseDeaths;
+ // Determine delta R
+ double deltaR = numberOfInfectedToRecovered - numberOfRecoveredToSusceptible;
+
+ /////////////////////////////////////////////////////////////////////////////
+ // added to express the transitions. Necessary to support stochastic modeling
+ // S->I
+ Exchange siExchange = (Exchange)ExchangePool.POOL.get();
+ siExchange.setSource(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_S());
+ siExchange.setTarget(StandardPackage.eINSTANCE.getSILabelValue_I());
+ siExchange.setCount(numberOfSusceptibleToInfected);
+ siExchange.getForIncidence().add(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_Incidence());
+ siExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(siExchange);
+
+ // I->R
+ Exchange irExchange = (Exchange)ExchangePool.POOL.get();
+ irExchange.setSource(StandardPackage.eINSTANCE.getSILabelValue_I());
+ irExchange.setTarget(StandardPackage.eINSTANCE.getSIRLabelValue_R());
+ irExchange.setCount(numberOfInfectedToRecovered);
+ irExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(irExchange);
+
+ // R->S
+ Exchange rsExchange = (Exchange)ExchangePool.POOL.get();
+ rsExchange.setSource(StandardPackage.eINSTANCE.getSIRLabelValue_R());
+ rsExchange.setTarget(StandardPackage.eINSTANCE.getStandardDiseaseModelLabelValue_S());
+ rsExchange.setCount(numberOfRecoveredToSusceptible);
+ rsExchange.setType(ExchangeType.COMPARTMENT_TRANSITION);
+ deltaValue.getDepartures().add(rsExchange);
+ // added to express the transitions. Necessary to support stochastic modeling
+ /////////////////////////////////////////////////////////////////////////////
+
+ // If there is a control label attached to the region, we need to adjust for any interventions in effect.
+
+ StandardInterventionLabel scl = findInterventionLabel((Node)diseaseLabel.getIdentifiable());
+ if(scl != null) {
+ double vaccinations = ((StandardInterventionLabelValue)scl.getCurrentValue()).getVaccinations();
+ double isolations = ((StandardInterventionLabelValue)scl.getCurrentValue()).getIsolations();
+ vaccinations *= ((double) timeDelta / (double) getTimePeriod());
+ isolations *= ((double) timeDelta / (double) getTimePeriod());
+
+ if(currentSIR.getS() < vaccinations) vaccinations = currentSIR.getS();
+ if(currentSIR.getI() < isolations) isolations = currentSIR.getI();
+
+ deltaS -= vaccinations;
+ deltaR += vaccinations;
+ deltaI -= isolations;
+ deltaR += isolations;
+ }
+
+ SIRLabelValueImpl ret = (SIRLabelValueImpl)deltaValue;
+ ret.setS(deltaS);
+ ret.setI(deltaI);
+ ret.setIncidence(numberOfInfectedToRecovered);
+ ret.setR(deltaR);
+ ret.setDiseaseDeaths(diseaseDeaths);
+
+ computeAdditionalDeltasAndExchanges(ilabel, time, t, timeDelta);
+ }
+
+ } // computeTransitions
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DiseaseModelLabel createDiseaseModelLabel(String populationIdentifier) {
+ DiseaseModelLabel label = EvolvingFactory.eINSTANCE.createEvolvingSIRDiseaseModelLabel();
+ label.setTypeURI(DiseaseModelLabel.URI_TYPE_DYNAMIC_DISEASE_LABEL);
+
+ return label;
+ } // createDiseaseModelLabel
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public DiseaseModelLabelValue createDiseaseModelLabelValue(String populationIdentifier) {
+ return EvolvingFactory.eINSTANCE.createEvolvingSIRDiseaseModelLabelValue();
+ }
+
+} //EvolvingSIRDiseaseModelImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIRDiseaseModelLabelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIRDiseaseModelLabelImpl.java
new file mode 100644
index 0000000..ed35791
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIRDiseaseModelLabelImpl.java
@@ -0,0 +1,52 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingFactory;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelLabelImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SIR Disease Model Label</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingSIRDiseaseModelLabelImpl extends StandardDiseaseModelLabelImpl implements EvolvingSIRDiseaseModelLabel {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EvolvingSIRDiseaseModelLabelImpl() {
+ super();
+ setCurrentValue(EvolvingFactory.eINSTANCE.createEvolvingSIRDiseaseModelLabelValue());
+ setNextValue(EvolvingFactory.eINSTANCE.createEvolvingSIRDiseaseModelLabelValue());
+ setTempValue(EvolvingFactory.eINSTANCE.createEvolvingSIRDiseaseModelLabelValue());
+ setProbeValue(EvolvingFactory.eINSTANCE.createEvolvingSIRDiseaseModelLabelValue());
+ setErrorScale(EvolvingFactory.eINSTANCE.createEvolvingSIRDiseaseModelLabelValue());
+ setDeltaValue(EvolvingFactory.eINSTANCE.createEvolvingSIRDiseaseModelLabelValue());
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingPackage.Literals.EVOLVING_SIR_DISEASE_MODEL_LABEL;
+ }
+
+
+
+
+} //EvolvingSIRDiseaseModelLabelImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIRDiseaseModelLabelValueImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIRDiseaseModelLabelValueImpl.java
new file mode 100644
index 0000000..afa5ab0
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/impl/EvolvingSIRDiseaseModelLabelValueImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.impl.SIRLabelValueImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SIR Disease Model Label Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class EvolvingSIRDiseaseModelLabelValueImpl extends SIRLabelValueImpl implements EvolvingSIRDiseaseModelLabelValue {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIRDiseaseModelLabelValueImpl() {
+ super();
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EvolvingPackage.Literals.EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE;
+ }
+
+
+} //EvolvingSIRDiseaseModelLabelValueImpl
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingActionBarContributor.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingActionBarContributor.java
new file mode 100644
index 0000000..68a64ff
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingActionBarContributor.java
@@ -0,0 +1,423 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.stem.diseasemodels.evolving.provider.EvolvingEditPlugin;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the Evolving model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingActionBarContributor
+ extends EditingDomainActionBarContributor
+ implements ISelectionChangedListener {
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction showPropertiesViewAction =
+ new Action(EvolvingEditPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+ @Override
+ public void run() {
+ try {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception) {
+ EvolvingEditPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction refreshViewerAction =
+ new Action(EvolvingEditPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+ @Override
+ public boolean isEnabled() {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run() {
+ if (activeEditorPart instanceof IViewerProvider) {
+ Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+ if (viewer != null) {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingActionBarContributor() {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager) {
+ toolBarManager.add(new Separator("evolving-settings"));
+ toolBarManager.add(new Separator("evolving-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager) {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(EvolvingEditPlugin.INSTANCE.getString("_UI_EvolvingEditor_menu"), "org.eclipse.stem.diseasemodels.evolvingMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(EvolvingEditPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(EvolvingEditPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener
+ (new IMenuListener() {
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null) {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null) {
+ selectionProvider = null;
+ }
+ else {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null) {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void selectionChanged(SelectionChangedEvent event) {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null) {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null) {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null) {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null) {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+ if (actions != null) {
+ for (IAction action : actions) {
+ if (contributionID != null) {
+ manager.insertBefore(contributionID, action);
+ }
+ else {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+ if (actions != null) {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++) {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem) {
+ contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem)contributionItem).getAction();
+ if (actions.contains(action)) {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(EvolvingEditPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(EvolvingEditPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager) {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete() {
+ return true;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingEditor.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingEditor.java
new file mode 100644
index 0000000..48b27c9
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingEditor.java
@@ -0,0 +1,1807 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.stem.core.common.provider.CommonItemProviderAdapterFactory;
+import org.eclipse.stem.core.graph.provider.GraphItemProviderAdapterFactory;
+import org.eclipse.stem.core.logger.provider.LoggerItemProviderAdapterFactory;
+import org.eclipse.stem.core.model.provider.ModelItemProviderAdapterFactory;
+import org.eclipse.stem.core.modifier.provider.ModifierItemProviderAdapterFactory;
+import org.eclipse.stem.core.scenario.provider.ScenarioItemProviderAdapterFactory;
+import org.eclipse.stem.core.sequencer.provider.SequencerItemProviderAdapterFactory;
+import org.eclipse.stem.core.solver.provider.SolverItemProviderAdapterFactory;
+import org.eclipse.stem.definitions.labels.provider.LabelsItemProviderAdapterFactory;
+import org.eclipse.stem.diseasemodels.evolving.provider.EvolvingEditPlugin;
+import org.eclipse.stem.diseasemodels.evolving.provider.EvolvingItemProviderAdapterFactory;
+import org.eclipse.stem.diseasemodels.standard.provider.StandardItemProviderAdapterFactory;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+
+/**
+ * This is an example of a Evolving model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingEditor
+ extends MultiPageEditorPart
+ implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This inverts the roll of parent and child in the content provider and show parents as a tree.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer parentViewer;
+
+ /**
+ * This shows how a tree view works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewer;
+
+ /**
+ * This shows how a list view works.
+ * A list viewer doesn't support icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ListViewer listViewer;
+
+ /**
+ * This shows how a table view works.
+ * A table can be used as a list with icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TableViewer tableViewer;
+
+ /**
+ * This shows how a tree view with columns works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewerWithColumns;
+
+ /**
+ * This keeps track of the active viewer pane, in the book.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewerPane currentViewerPane;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener() {
+ public void partActivated(IWorkbenchPart p) {
+ if (p instanceof ContentOutline) {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+ getActionBarContributor().setActiveEditor(EvolvingEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+ getActionBarContributor().setActiveEditor(EvolvingEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == EvolvingEditor.this) {
+ handleActivate();
+ }
+ }
+ public void partBroughtToTop(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partClosed(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partDeactivated(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partOpened(IWorkbenchPart p) {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter() {
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (notification.getNotifier() instanceof Resource) {
+ switch (notification.getFeatureID(Resource.class)) {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS: {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target) {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target) {
+ basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener() {
+ public void resourceChanged(IResourceChangeEvent event) {
+ IResourceDelta delta = event.getDelta();
+ try {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ public boolean visit(IResourceDelta delta) {
+ if (delta.getResource().getType() == IResource.FILE) {
+ if (delta.getKind() == IResourceDelta.REMOVED ||
+ delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+ Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null) {
+ if (delta.getKind() == IResourceDelta.REMOVED) {
+ removedResources.add(resource);
+ }
+ else if (!savedResources.remove(resource)) {
+ changedResources.add(resource);
+ }
+ }
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources() {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources() {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty()) {
+ getSite().getPage().closeEditor(EvolvingEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == EvolvingEditor.this) {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception) {
+ EvolvingEditPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleActivate() {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null) {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty()) {
+ if (handleDirtyConflict()) {
+ getSite().getPage().closeEditor(EvolvingEditor.this, false);
+ }
+ else {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty()) {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleChangedResources() {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+ if (isDirty()) {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources) {
+ if (resource.isLoaded()) {
+ resource.unload();
+ try {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception) {
+ if (!resourceToDiagnosticMap.containsKey(resource)) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication() {
+ if (updateProblemIndication) {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "org.eclipse.stem.diseasemodels.evolving",
+ 0,
+ null,
+ new Object [] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK) {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception) {
+ EvolvingEditPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ try {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception) {
+ EvolvingEditPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean handleDirtyConflict() {
+ return
+ MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingEditor() {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void initializeEditingDomain() {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new EvolvingItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new CommonItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new GraphItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ModelItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ModifierItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ScenarioItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new SequencerItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new StandardItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new LoggerItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new SolverItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new EcoreItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new org.eclipse.stem.populationmodels.standard.provider.StandardItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new LabelsItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener
+ (new CommandStackListener() {
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null) {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed()) {
+ i.remove();
+ }
+ else {
+ propertySheetPage.refresh();
+ }
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action) {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection) {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty()) {
+ Runnable runnable =
+ new Runnable() {
+ public void run() {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null) {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getElements(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getChildren(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object) {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object) {
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewerPane(ViewerPane viewerPane) {
+ if (currentViewerPane != viewerPane) {
+ if (currentViewerPane != null) {
+ currentViewerPane.showFocus(false);
+ }
+ currentViewerPane = viewerPane;
+ }
+ setCurrentViewer(currentViewerPane.getViewer());
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer) {
+ // If it is changing...
+ //
+ if (currentViewer != viewer) {
+ if (selectionChangedListener == null) {
+ // Create the listener on demand.
+ //
+ selectionChangedListener =
+ new ISelectionChangedListener() {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null) {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null) {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Viewer getViewer() {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer) {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu= contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createModel() {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ }
+ catch (Exception e) {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.stem.diseasemodels.evolving",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object [] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null) {
+ return
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.stem.diseasemodels.evolving",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception });
+ }
+ else {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void createPages() {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+ // Create a page for the selection tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ selectionViewer = (TreeViewer)viewerPane.getViewer();
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ viewerPane.setTitle(editingDomain.getResourceSet());
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+ }
+
+ // Create a page for the parent tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ parentViewer = (TreeViewer)viewerPane.getViewer();
+ parentViewer.setAutoExpandLevel(30);
+ parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+ parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(parentViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ParentPage_label"));
+ }
+
+ // This is the page for the list viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new ListViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ listViewer = (ListViewer)viewerPane.getViewer();
+ listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(listViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ListPage_label"));
+ }
+
+ // This is the page for the tree viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ treeViewer = (TreeViewer)viewerPane.getViewer();
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(treeViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreePage_label"));
+ }
+
+ // This is the page for the table viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TableViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ tableViewer = (TableViewer)viewerPane.getViewer();
+
+ Table table = tableViewer.getTable();
+ TableLayout layout = new TableLayout();
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(3, 100, true));
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+
+ TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(2, 100, true));
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+
+ tableViewer.setColumnProperties(new String [] {"a", "b"});
+ tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(tableViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TablePage_label"));
+ }
+
+ // This is the page for the table tree viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), EvolvingEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+ Tree tree = treeViewerWithColumns.getTree();
+ tree.setLayoutData(new FillLayout());
+ tree.setHeaderVisible(true);
+ tree.setLinesVisible(true);
+
+ TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+ objectColumn.setWidth(250);
+
+ TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+ selfColumn.setWidth(200);
+
+ treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+ treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(treeViewerWithColumns);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+ }
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener
+ (new ControlAdapter() {
+ boolean guard = false;
+ @Override
+ public void controlResized(ControlEvent event) {
+ if (!guard) {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs() {
+ if (getPageCount() <= 1) {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs() {
+ if (getPageCount() > 1) {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex) {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null) {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key) {
+ if (key.equals(IContentOutlinePage.class)) {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class)) {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class)) {
+ return this;
+ }
+ else {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage() {
+ if (contentOutlinePage == null) {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage {
+ @Override
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener
+ (new ISelectionChangedListener() {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage() {
+ PropertySheetPage propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ EvolvingEditor.this.setSelectionToViewer(selection);
+ EvolvingEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+ Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+ if (selectedElements.hasNext()) {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ // If it's the selection viewer, then we want it to select the same selection as this selection.
+ //
+ if (currentViewerPane.getViewer() == selectionViewer) {
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext()) {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ else {
+ // Set the input to the widget.
+ //
+ if (currentViewerPane.getViewer().getInput() != selectedElement) {
+ currentViewerPane.getViewer().setInput(selectedElement);
+ currentViewerPane.setTitle(selectedElement);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty() {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor) {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor) {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources()) {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+ try {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp) {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception) {
+ // Something went wrong that shouldn't.
+ //
+ EvolvingEditPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource) {
+ boolean result = false;
+ try {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null) {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e) {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed() {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSaveAs() {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null) {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null) {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput) {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void gotoMarker(IMarker marker) {
+ List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+ if (!targetObjects.isEmpty()) {
+ setSelectionToViewer(targetObjects);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput) {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus() {
+ if (currentViewerPane != null) {
+ currentViewerPane.setFocus();
+ }
+ else {
+ getControl(getActivePage()).setFocus();
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection() {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection) {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners) {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection) {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+ contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null) {
+ if (selection instanceof IStructuredSelection) {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size()) {
+ case 0: {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1: {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default: {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key) {
+ return EvolvingEditPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1) {
+ return EvolvingEditPlugin.INSTANCE.getString(key, new Object [] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager) {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor() {
+ return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars() {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory() {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this) {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ for (PropertySheetPage propertySheetPage : propertySheetPages) {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null) {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView() {
+ return true;
+ }
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingModelWizard.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingModelWizard.java
new file mode 100644
index 0000000..1816b61
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingModelWizard.java
@@ -0,0 +1,606 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EObject;
+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.XMLResource;
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingFactory;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.provider.EvolvingEditPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingModelWizard extends Wizard implements INewWizard {
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS =
+ Collections.unmodifiableList(Arrays.asList(EvolvingEditPlugin.INSTANCE.getString("_UI_EvolvingEditorFilenameExtensions").split("\\s*,\\s*")));
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS =
+ EvolvingEditPlugin.INSTANCE.getString("_UI_EvolvingEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingPackage evolvingPackage = EvolvingPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingFactory evolvingFactory = evolvingPackage.getEvolvingFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(EvolvingEditPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(EvolvingEditPlugin.INSTANCE.getImage("full/wizban/NewEvolving")));
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getInitialObjectNames() {
+ if (initialObjectNames == null) {
+ initialObjectNames = new ArrayList<String>();
+ for (EClassifier eClassifier : evolvingPackage.getEClassifiers()) {
+ if (eClassifier instanceof EClass) {
+ EClass eClass = (EClass)eClassifier;
+ if (!eClass.isAbstract()) {
+ initialObjectNames.add(eClass.getName());
+ }
+ }
+ }
+ Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EObject createInitialModel() {
+ EClass eClass = (EClass)evolvingPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = evolvingFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean performFinish() {
+ try {
+ // Remember the file.
+ //
+ final IFile modelFile = getModelFile();
+
+ // Do the work within an operation.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ @Override
+ protected void execute(IProgressMonitor progressMonitor) {
+ try {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Get the URI of the model file.
+ //
+ URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null) {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception) {
+ EvolvingEditPlugin.INSTANCE.log(exception);
+ }
+ finally {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ // Select the new file resource in the current view.
+ //
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ final IWorkbenchPart activePart = page.getActivePart();
+ if (activePart instanceof ISetSelectionTarget) {
+ final ISelection targetSelection = new StructuredSelection(modelFile);
+ getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+ }
+ });
+ }
+
+ // Open an editor on the new file.
+ //
+ try {
+ page.openEditor
+ (new FileEditorInput(modelFile),
+ workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
+ }
+ catch (PartInitException exception) {
+ MessageDialog.openError(workbenchWindow.getShell(), EvolvingEditPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+ catch (Exception exception) {
+ EvolvingEditPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class EvolvingModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+ super(pageId, selection);
+ }
+
+ /**
+ * The framework calls this to see if the file is correct.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validatePage() {
+ if (super.validatePage()) {
+ String extension = new Path(getFileName()).getFileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+ setErrorMessage(EvolvingEditPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile() {
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class EvolvingModelWizardInitialObjectCreationPage extends WizardPage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingModelWizardInitialObjectCreationPage(String pageId) {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE); {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(EvolvingEditPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames()) {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(EvolvingEditPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings()) {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModifyListener validator =
+ new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validatePage() {
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (visible) {
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.clearSelection();
+ encodingField.setFocus();
+ }
+ else {
+ encodingField.clearSelection();
+ initialObjectField.setFocus();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getInitialObjectName() {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames()) {
+ if (getLabel(name).equals(label)) {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEncoding() {
+ return encodingField.getText();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected String getLabel(String typeName) {
+ try {
+ return EvolvingEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ }
+ catch(MissingResourceException mre) {
+ EvolvingEditPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getEncodings() {
+ if (encodings == null) {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(EvolvingEditPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void addPages() {
+ // Create a page, set the title, and the initial model file name.
+ //
+ newFileCreationPage = new EvolvingModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(EvolvingEditPlugin.INSTANCE.getString("_UI_EvolvingModelWizard_label"));
+ newFileCreationPage.setDescription(EvolvingEditPlugin.INSTANCE.getString("_UI_EvolvingModelWizard_description"));
+ newFileCreationPage.setFileName(EvolvingEditPlugin.INSTANCE.getString("_UI_EvolvingEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+ addPage(newFileCreationPage);
+
+ // Try and get the resource selection to determine a current directory for the file dialog.
+ //
+ if (selection != null && !selection.isEmpty()) {
+ // Get the resource...
+ //
+ Object selectedElement = selection.iterator().next();
+ if (selectedElement instanceof IResource) {
+ // Get the resource parent, if its a file.
+ //
+ IResource selectedResource = (IResource)selectedElement;
+ if (selectedResource.getType() == IResource.FILE) {
+ selectedResource = selectedResource.getParent();
+ }
+
+ // This gives us a directory...
+ //
+ if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+ // Set this for the container.
+ //
+ newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+ // Make up a unique new name here.
+ //
+ String defaultModelBaseFilename = EvolvingEditPlugin.INSTANCE.getString("_UI_EvolvingEditorFilenameDefaultBase");
+ String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+ String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+ for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+ modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+ }
+ newFileCreationPage.setFileName(modelFilename);
+ }
+ }
+ }
+ initialObjectCreationPage = new EvolvingModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(EvolvingEditPlugin.INSTANCE.getString("_UI_EvolvingModelWizard_label"));
+ initialObjectCreationPage.setDescription(EvolvingEditPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the file from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile() {
+ return newFileCreationPage.getModelFile();
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingPropertyEditorAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingPropertyEditorAdapterFactory.java
new file mode 100644
index 0000000..06e308b
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingPropertyEditorAdapterFactory.java
@@ -0,0 +1,69 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.stem.diseasemodels.evolving.util.EvolvingAdapterFactory;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditorAdapter;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditorAdapterFactory;
+import org.eclipse.ui.IStartup;
+
+/**
+ * @generated
+ */
+public class EvolvingPropertyEditorAdapterFactory extends
+ EvolvingAdapterFactory implements IStartup, DiseaseModelPropertyEditorAdapterFactory {
+
+ /**
+ * @generated
+ */
+ public EvolvingPropertyEditorAdapterFactory() {
+ super();
+ DiseaseModelPropertyEditorAdapterFactory.INSTANCE.addAdapterFactory(this);
+ }
+
+ /**
+ * @generated
+ */
+ public void earlyStartup() {
+ new EvolvingPropertyStringProviderAdapterFactory();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIDiseaseModelAdapter() {
+ return new EvolvingSIDiseaseModelPropertyEditorAdapter();
+ }
+
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIRDiseaseModelAdapter() {
+ return new EvolvingSIRDiseaseModelPropertyEditorAdapter();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSEIRDiseaseModelAdapter() {
+ return new EvolvingSEIRDiseaseModelPropertyEditorAdapter();
+ }
+
+ /**
+ * @generated
+ */
+ public boolean isFactoryForType(Object type) {
+ boolean isType = super.isFactoryForType(type);
+ isType = isType || type == DiseaseModelPropertyEditorAdapter.class;
+ return isType;
+ }
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingPropertyStringProviderAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingPropertyStringProviderAdapterFactory.java
new file mode 100644
index 0000000..d8b30b8
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingPropertyStringProviderAdapterFactory.java
@@ -0,0 +1,61 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.stem.diseasemodels.evolving.util.EvolvingAdapterFactory;
+import org.eclipse.stem.ui.adapters.propertystrings.PropertyStringProvider;
+import org.eclipse.stem.ui.adapters.propertystrings.PropertyStringProviderAdapterFactory;
+
+/**
+ * @generated
+ */
+public class EvolvingPropertyStringProviderAdapterFactory extends
+ EvolvingAdapterFactory implements
+ PropertyStringProviderAdapterFactory {
+ /**
+ * @generated
+ */
+ public EvolvingPropertyStringProviderAdapterFactory() {
+ super();
+ PropertyStringProviderAdapterFactory.INSTANCE.addAdapterFactory(this);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return super.isFactoryForType(type)
+ || type == PropertyStringProvider.class;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIDiseaseModelAdapter() {
+ return new EvolvingSIDiseaseModelPropertyEditor.EvolvingSIDiseaseModelPropertyStringProviderAdapter();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIRDiseaseModelAdapter() {
+ return new EvolvingSIRDiseaseModelPropertyEditor.EvolvingSIRDiseaseModelPropertyStringProviderAdapter();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSEIRDiseaseModelAdapter() {
+ return new EvolvingSEIRDiseaseModelPropertyEditor.EvolvingSEIRDiseaseModelPropertyStringProviderAdapter();
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingRelativeValueProviderAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingRelativeValueProviderAdapterFactory.java
new file mode 100644
index 0000000..d673879
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingRelativeValueProviderAdapterFactory.java
@@ -0,0 +1,505 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.ui.provider.PropertySource;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.IntegrationLabelValue;
+
+import org.eclipse.stem.definitions.adapters.relativevalue.RelativeValueProvider;
+import org.eclipse.stem.definitions.adapters.relativevalue.RelativeValueProviderAdapterFactory;
+
+import org.eclipse.stem.diseasemodels.evolving.provider.EvolvingItemProviderAdapterFactory;
+
+import org.eclipse.stem.diseasemodels.evolving.util.EvolvingAdapterFactory;
+
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
+
+import org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelRelativeValueProvider;
+import org.eclipse.stem.diseasemodels.standard.provider.StandardRelativeValueProviderAdapterFactory.DiseaseModelLabelValueRelativeValueProvider;
+
+import org.eclipse.ui.IStartup;
+
+/**
+ * @generated
+ */
+public class EvolvingRelativeValueProviderAdapterFactory extends
+ EvolvingAdapterFactory
+ implements IStartup, RelativeValueProviderAdapterFactory {
+
+ /**
+ * This keeps track of the root adapter factory that delegates to this
+ * adapter factory.
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement
+ * {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This factory is used to create item providers for the adapted classes.
+ * The item providers are used as property sources to get the properties
+ * that can have relative values.
+ */
+ private static EvolvingItemProviderAdapterFactory itemProviderFactory;
+
+
+ /**
+ * @generated
+ */
+ public EvolvingRelativeValueProviderAdapterFactory() {
+ super();
+ RelativeValueProviderAdapterFactory.INSTANCE.addAdapterFactory(this);
+ }
+
+ /**
+ * @generated
+ */
+ public void earlyStartup() {
+ new EvolvingRelativeValueProviderAdapterFactory();
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.IChangeNotifier#addListener(org.eclipse.emf.edit.provider.INotifyChangedListener)
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ } // addListener
+
+ /**
+ * @see org.eclipse.emf.edit.provider.IChangeNotifier#fireNotifyChanged(org.eclipse.emf.common.notify.Notification)
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ } // fireNotifyChanged
+
+ /**
+ * @see org.eclipse.emf.edit.provider.IChangeNotifier#removeListener(org.eclipse.emf.edit.provider.INotifyChangedListener)
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ } // removeListener
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ComposeableAdapterFactory#getRootAdapterFactory()
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory
+ .getRootAdapterFactory();
+ } // getRootAdapterFactory
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ComposeableAdapterFactory#setParentAdapterFactory(org.eclipse.emf.edit.provider.ComposedAdapterFactory)
+ * @generated
+ */
+ public void setParentAdapterFactory(
+ ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ } // setParentAdapterFactory
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ *
+ * @see org.eclipse.emf.edit.provider.IDisposable#dispose()
+ * @generated
+ */
+ public void dispose() {
+ // Nothing
+ } // dispose
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return super.isFactoryForType(type)
+ || type == RelativeValueProvider.class;
+ }
+
+ /**
+ * @return the instance of the Relative Value Provider Adapter Factory
+ * @generated
+ */
+ private static RelativeValueProviderAdapterFactory getRelativeValueProviderAdapterFactory() {
+ return RelativeValueProviderAdapterFactory.INSTANCE;
+ }
+
+ /**
+ * @return the instance of the Standard Item Provider factory.
+ * @generated
+ */
+ private static EvolvingItemProviderAdapterFactory getItemProviderFactory() {
+ if (itemProviderFactory == null) {
+ itemProviderFactory = new EvolvingItemProviderAdapterFactory();
+ }
+ return itemProviderFactory;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIDiseaseModelLabelAdapter() {
+ return new EvolvingSIDiseaseModelLabelRelativeValueProviderAdapter();
+ }
+
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIRDiseaseModelLabelAdapter() {
+ return new EvolvingSIRDiseaseModelLabelRelativeValueProviderAdapter();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSEIRDiseaseModelLabelAdapter() {
+ return new EvolvingSEIRDiseaseModelLabelRelativeValueProviderAdapter();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIDiseaseModelLabelValueAdapter() {
+ return new EvolvingSIDiseaseModelLabelValueRelativeValueProviderAdapter();
+ }
+
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIRDiseaseModelLabelValueAdapter() {
+ return new EvolvingSIRDiseaseModelLabelValueRelativeValueProviderAdapter();
+ }
+
+
+ /**
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSEIRDiseaseModelLabelValueAdapter() {
+ return new EvolvingSEIRDiseaseModelLabelValueRelativeValueProviderAdapter();
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingSIDiseaseModelLabelRelativeValueProviderAdapter
+ extends DiseaseModelLabelRelativeValueProvider {
+
+ /**
+ * @generated
+ */
+ private IntegrationLabelValue getCurrentLabelValue() {
+ return (IntegrationLabelValue)((IntegrationLabel)getTarget()).getCurrentValue();
+ }
+
+ /**
+ * @generated
+ */
+ private RelativeValueProvider getCurrentLabelValueRelativeValueProvider() {
+ return (RelativeValueProvider)getRelativeValueProviderAdapterFactory()
+ .adapt(getCurrentLabelValue(), RelativeValueProvider.class);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getProperties() {
+ return getCurrentLabelValueRelativeValueProvider().getProperties();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getRelativeValue(final EStructuralFeature feature) {
+ return getCurrentLabelValueRelativeValueProvider().getRelativeValue(feature);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getDenominator(final EStructuralFeature feature) {
+ return ((DiseaseModelLabelValue)getCurrentLabelValue()).getPopulationCount();
+ }
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingSIRDiseaseModelLabelRelativeValueProviderAdapter
+ extends DiseaseModelLabelRelativeValueProvider {
+
+ /**
+ * @generated
+ */
+ private IntegrationLabelValue getCurrentLabelValue() {
+ return (IntegrationLabelValue)((IntegrationLabel)getTarget()).getCurrentValue();
+ }
+
+ /**
+ * @generated
+ */
+ private RelativeValueProvider getCurrentLabelValueRelativeValueProvider() {
+ return (RelativeValueProvider)getRelativeValueProviderAdapterFactory()
+ .adapt(getCurrentLabelValue(), RelativeValueProvider.class);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getProperties() {
+ return getCurrentLabelValueRelativeValueProvider().getProperties();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getRelativeValue(final EStructuralFeature feature) {
+ return getCurrentLabelValueRelativeValueProvider().getRelativeValue(feature);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getDenominator(final EStructuralFeature feature) {
+ return ((DiseaseModelLabelValue)getCurrentLabelValue()).getPopulationCount();
+ }
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingSEIRDiseaseModelLabelRelativeValueProviderAdapter
+ extends DiseaseModelLabelRelativeValueProvider {
+
+ /**
+ * @generated
+ */
+ private IntegrationLabelValue getCurrentLabelValue() {
+ return (IntegrationLabelValue)((IntegrationLabel)getTarget()).getCurrentValue();
+ }
+
+ /**
+ * @generated
+ */
+ private RelativeValueProvider getCurrentLabelValueRelativeValueProvider() {
+ return (RelativeValueProvider)getRelativeValueProviderAdapterFactory()
+ .adapt(getCurrentLabelValue(), RelativeValueProvider.class);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getProperties() {
+ return getCurrentLabelValueRelativeValueProvider().getProperties();
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getRelativeValue(final EStructuralFeature feature) {
+ return getCurrentLabelValueRelativeValueProvider().getRelativeValue(feature);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getDenominator(final EStructuralFeature feature) {
+ return ((DiseaseModelLabelValue)getCurrentLabelValue()).getPopulationCount();
+ }
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingSIDiseaseModelLabelValueRelativeValueProviderAdapter
+ extends DiseaseModelLabelValueRelativeValueProvider {
+
+ /**
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getProperties() {
+ final IItemPropertySource propertySource = (IItemPropertySource)getItemProviderFactory()
+ .adapt(getTarget(), PropertySource.class);
+
+ final List<IItemPropertyDescriptor> properties = new ArrayList<IItemPropertyDescriptor>();
+ for (IItemPropertyDescriptor descriptor : propertySource.getPropertyDescriptors(null)) {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ if (!(feature instanceof EReference)) {
+ properties.add(descriptor);
+ }
+ }
+ return properties;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getRelativeValue(final EStructuralFeature feature) {
+ final IntegrationLabelValue labelValue = (IntegrationLabelValue)getTarget();
+ final double stateCount = labelValue.eGetDouble(feature.getFeatureID());
+ final double denominator = getDenominator(feature);
+ if (denominator <= 0.0) {
+ return 0.0;
+ }
+ return stateCount / denominator;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getDenominator(final EStructuralFeature feature) {
+ return ((DiseaseModelLabelValue)getTarget()).getPopulationCount();
+ }
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingSIRDiseaseModelLabelValueRelativeValueProviderAdapter
+ extends DiseaseModelLabelValueRelativeValueProvider {
+
+ /**
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getProperties() {
+ final IItemPropertySource propertySource = (IItemPropertySource)getItemProviderFactory()
+ .adapt(getTarget(), PropertySource.class);
+
+ final List<IItemPropertyDescriptor> properties = new ArrayList<IItemPropertyDescriptor>();
+ for (IItemPropertyDescriptor descriptor : propertySource.getPropertyDescriptors(null)) {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ if (!(feature instanceof EReference)) {
+ properties.add(descriptor);
+ }
+ }
+ return properties;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getRelativeValue(final EStructuralFeature feature) {
+ final IntegrationLabelValue labelValue = (IntegrationLabelValue)getTarget();
+ final double stateCount = labelValue.eGetDouble(feature.getFeatureID());
+ final double denominator = getDenominator(feature);
+ if (denominator <= 0.0) {
+ return 0.0;
+ }
+ return stateCount / denominator;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getDenominator(final EStructuralFeature feature) {
+ return ((DiseaseModelLabelValue)getTarget()).getPopulationCount();
+ }
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingSEIRDiseaseModelLabelValueRelativeValueProviderAdapter
+ extends DiseaseModelLabelValueRelativeValueProvider {
+
+ /**
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getProperties() {
+ final IItemPropertySource propertySource = (IItemPropertySource)getItemProviderFactory()
+ .adapt(getTarget(), PropertySource.class);
+
+ final List<IItemPropertyDescriptor> properties = new ArrayList<IItemPropertyDescriptor>();
+ for (IItemPropertyDescriptor descriptor : propertySource.getPropertyDescriptors(null)) {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ if (!(feature instanceof EReference)) {
+ properties.add(descriptor);
+ }
+ }
+ return properties;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getRelativeValue(final EStructuralFeature feature) {
+ final IntegrationLabelValue labelValue = (IntegrationLabelValue)getTarget();
+ final double stateCount = labelValue.eGetDouble(feature.getFeatureID());
+ final double denominator = getDenominator(feature);
+ if (denominator <= 0.0) {
+ return 0.0;
+ }
+ return stateCount / denominator;
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public double getDenominator(final EStructuralFeature feature) {
+ return ((DiseaseModelLabelValue)getTarget()).getPopulationCount();
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSEIRDiseaseModelPropertyEditor.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSEIRDiseaseModelPropertyEditor.java
new file mode 100644
index 0000000..bf8df53
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSEIRDiseaseModelPropertyEditor.java
@@ -0,0 +1,161 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import java.util.MissingResourceException;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @generated
+ */
+public class EvolvingSEIRDiseaseModelPropertyEditor extends
+ EvolvingSIRDiseaseModelPropertyEditor {
+ /**
+ * @param parent
+ * @param style
+ * @param model
+ * @param projectValidator
+ * @generated
+ */
+ public EvolvingSEIRDiseaseModelPropertyEditor(Composite parent, int style,
+ DiseaseModel model, ModifyListener projectValidator,
+ IProject project) {
+ super(parent, style, model, projectValidator, project);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public void populate(DiseaseModel object) {
+ super.populate(object);
+
+ EvolvingSEIRDiseaseModel model = (EvolvingSEIRDiseaseModel)object;
+
+ // Set value for Incubation Rate (Double)
+ try {
+ Double incubationRateValue = Double.parseDouble(
+ map.get(EvolvingPackage.Literals.EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE).getText());
+ model.setIncubationRate(incubationRateValue);
+ } catch (NumberFormatException nfe) {
+ // empty
+ }
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean validate() {
+ boolean valid = super.validate();
+
+ valid = valid && validateFeatureConstraint(EvolvingPackage.Literals.EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE);
+
+ return valid;
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingSEIRDiseaseModelPropertyStringProviderAdapter
+ extends StandardPropertyStringProviderAdapter {
+ /**
+ * @param descriptor
+ * @return the NLS'd name of the property to display to the user
+ * @generated
+ */
+ public String getPropertyName(IItemPropertyDescriptor descriptor) {
+ try {
+ return EvolvingWizardMessages
+ .getString(((EStructuralFeature) descriptor
+ .getFeature(null)).getName(), "EvolvingSEIRDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyName(descriptor);
+ }
+ } // getPropertyName
+
+ /**
+ * @param descriptor
+ * @return the NLS'd tool tip text that describes the property
+ * @generated
+ */
+ public String getPropertyToolTip(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + TT_SUFFIX, "EvolvingSEIRDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyToolTip(descriptor);
+ }
+ } // getPropertyToolTip
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text that represents the units of the
+ * property
+ * @generated
+ */
+ public String getPropertyUnits(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + UNIT_SUFFIX, "EvolvingSEIRDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyUnits(descriptor);
+ }
+ } // getPropertyUnits
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text for a missing property error message
+ * @generated
+ */
+ public String getPropertyMissing(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + MISSING_SUFFIX, "EvolvingSEIRDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyMissing(descriptor);
+ }
+ } // getPropertyMissing
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text for a missing property error message
+ * @generated
+ */
+ public String getPropertyInvalid(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + INVALID_SUFFIX, "EvolvingSEIRDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyInvalid(descriptor);
+ }
+ } // getPropertyInvalid
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSEIRDiseaseModelPropertyEditorAdapter.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSEIRDiseaseModelPropertyEditorAdapter.java
new file mode 100644
index 0000000..11ad070
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSEIRDiseaseModelPropertyEditorAdapter.java
@@ -0,0 +1,34 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditor;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditorAdapter;
+import org.eclipse.stem.ui.wizards.DiseaseModelPropertyComposite;
+import org.eclipse.swt.events.ModifyListener;
+
+/**
+ * @generated
+ */
+public class EvolvingSEIRDiseaseModelPropertyEditorAdapter extends
+ DiseaseModelPropertyEditorAdapter {
+
+ /**
+ * @generated
+ */
+ @Override
+ public DiseaseModelPropertyEditor createDiseaseModelPropertyEditor(
+ DiseaseModelPropertyComposite composite,
+ int style, ModifyListener projectValidator, IProject project) {
+ return new EvolvingSEIRDiseaseModelPropertyEditor(
+ composite, style,
+ (DiseaseModel)getTarget(), projectValidator, project);
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIDiseaseModelPropertyEditor.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIDiseaseModelPropertyEditor.java
new file mode 100644
index 0000000..7d515dd
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIDiseaseModelPropertyEditor.java
@@ -0,0 +1,152 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import java.util.MissingResourceException;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditor;
+import org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @generated
+ */
+public class EvolvingSIDiseaseModelPropertyEditor extends
+ StandardDiseaseModelPropertyEditor {
+ /**
+ * @param parent
+ * @param style
+ * @param model
+ * @param projectValidator
+ * @generated
+ */
+ public EvolvingSIDiseaseModelPropertyEditor(Composite parent, int style,
+ DiseaseModel model, ModifyListener projectValidator,
+ IProject project) {
+ super(parent, style, model, projectValidator, project);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public void populate(DiseaseModel object) {
+ super.populate(object);
+
+ // Remove Comment If Adding Custom Code
+ //EvolvingSIDiseaseModel model = (EvolvingSIDiseaseModel)object;
+
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean validate() {
+ boolean valid = super.validate();
+
+
+ return valid;
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingSIDiseaseModelPropertyStringProviderAdapter
+ extends StandardPropertyStringProviderAdapter {
+ /**
+ * @param descriptor
+ * @return the NLS'd name of the property to display to the user
+ * @generated
+ */
+ public String getPropertyName(IItemPropertyDescriptor descriptor) {
+ try {
+ return EvolvingWizardMessages
+ .getString(((EStructuralFeature) descriptor
+ .getFeature(null)).getName(), "EvolvingSIDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyName(descriptor);
+ }
+ } // getPropertyName
+
+ /**
+ * @param descriptor
+ * @return the NLS'd tool tip text that describes the property
+ * @generated
+ */
+ public String getPropertyToolTip(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + TT_SUFFIX, "EvolvingSIDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyToolTip(descriptor);
+ }
+ } // getPropertyToolTip
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text that represents the units of the
+ * property
+ * @generated
+ */
+ public String getPropertyUnits(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + UNIT_SUFFIX, "EvolvingSIDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyUnits(descriptor);
+ }
+ } // getPropertyUnits
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text for a missing property error message
+ * @generated
+ */
+ public String getPropertyMissing(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + MISSING_SUFFIX, "EvolvingSIDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyMissing(descriptor);
+ }
+ } // getPropertyMissing
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text for a missing property error message
+ * @generated
+ */
+ public String getPropertyInvalid(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + INVALID_SUFFIX, "EvolvingSIDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyInvalid(descriptor);
+ }
+ } // getPropertyInvalid
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIDiseaseModelPropertyEditorAdapter.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIDiseaseModelPropertyEditorAdapter.java
new file mode 100644
index 0000000..304d1ed
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIDiseaseModelPropertyEditorAdapter.java
@@ -0,0 +1,34 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditor;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditorAdapter;
+import org.eclipse.stem.ui.wizards.DiseaseModelPropertyComposite;
+import org.eclipse.swt.events.ModifyListener;
+
+/**
+ * @generated
+ */
+public class EvolvingSIDiseaseModelPropertyEditorAdapter extends
+ DiseaseModelPropertyEditorAdapter {
+
+ /**
+ * @generated
+ */
+ @Override
+ public DiseaseModelPropertyEditor createDiseaseModelPropertyEditor(
+ DiseaseModelPropertyComposite composite,
+ int style, ModifyListener projectValidator, IProject project) {
+ return new EvolvingSIDiseaseModelPropertyEditor(
+ composite, style,
+ (DiseaseModel)getTarget(), projectValidator, project);
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIRDiseaseModelPropertyEditor.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIRDiseaseModelPropertyEditor.java
new file mode 100644
index 0000000..68065e1
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIRDiseaseModelPropertyEditor.java
@@ -0,0 +1,161 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import java.util.MissingResourceException;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory.StandardPropertyStringProviderAdapter;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @generated
+ */
+public class EvolvingSIRDiseaseModelPropertyEditor extends
+ EvolvingSIDiseaseModelPropertyEditor {
+ /**
+ * @param parent
+ * @param style
+ * @param model
+ * @param projectValidator
+ * @generated
+ */
+ public EvolvingSIRDiseaseModelPropertyEditor(Composite parent, int style,
+ DiseaseModel model, ModifyListener projectValidator,
+ IProject project) {
+ super(parent, style, model, projectValidator, project);
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public void populate(DiseaseModel object) {
+ super.populate(object);
+
+ EvolvingSIRDiseaseModel model = (EvolvingSIRDiseaseModel)object;
+
+ // Set value for Immunity Loss Rate (Double)
+ try {
+ Double immunityLossRateValue = Double.parseDouble(
+ map.get(EvolvingPackage.Literals.EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE).getText());
+ model.setImmunityLossRate(immunityLossRateValue);
+ } catch (NumberFormatException nfe) {
+ // empty
+ }
+ }
+
+ /**
+ * @generated
+ */
+ @Override
+ public boolean validate() {
+ boolean valid = super.validate();
+
+ valid = valid && validateFeatureConstraint(EvolvingPackage.Literals.EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE);
+
+ return valid;
+ }
+
+
+ /**
+ * @generated
+ */
+ public static class EvolvingSIRDiseaseModelPropertyStringProviderAdapter
+ extends StandardPropertyStringProviderAdapter {
+ /**
+ * @param descriptor
+ * @return the NLS'd name of the property to display to the user
+ * @generated
+ */
+ public String getPropertyName(IItemPropertyDescriptor descriptor) {
+ try {
+ return EvolvingWizardMessages
+ .getString(((EStructuralFeature) descriptor
+ .getFeature(null)).getName(), "EvolvingSIRDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyName(descriptor);
+ }
+ } // getPropertyName
+
+ /**
+ * @param descriptor
+ * @return the NLS'd tool tip text that describes the property
+ * @generated
+ */
+ public String getPropertyToolTip(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + TT_SUFFIX, "EvolvingSIRDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyToolTip(descriptor);
+ }
+ } // getPropertyToolTip
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text that represents the units of the
+ * property
+ * @generated
+ */
+ public String getPropertyUnits(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + UNIT_SUFFIX, "EvolvingSIRDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyUnits(descriptor);
+ }
+ } // getPropertyUnits
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text for a missing property error message
+ * @generated
+ */
+ public String getPropertyMissing(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + MISSING_SUFFIX, "EvolvingSIRDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyMissing(descriptor);
+ }
+ } // getPropertyMissing
+
+ /**
+ * @param descriptor
+ * @return the NLS'd text for a missing property error message
+ * @generated
+ */
+ public String getPropertyInvalid(
+ IItemPropertyDescriptor descriptor) {
+ try {
+ final EStructuralFeature feature = (EStructuralFeature) descriptor
+ .getFeature(null);
+ return EvolvingWizardMessages.getString(feature
+ .getName() + INVALID_SUFFIX, "EvolvingSIRDiseaseModel");
+ } catch (MissingResourceException e) {
+ return super.getPropertyInvalid(descriptor);
+ }
+ } // getPropertyInvalid
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIRDiseaseModelPropertyEditorAdapter.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIRDiseaseModelPropertyEditorAdapter.java
new file mode 100644
index 0000000..0fede85
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingSIRDiseaseModelPropertyEditorAdapter.java
@@ -0,0 +1,34 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditor;
+import org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor.DiseaseModelPropertyEditorAdapter;
+import org.eclipse.stem.ui.wizards.DiseaseModelPropertyComposite;
+import org.eclipse.swt.events.ModifyListener;
+
+/**
+ * @generated
+ */
+public class EvolvingSIRDiseaseModelPropertyEditorAdapter extends
+ DiseaseModelPropertyEditorAdapter {
+
+ /**
+ * @generated
+ */
+ @Override
+ public DiseaseModelPropertyEditor createDiseaseModelPropertyEditor(
+ DiseaseModelPropertyComposite composite,
+ int style, ModifyListener projectValidator, IProject project) {
+ return new EvolvingSIRDiseaseModelPropertyEditor(
+ composite, style,
+ (DiseaseModel)getTarget(), projectValidator, project);
+ }
+
+}
\ No newline at end of file
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingWizardMessages.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingWizardMessages.java
new file mode 100644
index 0000000..6cdafd3
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/EvolvingWizardMessages.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.presentation;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * @generated
+ */
+public class EvolvingWizardMessages {
+ /**
+ * @generated
+ */
+ private static final String BUNDLE_NAME = "org.eclipse.stem.diseasemodels.evolving.presentation.messages"; //$NON-NLS-1$
+
+ /**
+ * @generated
+ */
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
+
+ /**
+ * @generated
+ */
+ public EvolvingWizardMessages() {
+ // empty
+ }
+
+ /**
+ * @param key the key for the message
+ * @return the string that matches the key
+ * @throws MissingResourceException if the key cannot be found
+ * @generated
+ */
+ public static String getString(String key) throws MissingResourceException {
+ return RESOURCE_BUNDLE.getString(key);
+ }
+
+ /**
+ * @param key the key for the message
+ * @param context the class name for which this key resides
+ * @return the string that matches the key
+ * @throws MissingResourceException if the key cannot be found
+ * @generated
+ */
+ public static String getString(String key, String context) throws MissingResourceException {
+ return RESOURCE_BUNDLE.getString(context +"."+ key);
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/messages.properties b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/messages.properties
new file mode 100644
index 0000000..b9c1bb4
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/presentation/messages.properties
@@ -0,0 +1,41 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+# Messages for EvolvingSIDiseaseModel
+
+EvolvingSIRDiseaseModel.immunityLossRate = Immunity Loss Rate
+EvolvingSIRDiseaseModel.immunityLossRateTT = Immunity Loss Rate
+EvolvingSIRDiseaseModel.immunityLossRateUNIT = [1/time]
+EvolvingSIRDiseaseModel.immunityLossRateMISSING = A value for Immunity Loss Rate is required
+EvolvingSIRDiseaseModel.immunityLossRateINVALID = The value for Immunity Loss Rate is invalid
+EvolvingSEIRDiseaseModel.incubationRate = Incubation Rate
+EvolvingSEIRDiseaseModel.incubationRateTT = Incubation Rate
+EvolvingSEIRDiseaseModel.incubationRateUNIT = [1/time]
+EvolvingSEIRDiseaseModel.incubationRateMISSING = A value for Incubation Rate is required
+EvolvingSEIRDiseaseModel.incubationRateINVALID = The value for Incubation Rate is invalid
+
+EvolvingSEIRDiseaseModel.caseMutationRate = Case Mutation Rate
+EvolvingSEIRDiseaseModel.caseMutationRateTT = Case Mutation Rate
+EvolvingSEIRDiseaseModel.caseMutationRateUNIT = [1/time]
+EvolvingSEIRDiseaseModel.caseMutationRateMISSING = A value for Case Mutation Rate is required
+EvolvingSEIRDiseaseModel.caseMutationRateINVALID = The value for Case Mutation Rate is invalid
+
+EvolvingSEIRDiseaseModel.crossImmunityRate = Cross Immunity Rate
+EvolvingSEIRDiseaseModel.crossImmunityRateTT = Cross Immunity Rate
+EvolvingSEIRDiseaseModel.crossImmunityRateUNIT = [1/time]
+EvolvingSEIRDiseaseModel.crossImmunityRateMISSING = A value for Cross Immunity Rate is required
+EvolvingSEIRDiseaseModel.crossImmunityRateINVALID = The value for Cross Immunity Rate is invalid
+
+EvolvingSEIRDiseaseModel.genomeLength = Genome Length
+EvolvingSEIRDiseaseModel.genomeLengthTT = Genome Length
+EvolvingSEIRDiseaseModel.genomeLengthUNIT = [eg., nt]
+EvolvingSEIRDiseaseModel.genomeLengthMISSING = A value for Genome Length is required
+EvolvingSEIRDiseaseModel.genomeLengthINVALID = The value for Genome Length is invalid
+
+EvolvingSEIRDiseaseModel.geneticDistNonlinExponent = GeneticDistance NonlinExponent
+EvolvingSEIRDiseaseModel.geneticDistNonlinExponentTT = GeneticDistance NonlinExponent
+EvolvingSEIRDiseaseModel.geneticDistNonlinExponentUNIT = [none]
+EvolvingSEIRDiseaseModel.geneticDistNonlinExponentMISSING = A value for GeneticDistance NonlinExponent is required
+EvolvingSEIRDiseaseModel.geneticDistNonlinExponentINVALID = The value for GeneticDistance NonlinExponent is invalid
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingDiseaseTransformerItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingDiseaseTransformerItemProvider.java
new file mode 100644
index 0000000..f693071
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingDiseaseTransformerItemProvider.java
@@ -0,0 +1,239 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.stem.core.model.provider.TransformationDecoratorItemProvider;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingDiseaseTransformerItemProvider extends TransformationDecoratorItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingDiseaseTransformerItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addBaseDiseasePropertyDescriptor(object);
+ addEvolvedDiseasesPropertyDescriptor(object);
+ addEvolutionCountPropertyDescriptor(object);
+ addEvolutionCountHardLimitPropertyDescriptor(object);
+ addStopAllEvolutionPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Base Disease feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBaseDiseasePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingDiseaseTransformer_baseDisease_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingDiseaseTransformer_baseDisease_feature", "_UI_EvolvingDiseaseTransformer_type"),
+ EvolvingPackage.Literals.EVOLVING_DISEASE_TRANSFORMER__BASE_DISEASE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Evolved Diseases feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addEvolvedDiseasesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingDiseaseTransformer_evolvedDiseases_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingDiseaseTransformer_evolvedDiseases_feature", "_UI_EvolvingDiseaseTransformer_type"),
+ EvolvingPackage.Literals.EVOLVING_DISEASE_TRANSFORMER__EVOLVED_DISEASES,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Evolution Count feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addEvolutionCountPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingDiseaseTransformer_evolutionCount_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingDiseaseTransformer_evolutionCount_feature", "_UI_EvolvingDiseaseTransformer_type"),
+ EvolvingPackage.Literals.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Evolution Count Hard Limit feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addEvolutionCountHardLimitPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingDiseaseTransformer_evolutionCountHardLimit_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingDiseaseTransformer_evolutionCountHardLimit_feature", "_UI_EvolvingDiseaseTransformer_type"),
+ EvolvingPackage.Literals.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT_HARD_LIMIT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Stop All Evolution feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addStopAllEvolutionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingDiseaseTransformer_stopAllEvolution_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingDiseaseTransformer_stopAllEvolution_feature", "_UI_EvolvingDiseaseTransformer_type"),
+ EvolvingPackage.Literals.EVOLVING_DISEASE_TRANSFORMER__STOP_ALL_EVOLUTION,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns EvolvingDiseaseTransformer.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EvolvingDiseaseTransformer"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ URI labelValue = ((EvolvingDiseaseTransformer)object).getURI();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_EvolvingDiseaseTransformer_type") :
+ getString("_UI_EvolvingDiseaseTransformer_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(EvolvingDiseaseTransformer.class)) {
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT:
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__EVOLUTION_COUNT_HARD_LIMIT:
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER__STOP_ALL_EVOLUTION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingEditPlugin.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingEditPlugin.java
new file mode 100644
index 0000000..59b4bf7
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingEditPlugin.java
@@ -0,0 +1,103 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
+import org.eclipse.stem.core.common.provider.CoreEditPlugin;
+import org.eclipse.stem.definitions.edges.provider.DefinitionsEditPlugin;
+import org.eclipse.stem.diseasemodels.standard.provider.DiseasemodelsEditPlugin;
+import org.eclipse.stem.populationmodels.standard.provider.StandardEditPlugin;
+
+/**
+ * This is the central singleton for the Evolving editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class EvolvingEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final EvolvingEditPlugin INSTANCE = new EvolvingEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingEditPlugin() {
+ super
+ (new ResourceLocator [] {
+ CoreEditPlugin.INSTANCE,
+ DiseasemodelsEditPlugin.INSTANCE,
+ EcoreEditPlugin.INSTANCE,
+ StandardEditPlugin.INSTANCE,
+ DefinitionsEditPlugin.INSTANCE,
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingItemProviderAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingItemProviderAdapterFactory.java
new file mode 100644
index 0000000..99a0b18
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingItemProviderAdapterFactory.java
@@ -0,0 +1,417 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.stem.diseasemodels.evolving.util.EvolvingAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingItemProviderAdapterFactory extends EvolvingAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingDiseaseTransformerItemProvider evolvingDiseaseTransformerItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingDiseaseTransformerAdapter() {
+ if (evolvingDiseaseTransformerItemProvider == null) {
+ evolvingDiseaseTransformerItemProvider = new EvolvingDiseaseTransformerItemProvider(this);
+ }
+
+ return evolvingDiseaseTransformerItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingSIDiseaseModelLabelItemProvider evolvingSIDiseaseModelLabelItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIDiseaseModelLabelAdapter() {
+ if (evolvingSIDiseaseModelLabelItemProvider == null) {
+ evolvingSIDiseaseModelLabelItemProvider = new EvolvingSIDiseaseModelLabelItemProvider(this);
+ }
+
+ return evolvingSIDiseaseModelLabelItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingSIDiseaseModelLabelValueItemProvider evolvingSIDiseaseModelLabelValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIDiseaseModelLabelValueAdapter() {
+ if (evolvingSIDiseaseModelLabelValueItemProvider == null) {
+ evolvingSIDiseaseModelLabelValueItemProvider = new EvolvingSIDiseaseModelLabelValueItemProvider(this);
+ }
+
+ return evolvingSIDiseaseModelLabelValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingSIDiseaseModelItemProvider evolvingSIDiseaseModelItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIDiseaseModelAdapter() {
+ if (evolvingSIDiseaseModelItemProvider == null) {
+ evolvingSIDiseaseModelItemProvider = new EvolvingSIDiseaseModelItemProvider(this);
+ }
+
+ return evolvingSIDiseaseModelItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingSIRDiseaseModelLabelItemProvider evolvingSIRDiseaseModelLabelItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIRDiseaseModelLabelAdapter() {
+ if (evolvingSIRDiseaseModelLabelItemProvider == null) {
+ evolvingSIRDiseaseModelLabelItemProvider = new EvolvingSIRDiseaseModelLabelItemProvider(this);
+ }
+
+ return evolvingSIRDiseaseModelLabelItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingSIRDiseaseModelLabelValueItemProvider evolvingSIRDiseaseModelLabelValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIRDiseaseModelLabelValueAdapter() {
+ if (evolvingSIRDiseaseModelLabelValueItemProvider == null) {
+ evolvingSIRDiseaseModelLabelValueItemProvider = new EvolvingSIRDiseaseModelLabelValueItemProvider(this);
+ }
+
+ return evolvingSIRDiseaseModelLabelValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingSIRDiseaseModelItemProvider evolvingSIRDiseaseModelItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSIRDiseaseModelAdapter() {
+ if (evolvingSIRDiseaseModelItemProvider == null) {
+ evolvingSIRDiseaseModelItemProvider = new EvolvingSIRDiseaseModelItemProvider(this);
+ }
+
+ return evolvingSIRDiseaseModelItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingSEIRDiseaseModelLabelItemProvider evolvingSEIRDiseaseModelLabelItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSEIRDiseaseModelLabelAdapter() {
+ if (evolvingSEIRDiseaseModelLabelItemProvider == null) {
+ evolvingSEIRDiseaseModelLabelItemProvider = new EvolvingSEIRDiseaseModelLabelItemProvider(this);
+ }
+
+ return evolvingSEIRDiseaseModelLabelItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingSEIRDiseaseModelLabelValueItemProvider evolvingSEIRDiseaseModelLabelValueItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSEIRDiseaseModelLabelValueAdapter() {
+ if (evolvingSEIRDiseaseModelLabelValueItemProvider == null) {
+ evolvingSEIRDiseaseModelLabelValueItemProvider = new EvolvingSEIRDiseaseModelLabelValueItemProvider(this);
+ }
+
+ return evolvingSEIRDiseaseModelLabelValueItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingSEIRDiseaseModelItemProvider evolvingSEIRDiseaseModelItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEvolvingSEIRDiseaseModelAdapter() {
+ if (evolvingSEIRDiseaseModelItemProvider == null) {
+ evolvingSEIRDiseaseModelItemProvider = new EvolvingSEIRDiseaseModelItemProvider(this);
+ }
+
+ return evolvingSEIRDiseaseModelItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose() {
+ if (evolvingDiseaseTransformerItemProvider != null) evolvingDiseaseTransformerItemProvider.dispose();
+ if (evolvingSIDiseaseModelLabelItemProvider != null) evolvingSIDiseaseModelLabelItemProvider.dispose();
+ if (evolvingSIDiseaseModelLabelValueItemProvider != null) evolvingSIDiseaseModelLabelValueItemProvider.dispose();
+ if (evolvingSIDiseaseModelItemProvider != null) evolvingSIDiseaseModelItemProvider.dispose();
+ if (evolvingSIRDiseaseModelLabelItemProvider != null) evolvingSIRDiseaseModelLabelItemProvider.dispose();
+ if (evolvingSIRDiseaseModelLabelValueItemProvider != null) evolvingSIRDiseaseModelLabelValueItemProvider.dispose();
+ if (evolvingSIRDiseaseModelItemProvider != null) evolvingSIRDiseaseModelItemProvider.dispose();
+ if (evolvingSEIRDiseaseModelLabelItemProvider != null) evolvingSEIRDiseaseModelLabelItemProvider.dispose();
+ if (evolvingSEIRDiseaseModelLabelValueItemProvider != null) evolvingSEIRDiseaseModelLabelValueItemProvider.dispose();
+ if (evolvingSEIRDiseaseModelItemProvider != null) evolvingSEIRDiseaseModelItemProvider.dispose();
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSEIRDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSEIRDiseaseModelItemProvider.java
new file mode 100644
index 0000000..b4c70eb
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSEIRDiseaseModelItemProvider.java
@@ -0,0 +1,123 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingSEIRDiseaseModelItemProvider
+ extends EvolvingSIRDiseaseModelItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSEIRDiseaseModelItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addIncubationRatePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Incubation Rate feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addIncubationRatePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingSEIRDiseaseModel_incubationRate_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingSEIRDiseaseModel_incubationRate_feature", "_UI_EvolvingSEIRDiseaseModel_type"),
+ EvolvingPackage.Literals.EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((EvolvingSEIRDiseaseModel)object).getDiseaseName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_EvolvingSEIRDiseaseModel_type") :
+ getString("_UI_EvolvingSEIRDiseaseModel_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(EvolvingSEIRDiseaseModel.class)) {
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL__INCUBATION_RATE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSEIRDiseaseModelLabelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSEIRDiseaseModelLabelItemProvider.java
new file mode 100644
index 0000000..28e656d
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSEIRDiseaseModelLabelItemProvider.java
@@ -0,0 +1,116 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel;
+
+import org.eclipse.stem.diseasemodels.standard.provider.StandardDiseaseModelLabelItemProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingSEIRDiseaseModelLabelItemProvider extends StandardDiseaseModelLabelItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSEIRDiseaseModelLabelItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns EvolvingSEIRDiseaseModelLabel.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EvolvingSEIRDiseaseModelLabel"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ URI labelValue = ((EvolvingSEIRDiseaseModelLabel)object).getURI();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_EvolvingSEIRDiseaseModelLabel_type") :
+ getString("_UI_EvolvingSEIRDiseaseModelLabel_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSEIRDiseaseModelLabelValueItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSEIRDiseaseModelLabelValueItemProvider.java
new file mode 100644
index 0000000..18c3e2a
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSEIRDiseaseModelLabelValueItemProvider.java
@@ -0,0 +1,112 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue;
+
+import org.eclipse.stem.diseasemodels.standard.provider.SEIRLabelValueItemProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingSEIRDiseaseModelLabelValueItemProvider extends SEIRLabelValueItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSEIRDiseaseModelLabelValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns EvolvingSEIRDiseaseModelLabelValue.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EvolvingSEIRDiseaseModelLabelValue"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ EvolvingSEIRDiseaseModelLabelValue evolvingSEIRDiseaseModelLabelValue = (EvolvingSEIRDiseaseModelLabelValue)object;
+ return getString("_UI_EvolvingSEIRDiseaseModelLabelValue_type") + " " + evolvingSEIRDiseaseModelLabelValue.getPopulationCount();
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIDiseaseModelItemProvider.java
new file mode 100644
index 0000000..036183d
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIDiseaseModelItemProvider.java
@@ -0,0 +1,186 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.provider.SIItemProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingSIDiseaseModelItemProvider
+ extends SIItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIDiseaseModelItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addCaseMutationRatePropertyDescriptor(object);
+ addGenomeLengthPropertyDescriptor(object);
+ addGeneticDistNonlinExponentPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Case Mutation Rate feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCaseMutationRatePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingSIDiseaseModel_caseMutationRate_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingSIDiseaseModel_caseMutationRate_feature", "_UI_EvolvingSIDiseaseModel_type"),
+ EvolvingPackage.Literals.EVOLVING_SI_DISEASE_MODEL__CASE_MUTATION_RATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Genome Length feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGenomeLengthPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingSIDiseaseModel_genomeLength_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingSIDiseaseModel_genomeLength_feature", "_UI_EvolvingSIDiseaseModel_type"),
+ EvolvingPackage.Literals.EVOLVING_SI_DISEASE_MODEL__GENOME_LENGTH,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Genetic Dist Nonlin Exponent feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGeneticDistNonlinExponentPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingSIDiseaseModel_geneticDistNonlinExponent_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingSIDiseaseModel_geneticDistNonlinExponent_feature", "_UI_EvolvingSIDiseaseModel_type"),
+ EvolvingPackage.Literals.EVOLVING_SI_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((EvolvingSIDiseaseModel)object).getDiseaseName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_EvolvingSIDiseaseModel_type") :
+ getString("_UI_EvolvingSIDiseaseModel_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(EvolvingSIDiseaseModel.class)) {
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME:
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__EVOLUTION_COUNT:
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__CASE_MUTATION_RATE:
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENOME_LENGTH:
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL__GENETIC_DIST_NONLIN_EXPONENT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIDiseaseModelLabelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIDiseaseModelLabelItemProvider.java
new file mode 100644
index 0000000..cd16fb1
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIDiseaseModelLabelItemProvider.java
@@ -0,0 +1,116 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel;
+
+import org.eclipse.stem.diseasemodels.standard.provider.StandardDiseaseModelLabelItemProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingSIDiseaseModelLabelItemProvider extends StandardDiseaseModelLabelItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIDiseaseModelLabelItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns EvolvingSIDiseaseModelLabel.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EvolvingSIDiseaseModelLabel"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ URI labelValue = ((EvolvingSIDiseaseModelLabel)object).getURI();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_EvolvingSIDiseaseModelLabel_type") :
+ getString("_UI_EvolvingSIDiseaseModelLabel_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIDiseaseModelLabelValueItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIDiseaseModelLabelValueItemProvider.java
new file mode 100644
index 0000000..66c6c3e
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIDiseaseModelLabelValueItemProvider.java
@@ -0,0 +1,112 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue;
+
+import org.eclipse.stem.diseasemodels.standard.provider.SILabelValueItemProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingSIDiseaseModelLabelValueItemProvider extends SILabelValueItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIDiseaseModelLabelValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns EvolvingSIDiseaseModelLabelValue.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EvolvingSIDiseaseModelLabelValue"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ EvolvingSIDiseaseModelLabelValue evolvingSIDiseaseModelLabelValue = (EvolvingSIDiseaseModelLabelValue)object;
+ return getString("_UI_EvolvingSIDiseaseModelLabelValue_type") + " " + evolvingSIDiseaseModelLabelValue.getPopulationCount();
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIRDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIRDiseaseModelItemProvider.java
new file mode 100644
index 0000000..6b69109
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIRDiseaseModelItemProvider.java
@@ -0,0 +1,147 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingSIRDiseaseModelItemProvider
+ extends EvolvingSIDiseaseModelItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIRDiseaseModelItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addImmunityLossRatePropertyDescriptor(object);
+ addCrossImmunityRatePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Immunity Loss Rate feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addImmunityLossRatePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingSIRDiseaseModel_immunityLossRate_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingSIRDiseaseModel_immunityLossRate_feature", "_UI_EvolvingSIRDiseaseModel_type"),
+ EvolvingPackage.Literals.EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Cross Immunity Rate feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addCrossImmunityRatePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EvolvingSIRDiseaseModel_crossImmunityRate_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EvolvingSIRDiseaseModel_crossImmunityRate_feature", "_UI_EvolvingSIRDiseaseModel_type"),
+ EvolvingPackage.Literals.EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.REAL_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((EvolvingSIRDiseaseModel)object).getDiseaseName();
+ return label == null || label.length() == 0 ?
+ getString("_UI_EvolvingSIRDiseaseModel_type") :
+ getString("_UI_EvolvingSIRDiseaseModel_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(EvolvingSIRDiseaseModel.class)) {
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__IMMUNITY_LOSS_RATE:
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL__CROSS_IMMUNITY_RATE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIRDiseaseModelLabelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIRDiseaseModelLabelItemProvider.java
new file mode 100644
index 0000000..2dda37f
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIRDiseaseModelLabelItemProvider.java
@@ -0,0 +1,116 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel;
+
+import org.eclipse.stem.diseasemodels.standard.provider.StandardDiseaseModelLabelItemProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingSIRDiseaseModelLabelItemProvider extends StandardDiseaseModelLabelItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIRDiseaseModelLabelItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns EvolvingSIRDiseaseModelLabel.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EvolvingSIRDiseaseModelLabel"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ URI labelValue = ((EvolvingSIRDiseaseModelLabel)object).getURI();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ?
+ getString("_UI_EvolvingSIRDiseaseModelLabel_type") :
+ getString("_UI_EvolvingSIRDiseaseModelLabel_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIRDiseaseModelLabelValueItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIRDiseaseModelLabelValueItemProvider.java
new file mode 100644
index 0000000..625231d
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/provider/EvolvingSIRDiseaseModelLabelValueItemProvider.java
@@ -0,0 +1,112 @@
+/**
+ */
+package org.eclipse.stem.diseasemodels.evolving.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue;
+
+import org.eclipse.stem.diseasemodels.standard.provider.SIRLabelValueItemProvider;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EvolvingSIRDiseaseModelLabelValueItemProvider extends SIRLabelValueItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSIRDiseaseModelLabelValueItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns EvolvingSIRDiseaseModelLabelValue.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EvolvingSIRDiseaseModelLabelValue"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ EvolvingSIRDiseaseModelLabelValue evolvingSIRDiseaseModelLabelValue = (EvolvingSIRDiseaseModelLabelValue)object;
+ return getString("_UI_EvolvingSIRDiseaseModelLabelValue_type") + " " + evolvingSIRDiseaseModelLabelValue.getPopulationCount();
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return EvolvingEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/util/EvolvingAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/util/EvolvingAdapterFactory.java
new file mode 100644
index 0000000..c9561cb
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/util/EvolvingAdapterFactory.java
@@ -0,0 +1,800 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.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.stem.core.common.Identifiable;
+import org.eclipse.stem.core.common.PrimitiveTypeOperations;
+import org.eclipse.stem.core.common.SanityChecker;
+import org.eclipse.stem.core.graph.DynamicLabel;
+import org.eclipse.stem.core.graph.DynamicNodeLabel;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.IntegrationLabelValue;
+import org.eclipse.stem.core.graph.Label;
+import org.eclipse.stem.core.graph.LabelValue;
+import org.eclipse.stem.core.graph.NodeLabel;
+import org.eclipse.stem.core.model.Decorator;
+import org.eclipse.stem.core.model.IntegrationDecorator;
+import org.eclipse.stem.core.model.NodeDecorator;
+import org.eclipse.stem.core.model.TransformationDecorator;
+import org.eclipse.stem.core.modifier.Modifiable;
+import org.eclipse.stem.diseasemodels.evolving.*;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.SEIRLabelValue;
+import org.eclipse.stem.diseasemodels.standard.SI;
+import org.eclipse.stem.diseasemodels.standard.SILabelValue;
+import org.eclipse.stem.diseasemodels.standard.SIRLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue;
+
+/**
+ * <!-- 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.stem.diseasemodels.evolving.EvolvingPackage
+ * @generated
+ */
+public class EvolvingAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static EvolvingPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = EvolvingPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EvolvingSwitch<Adapter> modelSwitch =
+ new EvolvingSwitch<Adapter>() {
+ @Override
+ public Adapter caseEvolvingDiseaseTransformer(EvolvingDiseaseTransformer object) {
+ return createEvolvingDiseaseTransformerAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingDiseaseModel(EvolvingDiseaseModel object) {
+ return createEvolvingDiseaseModelAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSIDiseaseModelLabel(EvolvingSIDiseaseModelLabel object) {
+ return createEvolvingSIDiseaseModelLabelAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSIDiseaseModelLabelValue(EvolvingSIDiseaseModelLabelValue object) {
+ return createEvolvingSIDiseaseModelLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSIDiseaseModel(EvolvingSIDiseaseModel object) {
+ return createEvolvingSIDiseaseModelAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSIRDiseaseModelLabel(EvolvingSIRDiseaseModelLabel object) {
+ return createEvolvingSIRDiseaseModelLabelAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSIRDiseaseModelLabelValue(EvolvingSIRDiseaseModelLabelValue object) {
+ return createEvolvingSIRDiseaseModelLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSIRDiseaseModel(EvolvingSIRDiseaseModel object) {
+ return createEvolvingSIRDiseaseModelAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSEIRDiseaseModelLabel(EvolvingSEIRDiseaseModelLabel object) {
+ return createEvolvingSEIRDiseaseModelLabelAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSEIRDiseaseModelLabelValue(EvolvingSEIRDiseaseModelLabelValue object) {
+ return createEvolvingSEIRDiseaseModelLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseEvolvingSEIRDiseaseModel(EvolvingSEIRDiseaseModel object) {
+ return createEvolvingSEIRDiseaseModelAdapter();
+ }
+ @Override
+ public <T> Adapter caseComparable(Comparable<T> object) {
+ return createComparableAdapter();
+ }
+ @Override
+ public Adapter caseSanityChecker(SanityChecker object) {
+ return createSanityCheckerAdapter();
+ }
+ @Override
+ public Adapter caseIdentifiable(Identifiable object) {
+ return createIdentifiableAdapter();
+ }
+ @Override
+ public Adapter caseDecorator(Decorator object) {
+ return createDecoratorAdapter();
+ }
+ @Override
+ public Adapter caseNodeDecorator(NodeDecorator object) {
+ return createNodeDecoratorAdapter();
+ }
+ @Override
+ public Adapter caseTransformationDecorator(TransformationDecorator object) {
+ return createTransformationDecoratorAdapter();
+ }
+ @Override
+ public Adapter caseLabel(Label object) {
+ return createLabelAdapter();
+ }
+ @Override
+ public Adapter caseDynamicLabel(DynamicLabel object) {
+ return createDynamicLabelAdapter();
+ }
+ @Override
+ public Adapter caseNodeLabel(NodeLabel object) {
+ return createNodeLabelAdapter();
+ }
+ @Override
+ public Adapter caseDynamicNodeLabel(DynamicNodeLabel object) {
+ return createDynamicNodeLabelAdapter();
+ }
+ @Override
+ public Adapter caseIntegrationLabel(IntegrationLabel object) {
+ return createIntegrationLabelAdapter();
+ }
+ @Override
+ public Adapter caseDiseaseModelLabel(DiseaseModelLabel object) {
+ return createDiseaseModelLabelAdapter();
+ }
+ @Override
+ public Adapter caseStandardDiseaseModelLabel(StandardDiseaseModelLabel object) {
+ return createStandardDiseaseModelLabelAdapter();
+ }
+ @Override
+ public Adapter caseLabelValue(LabelValue object) {
+ return createLabelValueAdapter();
+ }
+ @Override
+ public Adapter casePrimitiveTypeOperations(PrimitiveTypeOperations object) {
+ return createPrimitiveTypeOperationsAdapter();
+ }
+ @Override
+ public Adapter caseIntegrationLabelValue(IntegrationLabelValue object) {
+ return createIntegrationLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseDiseaseModelLabelValue(DiseaseModelLabelValue object) {
+ return createDiseaseModelLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseStandardDiseaseModelLabelValue(StandardDiseaseModelLabelValue object) {
+ return createStandardDiseaseModelLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseSILabelValue(SILabelValue object) {
+ return createSILabelValueAdapter();
+ }
+ @Override
+ public Adapter caseIntegrationDecorator(IntegrationDecorator object) {
+ return createIntegrationDecoratorAdapter();
+ }
+ @Override
+ public Adapter caseModifiable(Modifiable object) {
+ return createModifiableAdapter();
+ }
+ @Override
+ public Adapter caseDiseaseModel(DiseaseModel object) {
+ return createDiseaseModelAdapter();
+ }
+ @Override
+ public Adapter caseStandardDiseaseModel(StandardDiseaseModel object) {
+ return createStandardDiseaseModelAdapter();
+ }
+ @Override
+ public Adapter caseSI(SI object) {
+ return createSIAdapter();
+ }
+ @Override
+ public Adapter caseSIRLabelValue(SIRLabelValue object) {
+ return createSIRLabelValueAdapter();
+ }
+ @Override
+ public Adapter caseSEIRLabelValue(SEIRLabelValue object) {
+ return createSEIRLabelValueAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer <em>Disease Transformer</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.stem.diseasemodels.evolving.EvolvingDiseaseTransformer
+ * @generated
+ */
+ public Adapter createEvolvingDiseaseTransformerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel <em>Disease 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.stem.diseasemodels.evolving.EvolvingDiseaseModel
+ * @generated
+ */
+ public Adapter createEvolvingDiseaseModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel <em>SI Disease Model Label</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.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabel
+ * @generated
+ */
+ public Adapter createEvolvingSIDiseaseModelLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue <em>SI Disease Model Label Value</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.stem.diseasemodels.evolving.EvolvingSIDiseaseModelLabelValue
+ * @generated
+ */
+ public Adapter createEvolvingSIDiseaseModelLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel <em>SI Disease 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.stem.diseasemodels.evolving.EvolvingSIDiseaseModel
+ * @generated
+ */
+ public Adapter createEvolvingSIDiseaseModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel <em>SIR Disease Model Label</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.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabel
+ * @generated
+ */
+ public Adapter createEvolvingSIRDiseaseModelLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue <em>SIR Disease Model Label Value</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.stem.diseasemodels.evolving.EvolvingSIRDiseaseModelLabelValue
+ * @generated
+ */
+ public Adapter createEvolvingSIRDiseaseModelLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel <em>SIR Disease 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.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel
+ * @generated
+ */
+ public Adapter createEvolvingSIRDiseaseModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel <em>SEIR Disease Model Label</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.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabel
+ * @generated
+ */
+ public Adapter createEvolvingSEIRDiseaseModelLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue <em>SEIR Disease Model Label Value</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.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModelLabelValue
+ * @generated
+ */
+ public Adapter createEvolvingSEIRDiseaseModelLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel <em>SEIR Disease 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.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel
+ * @generated
+ */
+ public Adapter createEvolvingSEIRDiseaseModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link java.lang.Comparable <em>Comparable</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 java.lang.Comparable
+ * @generated
+ */
+ public Adapter createComparableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.common.SanityChecker <em>Sanity Checker</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.stem.core.common.SanityChecker
+ * @generated
+ */
+ public Adapter createSanityCheckerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.common.Identifiable <em>Identifiable</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.stem.core.common.Identifiable
+ * @generated
+ */
+ public Adapter createIdentifiableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.model.Decorator <em>Decorator</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.stem.core.model.Decorator
+ * @generated
+ */
+ public Adapter createDecoratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.model.NodeDecorator <em>Node Decorator</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.stem.core.model.NodeDecorator
+ * @generated
+ */
+ public Adapter createNodeDecoratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.model.TransformationDecorator <em>Transformation Decorator</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.stem.core.model.TransformationDecorator
+ * @generated
+ */
+ public Adapter createTransformationDecoratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.Label <em>Label</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.stem.core.graph.Label
+ * @generated
+ */
+ public Adapter createLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.DynamicLabel <em>Dynamic Label</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.stem.core.graph.DynamicLabel
+ * @generated
+ */
+ public Adapter createDynamicLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.NodeLabel <em>Node Label</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.stem.core.graph.NodeLabel
+ * @generated
+ */
+ public Adapter createNodeLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.DynamicNodeLabel <em>Dynamic Node Label</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.stem.core.graph.DynamicNodeLabel
+ * @generated
+ */
+ public Adapter createDynamicNodeLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.IntegrationLabel <em>Integration Label</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.stem.core.graph.IntegrationLabel
+ * @generated
+ */
+ public Adapter createIntegrationLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel <em>Disease Model Label</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.stem.diseasemodels.standard.DiseaseModelLabel
+ * @generated
+ */
+ public Adapter createDiseaseModelLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel <em>Disease Model Label</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.stem.diseasemodels.standard.StandardDiseaseModelLabel
+ * @generated
+ */
+ public Adapter createStandardDiseaseModelLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.LabelValue <em>Label Value</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.stem.core.graph.LabelValue
+ * @generated
+ */
+ public Adapter createLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.common.PrimitiveTypeOperations <em>Primitive Type Operations</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.stem.core.common.PrimitiveTypeOperations
+ * @generated
+ */
+ public Adapter createPrimitiveTypeOperationsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.graph.IntegrationLabelValue <em>Integration Label Value</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.stem.core.graph.IntegrationLabelValue
+ * @generated
+ */
+ public Adapter createIntegrationLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue <em>Disease Model Label Value</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.stem.diseasemodels.standard.DiseaseModelLabelValue
+ * @generated
+ */
+ public Adapter createDiseaseModelLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue <em>Disease Model Label Value</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.stem.diseasemodels.standard.StandardDiseaseModelLabelValue
+ * @generated
+ */
+ public Adapter createStandardDiseaseModelLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.SILabelValue <em>SI Label Value</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.stem.diseasemodels.standard.SILabelValue
+ * @generated
+ */
+ public Adapter createSILabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.model.IntegrationDecorator <em>Integration Decorator</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.stem.core.model.IntegrationDecorator
+ * @generated
+ */
+ public Adapter createIntegrationDecoratorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.core.modifier.Modifiable <em>Modifiable</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.stem.core.modifier.Modifiable
+ * @generated
+ */
+ public Adapter createModifiableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.DiseaseModel <em>Disease 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.stem.diseasemodels.standard.DiseaseModel
+ * @generated
+ */
+ public Adapter createDiseaseModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.StandardDiseaseModel <em>Disease 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.stem.diseasemodels.standard.StandardDiseaseModel
+ * @generated
+ */
+ public Adapter createStandardDiseaseModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.SI <em>SI</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.stem.diseasemodels.standard.SI
+ * @generated
+ */
+ public Adapter createSIAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.SIRLabelValue <em>SIR Label Value</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.stem.diseasemodels.standard.SIRLabelValue
+ * @generated
+ */
+ public Adapter createSIRLabelValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.stem.diseasemodels.standard.SEIRLabelValue <em>SEIR Label Value</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.stem.diseasemodels.standard.SEIRLabelValue
+ * @generated
+ */
+ public Adapter createSEIRLabelValueAdapter() {
+ 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;
+ }
+
+} //EvolvingAdapterFactory
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/util/EvolvingSwitch.java b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/util/EvolvingSwitch.java
new file mode 100644
index 0000000..385f975
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels.evolving/src/org/eclipse/stem/diseasemodels/evolving/util/EvolvingSwitch.java
@@ -0,0 +1,839 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.stem.diseasemodels.evolving.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.stem.core.common.Identifiable;
+import org.eclipse.stem.core.common.PrimitiveTypeOperations;
+import org.eclipse.stem.core.common.SanityChecker;
+import org.eclipse.stem.core.graph.DynamicLabel;
+import org.eclipse.stem.core.graph.DynamicNodeLabel;
+import org.eclipse.stem.core.graph.IntegrationLabel;
+import org.eclipse.stem.core.graph.IntegrationLabelValue;
+import org.eclipse.stem.core.graph.Label;
+import org.eclipse.stem.core.graph.LabelValue;
+import org.eclipse.stem.core.graph.NodeLabel;
+import org.eclipse.stem.core.model.Decorator;
+import org.eclipse.stem.core.model.IntegrationDecorator;
+import org.eclipse.stem.core.model.NodeDecorator;
+import org.eclipse.stem.core.model.TransformationDecorator;
+import org.eclipse.stem.core.modifier.Modifiable;
+import org.eclipse.stem.diseasemodels.evolving.*;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingDiseaseTransformer;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingPackage;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSEIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIDiseaseModel;
+import org.eclipse.stem.diseasemodels.evolving.EvolvingSIRDiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabelValue;
+import org.eclipse.stem.diseasemodels.standard.SEIRLabelValue;
+import org.eclipse.stem.diseasemodels.standard.SI;
+import org.eclipse.stem.diseasemodels.standard.SILabelValue;
+import org.eclipse.stem.diseasemodels.standard.SIRLabelValue;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
+import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue;
+
+/**
+ * <!-- 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.stem.diseasemodels.evolving.EvolvingPackage
+ * @generated
+ */
+public class EvolvingSwitch<T1> extends Switch<T1> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static EvolvingPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EvolvingSwitch() {
+ if (modelPackage == null) {
+ modelPackage = EvolvingPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T1 doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case EvolvingPackage.EVOLVING_DISEASE_TRANSFORMER: {
+ EvolvingDiseaseTransformer evolvingDiseaseTransformer = (EvolvingDiseaseTransformer)theEObject;
+ T1 result = caseEvolvingDiseaseTransformer(evolvingDiseaseTransformer);
+ if (result == null) result = caseTransformationDecorator(evolvingDiseaseTransformer);
+ if (result == null) result = caseNodeDecorator(evolvingDiseaseTransformer);
+ if (result == null) result = caseDecorator(evolvingDiseaseTransformer);
+ if (result == null) result = caseIdentifiable(evolvingDiseaseTransformer);
+ if (result == null) result = caseComparable(evolvingDiseaseTransformer);
+ if (result == null) result = caseSanityChecker(evolvingDiseaseTransformer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingPackage.EVOLVING_DISEASE_MODEL: {
+ EvolvingDiseaseModel evolvingDiseaseModel = (EvolvingDiseaseModel)theEObject;
+ T1 result = caseEvolvingDiseaseModel(evolvingDiseaseModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL_LABEL: {
+ EvolvingSIDiseaseModelLabel evolvingSIDiseaseModelLabel = (EvolvingSIDiseaseModelLabel)theEObject;
+ T1 result = caseEvolvingSIDiseaseModelLabel(evolvingSIDiseaseModelLabel);
+ if (result == null) result = caseStandardDiseaseModelLabel(evolvingSIDiseaseModelLabel);
+ if (result == null) result = caseDiseaseModelLabel(evolvingSIDiseaseModelLabel);
+ if (result == null) result = caseIntegrationLabel(evolvingSIDiseaseModelLabel);
+ if (result == null) result = caseDynamicNodeLabel(evolvingSIDiseaseModelLabel);
+ if (result == null) result = caseDynamicLabel(evolvingSIDiseaseModelLabel);
+ if (result == null) result = caseNodeLabel(evolvingSIDiseaseModelLabel);
+ if (result == null) result = caseLabel(evolvingSIDiseaseModelLabel);
+ if (result == null) result = caseIdentifiable(evolvingSIDiseaseModelLabel);
+ if (result == null) result = caseComparable(evolvingSIDiseaseModelLabel);
+ if (result == null) result = caseSanityChecker(evolvingSIDiseaseModelLabel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL_LABEL_VALUE: {
+ EvolvingSIDiseaseModelLabelValue evolvingSIDiseaseModelLabelValue = (EvolvingSIDiseaseModelLabelValue)theEObject;
+ T1 result = caseEvolvingSIDiseaseModelLabelValue(evolvingSIDiseaseModelLabelValue);
+ if (result == null) result = caseSILabelValue(evolvingSIDiseaseModelLabelValue);
+ if (result == null) result = caseStandardDiseaseModelLabelValue(evolvingSIDiseaseModelLabelValue);
+ if (result == null) result = caseDiseaseModelLabelValue(evolvingSIDiseaseModelLabelValue);
+ if (result == null) result = caseIntegrationLabelValue(evolvingSIDiseaseModelLabelValue);
+ if (result == null) result = caseLabelValue(evolvingSIDiseaseModelLabelValue);
+ if (result == null) result = casePrimitiveTypeOperations(evolvingSIDiseaseModelLabelValue);
+ if (result == null) result = caseSanityChecker(evolvingSIDiseaseModelLabelValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingPackage.EVOLVING_SI_DISEASE_MODEL: {
+ EvolvingSIDiseaseModel evolvingSIDiseaseModel = (EvolvingSIDiseaseModel)theEObject;
+ T1 result = caseEvolvingSIDiseaseModel(evolvingSIDiseaseModel);
+ if (result == null) result = caseSI(evolvingSIDiseaseModel);
+ if (result == null) result = caseEvolvingDiseaseModel(evolvingSIDiseaseModel);
+ if (result == null) result = caseStandardDiseaseModel(evolvingSIDiseaseModel);
+ if (result == null) result = caseDiseaseModel(evolvingSIDiseaseModel);
+ if (result == null) result = caseIntegrationDecorator(evolvingSIDiseaseModel);
+ if (result == null) result = caseModifiable(evolvingSIDiseaseModel);
+ if (result == null) result = caseNodeDecorator(evolvingSIDiseaseModel);
+ if (result == null) result = caseDecorator(evolvingSIDiseaseModel);
+ if (result == null) result = caseIdentifiable(evolvingSIDiseaseModel);
+ if (result == null) result = caseComparable(evolvingSIDiseaseModel);
+ if (result == null) result = caseSanityChecker(evolvingSIDiseaseModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_LABEL: {
+ EvolvingSIRDiseaseModelLabel evolvingSIRDiseaseModelLabel = (EvolvingSIRDiseaseModelLabel)theEObject;
+ T1 result = caseEvolvingSIRDiseaseModelLabel(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = caseStandardDiseaseModelLabel(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = caseDiseaseModelLabel(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = caseIntegrationLabel(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = caseDynamicNodeLabel(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = caseDynamicLabel(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = caseNodeLabel(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = caseLabel(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = caseIdentifiable(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = caseComparable(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = caseSanityChecker(evolvingSIRDiseaseModelLabel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL_LABEL_VALUE: {
+ EvolvingSIRDiseaseModelLabelValue evolvingSIRDiseaseModelLabelValue = (EvolvingSIRDiseaseModelLabelValue)theEObject;
+ T1 result = caseEvolvingSIRDiseaseModelLabelValue(evolvingSIRDiseaseModelLabelValue);
+ if (result == null) result = caseSIRLabelValue(evolvingSIRDiseaseModelLabelValue);
+ if (result == null) result = caseSILabelValue(evolvingSIRDiseaseModelLabelValue);
+ if (result == null) result = caseStandardDiseaseModelLabelValue(evolvingSIRDiseaseModelLabelValue);
+ if (result == null) result = caseDiseaseModelLabelValue(evolvingSIRDiseaseModelLabelValue);
+ if (result == null) result = caseIntegrationLabelValue(evolvingSIRDiseaseModelLabelValue);
+ if (result == null) result = caseLabelValue(evolvingSIRDiseaseModelLabelValue);
+ if (result == null) result = casePrimitiveTypeOperations(evolvingSIRDiseaseModelLabelValue);
+ if (result == null) result = caseSanityChecker(evolvingSIRDiseaseModelLabelValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingPackage.EVOLVING_SIR_DISEASE_MODEL: {
+ EvolvingSIRDiseaseModel evolvingSIRDiseaseModel = (EvolvingSIRDiseaseModel)theEObject;
+ T1 result = caseEvolvingSIRDiseaseModel(evolvingSIRDiseaseModel);
+ if (result == null) result = caseEvolvingSIDiseaseModel(evolvingSIRDiseaseModel);
+ if (result == null) result = caseSI(evolvingSIRDiseaseModel);
+ if (result == null) result = caseEvolvingDiseaseModel(evolvingSIRDiseaseModel);
+ if (result == null) result = caseStandardDiseaseModel(evolvingSIRDiseaseModel);
+ if (result == null) result = caseDiseaseModel(evolvingSIRDiseaseModel);
+ if (result == null) result = caseIntegrationDecorator(evolvingSIRDiseaseModel);
+ if (result == null) result = caseModifiable(evolvingSIRDiseaseModel);
+ if (result == null) result = caseNodeDecorator(evolvingSIRDiseaseModel);
+ if (result == null) result = caseDecorator(evolvingSIRDiseaseModel);
+ if (result == null) result = caseIdentifiable(evolvingSIRDiseaseModel);
+ if (result == null) result = caseComparable(evolvingSIRDiseaseModel);
+ if (result == null) result = caseSanityChecker(evolvingSIRDiseaseModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL_LABEL: {
+ EvolvingSEIRDiseaseModelLabel evolvingSEIRDiseaseModelLabel = (EvolvingSEIRDiseaseModelLabel)theEObject;
+ T1 result = caseEvolvingSEIRDiseaseModelLabel(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = caseStandardDiseaseModelLabel(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = caseDiseaseModelLabel(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = caseIntegrationLabel(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = caseDynamicNodeLabel(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = caseDynamicLabel(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = caseNodeLabel(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = caseLabel(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = caseIdentifiable(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = caseComparable(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = caseSanityChecker(evolvingSEIRDiseaseModelLabel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL_LABEL_VALUE: {
+ EvolvingSEIRDiseaseModelLabelValue evolvingSEIRDiseaseModelLabelValue = (EvolvingSEIRDiseaseModelLabelValue)theEObject;
+ T1 result = caseEvolvingSEIRDiseaseModelLabelValue(evolvingSEIRDiseaseModelLabelValue);
+ if (result == null) result = caseSEIRLabelValue(evolvingSEIRDiseaseModelLabelValue);
+ if (result == null) result = caseSIRLabelValue(evolvingSEIRDiseaseModelLabelValue);
+ if (result == null) result = caseSILabelValue(evolvingSEIRDiseaseModelLabelValue);
+ if (result == null) result = caseStandardDiseaseModelLabelValue(evolvingSEIRDiseaseModelLabelValue);
+ if (result == null) result = caseDiseaseModelLabelValue(evolvingSEIRDiseaseModelLabelValue);
+ if (result == null) result = caseIntegrationLabelValue(evolvingSEIRDiseaseModelLabelValue);
+ if (result == null) result = caseLabelValue(evolvingSEIRDiseaseModelLabelValue);
+ if (result == null) result = casePrimitiveTypeOperations(evolvingSEIRDiseaseModelLabelValue);
+ if (result == null) result = caseSanityChecker(evolvingSEIRDiseaseModelLabelValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case EvolvingPackage.EVOLVING_SEIR_DISEASE_MODEL: {
+ EvolvingSEIRDiseaseModel evolvingSEIRDiseaseModel = (EvolvingSEIRDiseaseModel)theEObject;
+ T1 result = caseEvolvingSEIRDiseaseModel(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseEvolvingSIRDiseaseModel(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseEvolvingSIDiseaseModel(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseSI(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseEvolvingDiseaseModel(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseStandardDiseaseModel(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseDiseaseModel(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseIntegrationDecorator(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseModifiable(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseNodeDecorator(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseDecorator(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseIdentifiable(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseComparable(evolvingSEIRDiseaseModel);
+ if (result == null) result = caseSanityChecker(evolvingSEIRDiseaseModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Transformer</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Transformer</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingDiseaseTransformer(EvolvingDiseaseTransformer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingDiseaseModel(EvolvingDiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SI Disease Model Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SI Disease Model Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSIDiseaseModelLabel(EvolvingSIDiseaseModelLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SI Disease Model Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SI Disease Model Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSIDiseaseModelLabelValue(EvolvingSIDiseaseModelLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SI Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SI Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSIDiseaseModel(EvolvingSIDiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SIR Disease Model Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SIR Disease Model Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSIRDiseaseModelLabel(EvolvingSIRDiseaseModelLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SIR Disease Model Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SIR Disease Model Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSIRDiseaseModelLabelValue(EvolvingSIRDiseaseModelLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SIR Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SIR Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSIRDiseaseModel(EvolvingSIRDiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SEIR Disease Model Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SEIR Disease Model Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSEIRDiseaseModelLabel(EvolvingSEIRDiseaseModelLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SEIR Disease Model Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SEIR Disease Model Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSEIRDiseaseModelLabelValue(EvolvingSEIRDiseaseModelLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SEIR Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SEIR Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseEvolvingSEIRDiseaseModel(EvolvingSEIRDiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Comparable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Comparable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public <T> T1 caseComparable(Comparable<T> object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sanity Checker</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sanity Checker</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseSanityChecker(SanityChecker object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Identifiable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Identifiable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseIdentifiable(Identifiable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Decorator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Decorator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDecorator(Decorator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Node Decorator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Node Decorator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseNodeDecorator(NodeDecorator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transformation Decorator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transformation Decorator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseTransformationDecorator(TransformationDecorator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseLabel(Label object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Dynamic Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Dynamic Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDynamicLabel(DynamicLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Node Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Node Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseNodeLabel(NodeLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Dynamic Node Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Dynamic Node Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDynamicNodeLabel(DynamicNodeLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Integration Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Integration Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseIntegrationLabel(IntegrationLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDiseaseModelLabel(DiseaseModelLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseStandardDiseaseModelLabel(StandardDiseaseModelLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseLabelValue(LabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Primitive Type Operations</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Primitive Type Operations</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 casePrimitiveTypeOperations(PrimitiveTypeOperations object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Integration Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Integration Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseIntegrationLabelValue(IntegrationLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDiseaseModelLabelValue(DiseaseModelLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseStandardDiseaseModelLabelValue(StandardDiseaseModelLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SI Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SI Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseSILabelValue(SILabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Integration Decorator</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Integration Decorator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseIntegrationDecorator(IntegrationDecorator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Modifiable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Modifiable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseModifiable(Modifiable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseDiseaseModel(DiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Disease Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseStandardDiseaseModel(StandardDiseaseModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SI</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SI</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseSI(SI object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SIR Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SIR Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseSIRLabelValue(SIRLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SEIR Label Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SEIR Label Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T1 caseSEIRLabelValue(SEIRLabelValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T1 defaultCase(EObject object) {
+ return null;
+ }
+
+} //EvolvingSwitch
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/META-INF/MANIFEST.MF b/models/epidemiology/org.eclipse.stem.diseasemodels/META-INF/MANIFEST.MF
index ed98f1f..b990827 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/META-INF/MANIFEST.MF
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.stem.diseasemodels; singleton:=true
+Bundle-SymbolicName: org.eclipse.stem.diseasemodels;singleton:=true
Bundle-Version: 3.0.0.qualifier
Bundle-ClassPath: .
Bundle-Activator: org.eclipse.stem.diseasemodels.Activator
@@ -18,11 +18,15 @@
org.eclipse.stem.diseasemodels.standard.provider,
org.eclipse.stem.diseasemodels.standard.util
Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.stem.core;visibility:=reexport,
org.eclipse.stem.definitions;visibility:=reexport,
org.eclipse.stem.transport,
org.eclipse.stem.geography,
org.eclipse.stem.populationmodels;visibility:=reexport,
- org.eclipse.emf.ecore.edit;bundle-version="2.6.0",
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="2.6.0";visibility:=reexport,
org.eclipse.stem.interventions
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Import-Package: org.eclipse.stem.jobs.simulation
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/DiseaseMutationTranformation.gif b/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/DiseaseMutationTranformation.gif
new file mode 100644
index 0000000..14af8aa
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/DiseaseMutationTranformation.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingDiseaseTransformer.gif b/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingDiseaseTransformer.gif
new file mode 100644
index 0000000..c4fb30e
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingDiseaseTransformer.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingSEIRDiseaseModel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingSEIRDiseaseModel.gif
new file mode 100644
index 0000000..c8d381f
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingSEIRDiseaseModel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingSIDiseaseModel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingSIDiseaseModel.gif
new file mode 100644
index 0000000..badaab0
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingSIDiseaseModel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingSIRDiseaseModel.gif b/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingSIRDiseaseModel.gif
new file mode 100644
index 0000000..ef56c14
--- /dev/null
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/icons/full/obj16/EvolvingSIRDiseaseModel.gif
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/model/diseasemodels.genmodel b/models/epidemiology/org.eclipse.stem.diseasemodels/model/diseasemodels.genmodel
index 36d5813..dde8d2f 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/model/diseasemodels.genmodel
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/model/diseasemodels.genmodel
@@ -4,8 +4,8 @@
editorDirectory="/org.eclipse.stem.ui.diseasemodels/src" modelPluginID="org.eclipse.stem.diseasemodels"
modelName="Diseasemodels" nonNLSMarkers="true" testsDirectory="/org.eclipse.stem.tests.diseasemodels/src"
importerID="org.eclipse.emf.importer.ecore" suppressNotification="true" complianceLevel="5.0"
- copyrightFields="false" editorPluginID="org.eclipse.stem.ui.diseasemodels" runtimeVersion="2.6"
- usedGenPackages="../../org.eclipse.stem.core/model/core.genmodel#//common ../../org.eclipse.stem.core/model/core.genmodel#//graph ../../org.eclipse.stem.core/model/core.genmodel#//model ../../org.eclipse.stem.core/model/core.genmodel#//modifier ../../org.eclipse.stem.core/model/core.genmodel#//predicate ../../org.eclipse.stem.core/model/core.genmodel#//scenario ../../org.eclipse.stem.core/model/core.genmodel#//sequencer ../../org.eclipse.stem.core/model/core.genmodel#//solver ../../org.eclipse.stem.core/model/core.genmodel#//logger ../../org.eclipse.stem.definitions/model/definitions.genmodel#//labels platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.stem.populationmodels/model/standard.genmodel#//standard"
+ copyrightFields="false" publicConstructors="true" editorPluginID="org.eclipse.stem.ui.diseasemodels"
+ runtimeVersion="2.6" usedGenPackages="../../org.eclipse.stem.core/model/core.genmodel#//common ../../org.eclipse.stem.core/model/core.genmodel#//graph ../../org.eclipse.stem.core/model/core.genmodel#//model ../../org.eclipse.stem.core/model/core.genmodel#//modifier ../../org.eclipse.stem.core/model/core.genmodel#//predicate ../../org.eclipse.stem.core/model/core.genmodel#//scenario ../../org.eclipse.stem.core/model/core.genmodel#//sequencer ../../org.eclipse.stem.core/model/core.genmodel#//solver ../../org.eclipse.stem.core/model/core.genmodel#//logger ../../org.eclipse.stem.definitions/model/definitions.genmodel#//labels platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.stem.populationmodels/model/standard.genmodel#//standard"
runtimePlatform="RCP">
<foreignModel>standard.ecore</foreignModel>
<foreignModel>diseasepredicates.ecore</foreignModel>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/plugin.properties b/models/epidemiology/org.eclipse.stem.diseasemodels/plugin.properties
index b732fa8..2da762a 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/plugin.properties
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/plugin.properties
Binary files differ
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/plugin.xml b/models/epidemiology/org.eclipse.stem.diseasemodels/plugin.xml
index d0854e4..502cae6 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/plugin.xml
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/plugin.xml
@@ -54,6 +54,19 @@
class = "org.eclipse.stem.diseasemodels.predicates.diseasepredicates.DiseasepredicatesPackage"
genModel = "model/diseasemodels.genmodel" />
</extension>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated diseasemodels -->
+ <factory
+ uri="http:///org/eclipse/stem/diseasemodels/standard.ecore"
+ class="org.eclipse.stem.diseasemodels.standard.provider.StandardItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
<extension
point="org.eclipse.stem.diseasemodels.diseasemodel">
<classdef class="org.eclipse.stem.diseasemodels.standard.impl.SIImpl"/>
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/LabelValueTest.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/LabelValueTest.java
index 7a8938f..c2b6f58 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/LabelValueTest.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/LabelValueTest.java
@@ -21,6 +21,7 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.predicates.diseasepredicates.LabelValueTest#getModelName <em>Model Name</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.predicates.diseasepredicates.LabelValueTest#getTargetURI <em>Target URI</em>}</li>
@@ -29,7 +30,6 @@
* <li>{@link org.eclipse.stem.diseasemodels.predicates.diseasepredicates.LabelValueTest#getPredicate <em>Predicate</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.predicates.diseasepredicates.LabelValueTest#getPopulationIdentifier <em>Population Identifier</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.diseasemodels.predicates.diseasepredicates.DiseasepredicatesPackage#getLabelValueTest()
* @model
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/DiseasepredicatesFactoryImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/DiseasepredicatesFactoryImpl.java
index 609535a..81f8391 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/DiseasepredicatesFactoryImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/DiseasepredicatesFactoryImpl.java
@@ -35,7 +35,7 @@
*/
public static DiseasepredicatesFactory init() {
try {
- DiseasepredicatesFactory theDiseasepredicatesFactory = (DiseasepredicatesFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/stem/diseasemodels/diseasepredicates.ecore"); //$NON-NLS-1$
+ DiseasepredicatesFactory theDiseasepredicatesFactory = (DiseasepredicatesFactory)EPackage.Registry.INSTANCE.getEFactory(DiseasepredicatesPackage.eNS_URI);
if (theDiseasepredicatesFactory != null) {
return theDiseasepredicatesFactory;
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/DiseasepredicatesPackageImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/DiseasepredicatesPackageImpl.java
index 5536d87..7236ebb 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/DiseasepredicatesPackageImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/DiseasepredicatesPackageImpl.java
@@ -85,8 +85,8 @@
isInited = true;
// Initialize simple dependencies
- StandardPackage.eINSTANCE.eClass();
PredicatePackage.eINSTANCE.eClass();
+ StandardPackage.eINSTANCE.eClass();
// Obtain or create and register interdependencies
StandardPackageImpl theStandardPackage_1 = (StandardPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(org.eclipse.stem.diseasemodels.standard.StandardPackage.eNS_URI) instanceof StandardPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(org.eclipse.stem.diseasemodels.standard.StandardPackage.eNS_URI) : org.eclipse.stem.diseasemodels.standard.StandardPackage.eINSTANCE);
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/LabelValueTestImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/LabelValueTestImpl.java
index a6639ba..8844617 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/LabelValueTestImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/impl/LabelValueTestImpl.java
@@ -40,6 +40,7 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.predicates.diseasepredicates.impl.LabelValueTestImpl#getModelName <em>Model Name</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.predicates.diseasepredicates.impl.LabelValueTestImpl#getTargetURI <em>Target URI</em>}</li>
@@ -48,7 +49,6 @@
* <li>{@link org.eclipse.stem.diseasemodels.predicates.diseasepredicates.impl.LabelValueTestImpl#getPredicate <em>Predicate</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.predicates.diseasepredicates.impl.LabelValueTestImpl#getPopulationIdentifier <em>Population Identifier</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -178,7 +178,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected LabelValueTestImpl() {
+ public LabelValueTestImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/provider/DiseasepredicatesItemProviderAdapterFactory.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/provider/DiseasepredicatesItemProviderAdapterFactory.java
index 23e6d59..b2b8141 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/provider/DiseasepredicatesItemProviderAdapterFactory.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/provider/DiseasepredicatesItemProviderAdapterFactory.java
@@ -13,20 +13,14 @@
import java.util.ArrayList;
import java.util.Collection;
-import java.util.List;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.edit.command.CommandParameter;
-import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.IChildCreationExtender;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -34,14 +28,7 @@
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.stem.core.predicate.NaryBooleanOperator;
-import org.eclipse.stem.core.predicate.PredicateExpression;
-import org.eclipse.stem.core.predicate.PredicatePackage;
-import org.eclipse.stem.core.predicate.UnaryBooleanOperator;
-import org.eclipse.stem.core.predicate.util.PredicateSwitch;
-import org.eclipse.stem.diseasemodels.predicates.diseasepredicates.DiseasepredicatesFactory;
import org.eclipse.stem.diseasemodels.predicates.diseasepredicates.util.DiseasepredicatesAdapterFactory;
-import org.eclipse.stem.diseasemodels.standard.provider.DiseasemodelsEditPlugin;
/**
* This is the factory that is used to provide the interfaces needed to support Viewers.
@@ -216,121 +203,4 @@
if (labelValueTestItemProvider != null) labelValueTestItemProvider.dispose();
}
- /**
- * A child creation extender for the {@link PredicatePackage}.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public static class PredicateChildCreationExtender implements IChildCreationExtender {
- /**
- * The switch for creating child descriptors specific to each extended class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected static class CreationSwitch extends PredicateSwitch<Object> {
- /**
- * The child descriptors being populated.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected List<Object> newChildDescriptors;
-
- /**
- * The domain in which to create the children.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected EditingDomain editingDomain;
-
- /**
- * Creates the a switch for populating child descriptors in the given domain.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- CreationSwitch(List<Object> newChildDescriptors, EditingDomain editingDomain) {
- this.newChildDescriptors = newChildDescriptors;
- this.editingDomain = editingDomain;
- }
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object caseNaryBooleanOperator(NaryBooleanOperator object) {
- newChildDescriptors.add
- (createChildParameter
- (PredicatePackage.Literals.NARY_BOOLEAN_OPERATOR__OPERANDS,
- DiseasepredicatesFactory.eINSTANCE.createLabelValueTest()));
-
- return null;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object caseUnaryBooleanOperator(UnaryBooleanOperator object) {
- newChildDescriptors.add
- (createChildParameter
- (PredicatePackage.Literals.UNARY_BOOLEAN_OPERATOR__OPERAND,
- DiseasepredicatesFactory.eINSTANCE.createLabelValueTest()));
-
- return null;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object casePredicateExpression(PredicateExpression object) {
- newChildDescriptors.add
- (createChildParameter
- (PredicatePackage.Literals.PREDICATE_EXPRESSION__PREDICATE,
- DiseasepredicatesFactory.eINSTANCE.createLabelValueTest()));
-
- return null;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected CommandParameter createChildParameter(Object feature, Object child) {
- return new CommandParameter(null, feature, child);
- }
-
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public Collection<Object> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
- ArrayList<Object> result = new ArrayList<Object>();
- new CreationSwitch(result, editingDomain).doSwitch((EObject)object);
- return result;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ResourceLocator getResourceLocator() {
- return DiseasemodelsEditPlugin.INSTANCE;
- }
- }
-
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/provider/LabelValueTestItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/provider/LabelValueTestItemProvider.java
index 21019fd..0a707e6 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/provider/LabelValueTestItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/provider/LabelValueTestItemProvider.java
@@ -20,12 +20,7 @@
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.core.predicate.provider.TestItemProvider;
@@ -41,13 +36,7 @@
* @generated
*/
public class LabelValueTestItemProvider
- extends TestItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends TestItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/DiseaseInitializer.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/DiseaseInitializer.java
index 5b6831c..5c5cc3d 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/DiseaseInitializer.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/DiseaseInitializer.java
@@ -15,11 +15,11 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.DiseaseInitializer#getDiseaseName <em>Disease Name</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.DiseaseInitializer#getPopulationIdentifier <em>Population Identifier</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.diseasemodels.standard.StandardPackage#getDiseaseInitializer()
* @model abstract="true"
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/ExternalDataSourceDiseaseInitializer.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/ExternalDataSourceDiseaseInitializer.java
index e27bac2..7ac4f71 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/ExternalDataSourceDiseaseInitializer.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/ExternalDataSourceDiseaseInitializer.java
@@ -14,12 +14,12 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.ExternalDataSourceDiseaseInitializer#getDataPath <em>Data Path</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.ExternalDataSourceDiseaseInitializer#getRow <em>Row</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.ExternalDataSourceDiseaseInitializer#isDoRescaling <em>Do Rescaling</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.diseasemodels.standard.StandardPackage#getExternalDataSourceDiseaseInitializer()
* @model
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/InfectorInoculatorCollection.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/InfectorInoculatorCollection.java
index 78bb7b0..64b095d 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/InfectorInoculatorCollection.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/InfectorInoculatorCollection.java
@@ -21,11 +21,11 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.InfectorInoculatorCollection#getList <em>List</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.InfectorInoculatorCollection#getImportFolder <em>Import Folder</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.diseasemodels.standard.StandardPackage#getInfectorInoculatorCollection()
* @model
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/StandardDiseaseInitializer.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/StandardDiseaseInitializer.java
index 9a5eb69..d2d1834 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/StandardDiseaseInitializer.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/StandardDiseaseInitializer.java
@@ -16,6 +16,7 @@
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.StandardDiseaseInitializer#getTargetISOKey <em>Target ISO Key</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.StandardDiseaseInitializer#getTargetURI <em>Target URI</em>}</li>
@@ -23,7 +24,6 @@
* <li>{@link org.eclipse.stem.diseasemodels.standard.StandardDiseaseInitializer#getCompartmentValues <em>Compartment Values</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.StandardDiseaseInitializer#isUseFractions <em>Use Fractions</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.stem.diseasemodels.standard.StandardPackage#getStandardDiseaseInitializer()
* @model
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSEIRDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSEIRDiseaseModelImpl.java
index b971433..edb9b71 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSEIRDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSEIRDiseaseModelImpl.java
@@ -18,8 +18,6 @@
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Deterministic SEIR Disease Model</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSIDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSIDiseaseModelImpl.java
index 618f417..9d0a366 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSIDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSIDiseaseModelImpl.java
@@ -18,8 +18,6 @@
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Deterministic SI Disease Model</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSIRDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSIRDiseaseModelImpl.java
index 80b8231..b4288bc 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSIRDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DeterministicSIRDiseaseModelImpl.java
@@ -18,8 +18,6 @@
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Deterministic SIR Disease Model</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseInitializerImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseInitializerImpl.java
index ce7306b..0166c80 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseInitializerImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseInitializerImpl.java
@@ -18,11 +18,11 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.DiseaseInitializerImpl#getDiseaseName <em>Disease Name</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.DiseaseInitializerImpl#getPopulationIdentifier <em>Population Identifier</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -72,7 +72,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected DiseaseInitializerImpl() {
+ public DiseaseInitializerImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelImpl.java
index 7400f0f..559a242 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelImpl.java
@@ -58,6 +58,7 @@
* <em><b>Disease Model</b></em>'. <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.DiseaseModelImpl#getPopulationIdentifier <em>Population Identifier</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.DiseaseModelImpl#getTimePeriod <em>Time Period</em>}</li>
@@ -65,7 +66,6 @@
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.DiseaseModelImpl#isFiniteDifference <em>Finite Difference</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.DiseaseModelImpl#isFrequencyDependent <em>Frequency Dependent</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -173,7 +173,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected DiseaseModelImpl() {
+ public DiseaseModelImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelLabelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelLabelImpl.java
index fe1a236..774a7bf 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelLabelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelLabelImpl.java
@@ -30,11 +30,11 @@
* <em><b>Disease Model Label</b></em>'. <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.DiseaseModelLabelImpl#getPopulationLabel <em>Population Label</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.DiseaseModelLabelImpl#getPopulationModelLabel <em>Population Model Label</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -64,7 +64,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected DiseaseModelLabelImpl() {
+ public DiseaseModelLabelImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelLabelValueImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelLabelValueImpl.java
index 12b7116..c4a10fa 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelLabelValueImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/DiseaseModelLabelValueImpl.java
@@ -23,10 +23,10 @@
* <em><b>Disease Model Label Value</b></em>'. <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.DiseaseModelLabelValueImpl#getPopulationCount <em>Population Count</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -38,7 +38,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected DiseaseModelLabelValueImpl() {
+ public DiseaseModelLabelValueImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/ExternalDataSourceDiseaseInitializerImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/ExternalDataSourceDiseaseInitializerImpl.java
index 085ef1d..3d1ec28 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/ExternalDataSourceDiseaseInitializerImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/ExternalDataSourceDiseaseInitializerImpl.java
@@ -128,7 +128,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected ExternalDataSourceDiseaseInitializerImpl() {
+ public ExternalDataSourceDiseaseInitializerImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/InfectorImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/InfectorImpl.java
index db54ea4..c4485f1 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/InfectorImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/InfectorImpl.java
@@ -45,6 +45,7 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.InfectorImpl#getDiseaseModel <em>Disease Model</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.InfectorImpl#getTargetURI <em>Target URI</em>}</li>
@@ -55,7 +56,6 @@
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.InfectorImpl#isInfectPercentage <em>Infect Percentage</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.InfectorImpl#getTargetFeature <em>Target Feature</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -198,7 +198,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected InfectorImpl() {
+ public InfectorImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/InfectorInoculatorCollectionImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/InfectorInoculatorCollectionImpl.java
index 56831e7..512099c 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/InfectorInoculatorCollectionImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/InfectorInoculatorCollectionImpl.java
@@ -31,11 +31,11 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.InfectorInoculatorCollectionImpl#getList <em>List</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.InfectorInoculatorCollectionImpl#getImportFolder <em>Import Folder</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -74,7 +74,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected InfectorInoculatorCollectionImpl() {
+ public InfectorInoculatorCollectionImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRImpl.java
index 00ec1ec..7c4c645 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRImpl.java
@@ -36,10 +36,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SEIRImpl#getIncubationRate <em>Incubation Rate</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRLabelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRLabelImpl.java
index 66df388..5b9de67 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRLabelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRLabelImpl.java
@@ -21,8 +21,6 @@
/**
* <!-- begin-user-doc --> An implementation of the model object '
* <em><b>SEIR Label</b></em>'. <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRLabelValueImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRLabelValueImpl.java
index 1ab71c0..b4aac30 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRLabelValueImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SEIRLabelValueImpl.java
@@ -23,10 +23,10 @@
* <em><b>SEIR Label Value</b></em>'. <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SEIRLabelValueImpl#getE <em>E</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -56,7 +56,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected SEIRLabelValueImpl() {
+ public SEIRLabelValueImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIImpl.java
index bf4c71b..84264c5 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIImpl.java
@@ -35,13 +35,13 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SIImpl#getTransmissionRate <em>Transmission Rate</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SIImpl#getNonLinearityCoefficient <em>Non Linearity Coefficient</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SIImpl#getRecoveryRate <em>Recovery Rate</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SIImpl#getInfectiousMortalityRate <em>Infectious Mortality Rate</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIInfectorImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIInfectorImpl.java
index 919e690..1f3eddc 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIInfectorImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIInfectorImpl.java
@@ -28,10 +28,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SIInfectorImpl#getInfectiousCount <em>Infectious Count</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -60,7 +60,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected SIInfectorImpl() {
+ public SIInfectorImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SILabelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SILabelImpl.java
index 37aa773..e733761 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SILabelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SILabelImpl.java
@@ -19,8 +19,6 @@
/**
* <!-- begin-user-doc --> An implementation of the model object '
* <em><b>SI Label</b></em>'. <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SILabelValueImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SILabelValueImpl.java
index 812f01e..c1e1ee3 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SILabelValueImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SILabelValueImpl.java
@@ -23,10 +23,10 @@
* <em><b>SI Label Value</b></em>'. <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SILabelValueImpl#getI <em>I</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -56,7 +56,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected SILabelValueImpl() {
+ public SILabelValueImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRImpl.java
index b3aa9ec..967abb8 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRImpl.java
@@ -36,10 +36,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SIRImpl#getImmunityLossRate <em>Immunity Loss Rate</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRInoculatorImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRInoculatorImpl.java
index c932339..b33002f 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRInoculatorImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRInoculatorImpl.java
@@ -41,11 +41,11 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SIRInoculatorImpl#getInoculatedPercentage <em>Inoculated Percentage</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SIRInoculatorImpl#isInoculatePercentage <em>Inoculate Percentage</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -104,7 +104,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected SIRInoculatorImpl() {
+ public SIRInoculatorImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRLabelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRLabelImpl.java
index 26d568c..0b0f161 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRLabelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRLabelImpl.java
@@ -21,8 +21,6 @@
/**
* <!-- begin-user-doc --> An implementation of the model object '
* <em><b>SIR Label</b></em>'. <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRLabelValueImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRLabelValueImpl.java
index 33d49ac..881fc5a 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRLabelValueImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/SIRLabelValueImpl.java
@@ -23,10 +23,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.SIRLabelValueImpl#getR <em>R</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -56,7 +56,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected SIRLabelValueImpl() {
+ public SIRLabelValueImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseInitializerImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseInitializerImpl.java
index 8e15ae0..0fcfcb8 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseInitializerImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseInitializerImpl.java
@@ -42,6 +42,7 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseInitializerImpl#getTargetISOKey <em>Target ISO Key</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseInitializerImpl#getTargetURI <em>Target URI</em>}</li>
@@ -49,7 +50,6 @@
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseInitializerImpl#getCompartmentValues <em>Compartment Values</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseInitializerImpl#isUseFractions <em>Use Fractions</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -146,7 +146,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected StandardDiseaseInitializerImpl() {
+ public StandardDiseaseInitializerImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelImpl.java
index 306186a..11bfafe 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelImpl.java
@@ -60,12 +60,12 @@
* <em><b>Disease Model</b></em>'. <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelImpl#getReferencePopulationDensity <em>Reference Population Density</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelImpl#getRoadNetworkInfectiousProportion <em>Road Network Infectious Proportion</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelImpl#getCharacteristicMixingDistance <em>Characteristic Mixing Distance</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelLabelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelLabelImpl.java
index 9e6c716..8eba019 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelLabelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelLabelImpl.java
@@ -24,8 +24,6 @@
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Disease Model Label</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
@@ -43,7 +41,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected StandardDiseaseModelLabelImpl() {
+ public StandardDiseaseModelLabelImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelLabelValueImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelLabelValueImpl.java
index 745ebc3..6eaee2c 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelLabelValueImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardDiseaseModelLabelValueImpl.java
@@ -24,12 +24,12 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelLabelValueImpl#getS <em>S</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelLabelValueImpl#getIncidence <em>Incidence</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardDiseaseModelLabelValueImpl#getDiseaseDeaths <em>Disease Deaths</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -101,7 +101,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected StandardDiseaseModelLabelValueImpl() {
+ public StandardDiseaseModelLabelValueImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardFactoryImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardFactoryImpl.java
index 20d32b5..b801612 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardFactoryImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardFactoryImpl.java
@@ -62,7 +62,7 @@
*/
public static StandardFactory init() {
try {
- StandardFactory theStandardFactory = (StandardFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/stem/diseasemodels/standard.ecore"); //$NON-NLS-1$
+ StandardFactory theStandardFactory = (StandardFactory)EPackage.Registry.INSTANCE.getEFactory(StandardPackage.eNS_URI);
if (theStandardFactory != null) {
return theStandardFactory;
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardInfectorImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardInfectorImpl.java
index 10b6443..5d86b68 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardInfectorImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardInfectorImpl.java
@@ -18,8 +18,6 @@
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Infector</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
@@ -29,7 +27,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
- protected StandardInfectorImpl() {
+ public StandardInfectorImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardPackageImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardPackageImpl.java
index 2a82800..4e7945e 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardPackageImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardPackageImpl.java
@@ -25,7 +25,10 @@
import org.eclipse.stem.core.graph.GraphPackage;
import org.eclipse.stem.core.model.ModelPackage;
import org.eclipse.stem.core.modifier.ModifierPackage;
+import org.eclipse.stem.core.predicate.PredicatePackage;
import org.eclipse.stem.definitions.labels.LabelsPackage;
+import org.eclipse.stem.diseasemodels.predicates.diseasepredicates.DiseasepredicatesPackage;
+import org.eclipse.stem.diseasemodels.predicates.diseasepredicates.impl.DiseasepredicatesPackageImpl;
import org.eclipse.stem.diseasemodels.standard.DeterministicSEIRDiseaseModel;
import org.eclipse.stem.diseasemodels.standard.DeterministicSIDiseaseModel;
import org.eclipse.stem.diseasemodels.standard.DeterministicSIRDiseaseModel;
@@ -360,13 +363,19 @@
isInited = true;
// Initialize simple dependencies
+ PredicatePackage.eINSTANCE.eClass();
org.eclipse.stem.populationmodels.standard.StandardPackage.eINSTANCE.eClass();
+ // Obtain or create and register interdependencies
+ DiseasepredicatesPackageImpl theDiseasepredicatesPackage = (DiseasepredicatesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(DiseasepredicatesPackage.eNS_URI) instanceof DiseasepredicatesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(DiseasepredicatesPackage.eNS_URI) : DiseasepredicatesPackage.eINSTANCE);
+
// Create package meta-data objects
theStandardPackage.createPackageContents();
+ theDiseasepredicatesPackage.createPackageContents();
// Initialize created meta-data
theStandardPackage.initializePackageContents();
+ theDiseasepredicatesPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theStandardPackage.freeze();
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardStochasticDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardStochasticDiseaseModelImpl.java
index 668c20a..b35a421 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardStochasticDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StandardStochasticDiseaseModelImpl.java
@@ -23,10 +23,10 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StandardStochasticDiseaseModelImpl#getGain <em>Gain</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -57,7 +57,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected StandardStochasticDiseaseModelImpl() {
+ public StandardStochasticDiseaseModelImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticDiseaseModelImpl.java
index f47b46e..ef08a98 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticDiseaseModelImpl.java
@@ -27,11 +27,11 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticDiseaseModelImpl#getSeed <em>Seed</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticDiseaseModelImpl#getRandomGenerator <em>Random Generator</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -90,7 +90,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected StochasticDiseaseModelImpl() {
+ public StochasticDiseaseModelImpl() {
super();
}
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSEIRDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSEIRDiseaseModelImpl.java
index 6d8f67e..c891efb 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSEIRDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSEIRDiseaseModelImpl.java
@@ -28,8 +28,6 @@
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Stochastic Poisson SEIR Disease Model</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSIDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSIDiseaseModelImpl.java
index 804c175..c8c9f73 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSIDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSIDiseaseModelImpl.java
@@ -28,8 +28,6 @@
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Stochastic Poisson SI Disease Model</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSIRDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSIRDiseaseModelImpl.java
index 3e70f93..df971d3 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSIRDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticPoissonSIRDiseaseModelImpl.java
@@ -28,8 +28,6 @@
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Stochastic Poisson SIR Disease Model</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSEIRDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSEIRDiseaseModelImpl.java
index 3accd4b..c0da84e 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSEIRDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSEIRDiseaseModelImpl.java
@@ -27,12 +27,12 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticSEIRDiseaseModelImpl#getSeed <em>Seed</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticSEIRDiseaseModelImpl#getRandomGenerator <em>Random Generator</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticSEIRDiseaseModelImpl#getGain <em>Gain</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSIDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSIDiseaseModelImpl.java
index f769d42..12f79b6 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSIDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSIDiseaseModelImpl.java
@@ -27,12 +27,12 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticSIDiseaseModelImpl#getSeed <em>Seed</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticSIDiseaseModelImpl#getRandomGenerator <em>Random Generator</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticSIDiseaseModelImpl#getGain <em>Gain</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSIRDiseaseModelImpl.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSIRDiseaseModelImpl.java
index 085cccc..5fd012e 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSIRDiseaseModelImpl.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/impl/StochasticSIRDiseaseModelImpl.java
@@ -27,12 +27,12 @@
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticSIRDiseaseModelImpl#getSeed <em>Seed</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticSIRDiseaseModelImpl#getRandomGenerator <em>Random Generator</em>}</li>
* <li>{@link org.eclipse.stem.diseasemodels.standard.impl.StochasticSIRDiseaseModelImpl#getGain <em>Gain</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSEIRDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSEIRDiseaseModelItemProvider.java
index 250bbb0..6bec1db 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSEIRDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSEIRDiseaseModelItemProvider.java
@@ -16,12 +16,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.diseasemodels.standard.DeterministicSEIRDiseaseModel;
/**
@@ -30,9 +25,7 @@
* @generated
*/
@SuppressWarnings("deprecation")
-public class DeterministicSEIRDiseaseModelItemProvider extends SEIRItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class DeterministicSEIRDiseaseModelItemProvider extends SEIRItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSIDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSIDiseaseModelItemProvider.java
index abd3c29..3aa6505 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSIDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSIDiseaseModelItemProvider.java
@@ -16,12 +16,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.diseasemodels.standard.DeterministicSIDiseaseModel;
/**
@@ -30,9 +25,7 @@
* @generated
*/
@SuppressWarnings("deprecation")
-public class DeterministicSIDiseaseModelItemProvider extends SIItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class DeterministicSIDiseaseModelItemProvider extends SIItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSIRDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSIRDiseaseModelItemProvider.java
index 1a0000d..e50b803 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSIRDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DeterministicSIRDiseaseModelItemProvider.java
@@ -16,12 +16,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.diseasemodels.standard.DeterministicSIRDiseaseModel;
/**
@@ -30,9 +25,7 @@
* @generated
*/
@SuppressWarnings("deprecation")
-public class DeterministicSIRDiseaseModelItemProvider extends SIRItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class DeterministicSIRDiseaseModelItemProvider extends SIRItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseInitializerItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseInitializerItemProvider.java
index bfbed67..1367251 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseInitializerItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseInitializerItemProvider.java
@@ -14,12 +14,7 @@
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.core.model.provider.NodeDecoratorItemProvider;
@@ -33,13 +28,7 @@
* @generated
*/
public class DiseaseInitializerItemProvider
- extends NodeDecoratorItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends NodeDecoratorItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelItemProvider.java
index b266e3a..1b09df9 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelItemProvider.java
@@ -18,12 +18,7 @@
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.core.model.provider.IntegrationDecoratorItemProvider;
@@ -37,9 +32,7 @@
*
* @generated
*/
-public class DiseaseModelItemProvider extends IntegrationDecoratorItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class DiseaseModelItemProvider extends IntegrationDecoratorItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelLabelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelLabelItemProvider.java
index 4876374..1a02d78 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelLabelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelLabelItemProvider.java
@@ -19,12 +19,7 @@
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.core.graph.provider.IntegrationLabelItemProvider;
import org.eclipse.stem.diseasemodels.standard.DiseaseModelLabel;
import org.eclipse.stem.diseasemodels.standard.StandardPackage;
@@ -34,9 +29,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
-public class DiseaseModelLabelItemProvider extends IntegrationLabelItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class DiseaseModelLabelItemProvider extends IntegrationLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelLabelValueItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelLabelValueItemProvider.java
index 0bf04bf..5d86d27 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelLabelValueItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/DiseaseModelLabelValueItemProvider.java
@@ -18,12 +18,7 @@
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.core.graph.provider.IntegrationLabelValueItemProvider;
@@ -35,9 +30,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
-public class DiseaseModelLabelValueItemProvider extends IntegrationLabelValueItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class DiseaseModelLabelValueItemProvider extends IntegrationLabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/ExternalDataSourceDiseaseInitializerItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/ExternalDataSourceDiseaseInitializerItemProvider.java
index c34d079..f76bdc2 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/ExternalDataSourceDiseaseInitializerItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/ExternalDataSourceDiseaseInitializerItemProvider.java
@@ -13,12 +13,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.ExternalDataSourceDiseaseInitializer;
@@ -31,13 +26,7 @@
* @generated
*/
public class ExternalDataSourceDiseaseInitializerItemProvider
- extends DiseaseInitializerItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends DiseaseInitializerItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/InfectorInoculatorCollectionItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/InfectorInoculatorCollectionItemProvider.java
index 676319e..b60b9c1 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/InfectorInoculatorCollectionItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/InfectorInoculatorCollectionItemProvider.java
@@ -20,12 +20,7 @@
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.core.model.provider.NodeDecoratorItemProvider;
@@ -39,13 +34,7 @@
* @generated
*/
public class InfectorInoculatorCollectionItemProvider
- extends NodeDecoratorItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends NodeDecoratorItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/InfectorItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/InfectorItemProvider.java
index b00425d..1278d7a 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/InfectorItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/InfectorItemProvider.java
@@ -18,12 +18,7 @@
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.core.model.provider.NodeDecoratorItemProvider;
@@ -37,9 +32,7 @@
*
* @generated
*/
-public class InfectorItemProvider extends NodeDecoratorItemProvider implements
- IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class InfectorItemProvider extends NodeDecoratorItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRItemProvider.java
index 5de440b..a399e59 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.SEIR;
@@ -35,9 +30,7 @@
*
* @generated
*/
-public class SEIRItemProvider extends SIRItemProvider implements
- IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class SEIRItemProvider extends SIRItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRLabelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRLabelItemProvider.java
index b794d56..293014a 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRLabelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRLabelItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.diseasemodels.standard.SEIRLabel;
/**
@@ -32,9 +27,7 @@
*
* @generated
*/
-public class SEIRLabelItemProvider extends StandardDiseaseModelLabelItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class SEIRLabelItemProvider extends StandardDiseaseModelLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRLabelValueItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRLabelValueItemProvider.java
index 38cf908..f5b8c9b 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRLabelValueItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SEIRLabelValueItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.SEIRLabelValue;
@@ -33,9 +28,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
-public class SEIRLabelValueItemProvider extends SIRLabelValueItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class SEIRLabelValueItemProvider extends SIRLabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIInfectorItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIInfectorItemProvider.java
index d3ef529..b4f2589 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIInfectorItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIInfectorItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.SIInfector;
@@ -35,9 +30,7 @@
*
* @generated
*/
-public class SIInfectorItemProvider extends StandardInfectorItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class SIInfectorItemProvider extends StandardInfectorItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIItemProvider.java
index 1fc8d7f..2925fd8 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.SI;
@@ -35,9 +30,7 @@
*
* @generated
*/
-public class SIItemProvider extends StandardDiseaseModelItemProvider implements
- IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class SIItemProvider extends StandardDiseaseModelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SILabelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SILabelItemProvider.java
index 923ce9f..12355d4 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SILabelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SILabelItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.diseasemodels.standard.SILabel;
/**
@@ -32,9 +27,7 @@
*
* @generated
*/
-public class SILabelItemProvider extends StandardDiseaseModelLabelItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class SILabelItemProvider extends StandardDiseaseModelLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SILabelValueItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SILabelValueItemProvider.java
index 447e434..7bcb388 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SILabelValueItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SILabelValueItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.SILabelValue;
@@ -36,9 +31,7 @@
* @generated
*/
public class SILabelValueItemProvider extends
- StandardDiseaseModelLabelValueItemProvider implements
- IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+ StandardDiseaseModelLabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRInoculatorItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRInoculatorItemProvider.java
index 1b3c543..a6660af 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRInoculatorItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRInoculatorItemProvider.java
@@ -18,12 +18,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.SIRInoculator;
@@ -36,13 +31,7 @@
* @generated
*/
public class SIRInoculatorItemProvider
- extends SIInfectorItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends SIInfectorItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRItemProvider.java
index 0374750..b076183 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.SIR;
@@ -35,9 +30,7 @@
*
* @generated
*/
-public class SIRItemProvider extends SIItemProvider implements
- IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class SIRItemProvider extends SIItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRLabelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRLabelItemProvider.java
index da90cc3..4a2d426 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRLabelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRLabelItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.diseasemodels.standard.SIRLabel;
/**
@@ -32,9 +27,7 @@
*
* @generated
*/
-public class SIRLabelItemProvider extends StandardDiseaseModelLabelItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class SIRLabelItemProvider extends StandardDiseaseModelLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRLabelValueItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRLabelValueItemProvider.java
index 4d246d0..d0e806e 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRLabelValueItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/SIRLabelValueItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.SIRLabelValue;
@@ -33,9 +28,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
-public class SIRLabelValueItemProvider extends SILabelValueItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class SIRLabelValueItemProvider extends SILabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseInitializerItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseInitializerItemProvider.java
index a1102ef..d57afdf 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseInitializerItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseInitializerItemProvider.java
@@ -13,12 +13,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.StandardDiseaseInitializer;
@@ -31,13 +26,7 @@
* @generated
*/
public class StandardDiseaseInitializerItemProvider
- extends DiseaseInitializerItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends DiseaseInitializerItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelItemProvider.java
index ef95c9a..7cbdea7 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModel;
@@ -33,9 +28,7 @@
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
-public class StandardDiseaseModelItemProvider extends DiseaseModelItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class StandardDiseaseModelItemProvider extends DiseaseModelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelLabelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelLabelItemProvider.java
index 7fd609b..bb2f81e 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelLabelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelLabelItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabel;
/**
@@ -31,9 +26,7 @@
* @generated
*/
public class StandardDiseaseModelLabelItemProvider extends
- DiseaseModelLabelItemProvider implements IEditingDomainItemProvider,
- IStructuredItemContentProvider, ITreeItemContentProvider,
- IItemLabelProvider, IItemPropertySource {
+ DiseaseModelLabelItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelLabelValueItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelLabelValueItemProvider.java
index e3e6ac4..b3d9751 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelLabelValueItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardDiseaseModelLabelValueItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.StandardDiseaseModelLabelValue;
@@ -34,9 +29,7 @@
* @generated
*/
public class StandardDiseaseModelLabelValueItemProvider extends
- DiseaseModelLabelValueItemProvider implements
- IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+ DiseaseModelLabelValueItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardInfectorItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardInfectorItemProvider.java
index 4703106..814888b 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardInfectorItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardInfectorItemProvider.java
@@ -16,21 +16,14 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
/**
* This is the item provider adapter for a {@link org.eclipse.stem.diseasemodels.standard.StandardInfector} object.
* <!-- begin-user-doc --> <!-- end-user-doc -->
* @generated
*/
-public class StandardInfectorItemProvider extends InfectorItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class StandardInfectorItemProvider extends InfectorItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardStochasticDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardStochasticDiseaseModelItemProvider.java
index 4ba2987..a040fc1 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardStochasticDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StandardStochasticDiseaseModelItemProvider.java
@@ -13,12 +13,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.StandardPackage;
@@ -32,13 +27,7 @@
*/
@SuppressWarnings("deprecation")
public class StandardStochasticDiseaseModelItemProvider
- extends StochasticDiseaseModelItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends StochasticDiseaseModelItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSEIRDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSEIRDiseaseModelItemProvider.java
index e7df0f7..e95c41b 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSEIRDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSEIRDiseaseModelItemProvider.java
@@ -16,12 +16,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.diseasemodels.standard.StochasticPoissonSEIRDiseaseModel;
/**
@@ -31,13 +26,7 @@
* @generated
*/
public class StochasticPoissonSEIRDiseaseModelItemProvider
- extends SEIRItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends SEIRItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSIDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSIDiseaseModelItemProvider.java
index d2233e3..28e30e4 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSIDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSIDiseaseModelItemProvider.java
@@ -16,12 +16,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.diseasemodels.standard.StochasticPoissonSIDiseaseModel;
/**
@@ -31,13 +26,7 @@
* @generated
*/
public class StochasticPoissonSIDiseaseModelItemProvider
- extends SIItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends SIItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSIRDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSIRDiseaseModelItemProvider.java
index f2bea66..b2e78a2 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSIRDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticPoissonSIRDiseaseModelItemProvider.java
@@ -16,12 +16,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.stem.diseasemodels.standard.StochasticPoissonSIRDiseaseModel;
/**
@@ -31,13 +26,7 @@
* @generated
*/
public class StochasticPoissonSIRDiseaseModelItemProvider
- extends SIRItemProvider
- implements
- IEditingDomainItemProvider,
- IStructuredItemContentProvider,
- ITreeItemContentProvider,
- IItemLabelProvider,
- IItemPropertySource {
+ extends SIRItemProvider {
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSEIRDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSEIRDiseaseModelItemProvider.java
index f8694ae..636bc90 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSEIRDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSEIRDiseaseModelItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.StandardPackage;
@@ -34,9 +29,7 @@
* @generated
*/
@SuppressWarnings("deprecation")
-public class StochasticSEIRDiseaseModelItemProvider extends SEIRItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class StochasticSEIRDiseaseModelItemProvider extends SEIRItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSIDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSIDiseaseModelItemProvider.java
index 3eeb6dc..8a4a150 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSIDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSIDiseaseModelItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.StandardPackage;
@@ -34,9 +29,7 @@
* @generated
*/
@SuppressWarnings("deprecation")
-public class StochasticSIDiseaseModelItemProvider extends SIItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class StochasticSIDiseaseModelItemProvider extends SIItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSIRDiseaseModelItemProvider.java b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSIRDiseaseModelItemProvider.java
index 02a7eca..cbae209 100644
--- a/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSIRDiseaseModelItemProvider.java
+++ b/models/epidemiology/org.eclipse.stem.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/provider/StochasticSIRDiseaseModelItemProvider.java
@@ -17,12 +17,7 @@
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.stem.diseasemodels.standard.StandardPackage;
@@ -34,9 +29,7 @@
* @generated
*/
@SuppressWarnings("deprecation")
-public class StochasticSIRDiseaseModelItemProvider extends SIRItemProvider
- implements IEditingDomainItemProvider, IStructuredItemContentProvider,
- ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
+public class StochasticSIRDiseaseModelItemProvider extends SIRItemProvider {
/**
* This constructs an instance from a factory and a notifier. <!--
* begin-user-doc -->
diff --git a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/META-INF/MANIFEST.MF b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/META-INF/MANIFEST.MF
index 2ef9b63..8a6617d 100644
--- a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/META-INF/MANIFEST.MF
+++ b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/META-INF/MANIFEST.MF
@@ -7,17 +7,23 @@
Bundle-Activator: org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorPlugin$Implementation
Bundle-Vendor: %providerName
Bundle-Localization: plugin
-Export-Package: org.eclipse.stem.diseasemodels.standard.presentation,
+Export-Package: org.eclipse.stem.diseasemodels.predicates.diseasepredicates.presentation,
+ org.eclipse.stem.diseasemodels.standard.presentation,
org.eclipse.stem.ui.adapters.diseasemodelpropertyeditor,
org.eclipse.stem.ui.adapters.newmodifierpage,
org.eclipse.stem.ui.wizards
-Require-Bundle: org.eclipse.stem.diseasemodels;visibility:=reexport,
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.stem.diseasemodels;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.stem.core;visibility:=reexport,
+ org.eclipse.stem.definitions;visibility:=reexport,
org.eclipse.stem.ui,
org.eclipse.stem.geography,
org.eclipse.ui.navigator,
org.eclipse.ui.navigator.resources,
- org.eclipse.emf.ecore.edit,
- org.eclipse.stem.populationmodels,
+ org.eclipse.emf.ecore.edit;visibility:=reexport,
+ org.eclipse.stem.populationmodels;visibility:=reexport,
org.eclipse.stem.analysis,
org.eclipse.core.expressions;bundle-version="3.4.200"
Bundle-ActivationPolicy: lazy
diff --git a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/plugin.xml b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/plugin.xml
index b83522f..34294a5 100644
--- a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/plugin.xml
+++ b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/plugin.xml
@@ -263,4 +263,125 @@
</iterate>
</definition>
</extension>
+ <extension
+ point="org.eclipse.core.runtime.applications"
+ id="DiseasemodelsEditorAdvisorApplication">
+ <!-- @generated diseasemodels -->
+ <application>
+ <run class="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisor$Application"/>
+ </application>
+ </extension>
+
+ <extension point="org.eclipse.ui.perspectives">
+ <!-- @generated diseasemodels -->
+ <perspective
+ name="%_UI_Perspective_label"
+ class="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisor$Perspective"
+ id="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisorPerspective">
+ </perspective>
+ </extension>
+
+ <extension point="org.eclipse.ui.commands">
+ <!-- @generated diseasemodels -->
+ <command
+ name="%_UI_Menu_OpenURI_label"
+ description="%_UI_Menu_OpenURI_description"
+ categoryId="org.eclipse.ui.category.file"
+ id="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisorOpenURICommand"/>
+ <command
+ name="%_UI_Menu_Open_label"
+ description="%_UI_Menu_Open_description"
+ categoryId="org.eclipse.ui.category.file"
+ id="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisorOpenCommand"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.bindings">
+ <!-- @generated diseasemodels -->
+ <!--<key
+ commandId="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisorOpenURICommand"
+ sequence="M1+U"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>-->
+ <key
+ commandId="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisorOpenCommand"
+ sequence="M1+O"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.actionSets">
+ <!-- @generated diseasemodels -->
+ <actionSet
+ label="%_UI_DiseasemodelsEditorAdvisor_ActionSet_label"
+ visible="true"
+ id="DiseasemodelsEditorAdvisorActionSet">
+ <action
+ label="%_UI_Menu_About_label"
+ class="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisor$AboutAction"
+ menubarPath="help/additions"
+ id="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisorAboutAction"/>
+ <action
+ label="%_UI_Menu_OpenURI_label"
+ definitionId="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisorOpenURICommand"
+ class="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisor$OpenURIAction"
+ menubarPath="file/additions"
+ id="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisorOpenURIAction"/>
+ <action
+ label="%_UI_Menu_Open_label"
+ definitionId="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisorOpenCommand"
+ class="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisor$OpenAction"
+ menubarPath="file/additions"
+ id="org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorAdvisorOpenAction"/>
+ </actionSet>
+ </extension>
+
+ <extension point="org.eclipse.ui.actionSets">
+ <!-- @generated diseasemodels -->
+ <actionSet
+ label="%_UI_StandardModelWizard_ActionSet_label"
+ visible="true"
+ id="org.eclipse.stem.diseasemodels.standard.presentation.StandardActionBarContributorActionSet">
+ <action
+ label="%_UI_StandardModelWizard_label"
+ class="org.eclipse.stem.diseasemodels.standard.presentation.StandardActionBarContributor$NewAction"
+ menubarPath="file/new/additions"
+ id="org.eclipse.stem.diseasemodels.standard.presentation.StandardActionBarContributorNewAction"/>
+ </actionSet>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <!-- @generated diseasemodels -->
+ <editor
+ id="org.eclipse.stem.diseasemodels.standard.presentation.StandardEditorID"
+ name="%_UI_StandardEditor_label"
+ icon="icons/full/obj16/StandardModelFile.gif"
+ extensions="standard"
+ class="org.eclipse.stem.diseasemodels.standard.presentation.StandardEditor"
+ contributorClass="org.eclipse.stem.diseasemodels.standard.presentation.StandardActionBarContributor">
+ </editor>
+ </extension>
+
+ <extension point="org.eclipse.ui.actionSets">
+ <!-- @generated diseasemodels -->
+ <actionSet
+ label="%_UI_DiseasepredicatesModelWizard_ActionSet_label"
+ visible="true"
+ id="org.eclipse.stem.diseasemodels.predicates.diseasepredicates.presentation.DiseasepredicatesActionBarContributorActionSet">
+ <action
+ label="%_UI_DiseasepredicatesModelWizard_label"
+ class="org.eclipse.stem.diseasemodels.predicates.diseasepredicates.presentation.DiseasepredicatesActionBarContributor$NewAction"
+ menubarPath="file/new/additions"
+ id="org.eclipse.stem.diseasemodels.predicates.diseasepredicates.presentation.DiseasepredicatesActionBarContributorNewAction"/>
+ </actionSet>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <!-- @generated diseasemodels -->
+ <editor
+ id="org.eclipse.stem.diseasemodels.predicates.diseasepredicates.presentation.DiseasepredicatesEditorID"
+ name="%_UI_DiseasepredicatesEditor_label"
+ icon="icons/full/obj16/DiseasepredicatesModelFile.gif"
+ extensions="diseasepredicates"
+ class="org.eclipse.stem.diseasemodels.predicates.diseasepredicates.presentation.DiseasepredicatesEditor"
+ contributorClass="org.eclipse.stem.diseasemodels.predicates.diseasepredicates.presentation.DiseasepredicatesActionBarContributor">
+ </editor>
+ </extension>
</plugin>
diff --git a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/presentation/DiseasepredicatesEditor.java b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/presentation/DiseasepredicatesEditor.java
index ce8f8c4..34e53d3 100644
--- a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/presentation/DiseasepredicatesEditor.java
+++ b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/predicates/diseasepredicates/presentation/DiseasepredicatesEditor.java
@@ -203,7 +203,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected PropertySheetPage propertySheetPage;
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
/**
* This is the viewer that shadows the selection in the content outline.
@@ -313,7 +313,7 @@
}
}
else if (p instanceof PropertySheet) {
- if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
getActionBarContributor().setActiveEditor(DiseasepredicatesEditor.this);
handleActivate();
}
@@ -425,6 +425,15 @@
@Override
protected void unsetTarget(Resource target) {
basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
}
};
@@ -587,14 +596,14 @@
adapterFactory.addAdapterFactory(new GraphItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new ModelItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new ModifierItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new PredicateItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new ScenarioItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new SequencerItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new SolverItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new LoggerItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new LabelsItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new EcoreItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new org.eclipse.stem.populationmodels.standard.provider.StandardItemProviderAdapterFactory());
- adapterFactory.addAdapterFactory(new LoggerItemProviderAdapterFactory());
- adapterFactory.addAdapterFactory(new PredicateItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
// Create the command stack that will notify this editor as commands are executed.
@@ -617,8 +626,14 @@
if (mostRecentCommand != null) {
setSelectionToViewer(mostRecentCommand.getAffectedObjects());
}
- if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
- propertySheetPage.refresh();
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed()) {
+ i.remove();
+ }
+ else {
+ propertySheetPage.refresh();
+ }
}
}
});
@@ -1279,23 +1294,22 @@
* @generated
*/
public IPropertySheetPage getPropertySheetPage() {
- if (propertySheetPage == null) {
- propertySheetPage =
- new ExtendedPropertySheetPage(editingDomain) {
- @Override
- public void setSelectionToViewer(List<?> selection) {
- DiseasepredicatesEditor.this.setSelectionToViewer(selection);
- DiseasepredicatesEditor.this.setFocus();
- }
+ PropertySheetPage propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ DiseasepredicatesEditor.this.setSelectionToViewer(selection);
+ DiseasepredicatesEditor.this.setFocus();
+ }
- @Override
- public void setActionBars(IActionBars actionBars) {
- super.setActionBars(actionBars);
- getActionBarContributor().shareGlobalActions(this, actionBars);
- }
- };
- propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
- }
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
return propertySheetPage;
}
@@ -1413,7 +1427,7 @@
/**
* This returns whether something has been persisted to the URI of the specified resource.
- * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -1660,7 +1674,7 @@
getActionBarContributor().setActiveEditor(null);
}
- if (propertySheetPage != null) {
+ for (PropertySheetPage propertySheetPage : propertySheetPages) {
propertySheetPage.dispose();
}
diff --git a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/DiseasemodelsEditorAdvisor.java b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/DiseasemodelsEditorAdvisor.java
index 41df565..e7b7ee6 100644
--- a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/DiseasemodelsEditorAdvisor.java
+++ b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/DiseasemodelsEditorAdvisor.java
@@ -21,6 +21,8 @@
import org.eclipse.emf.common.util.UniqueEList;
import org.eclipse.emf.edit.ui.action.LoadResourceAction;
import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.stem.diseasemodels.standard.presentation.DiseasemodelsEditorPlugin;
+import org.eclipse.stem.diseasemodels.predicates.diseasepredicates.presentation.DiseasepredicatesEditor;
import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
import org.eclipse.jface.action.GroupMarker;
@@ -68,7 +70,7 @@
* <!-- end-user-doc -->
* @generated
*/
- private static final String[] FILE_EXTENSION_FILTERS = StandardEditor.FILE_EXTENSION_FILTERS.toArray(new String[0]);
+ private static final String[] FILE_EXTENSION_FILTERS = getFileExtensionFilters();
/**
* Returns the default file extension filters. This method should only be used to initialize {@link #FILE_EXTENSION_FILTERS}.
diff --git a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/DiseasemodelsEditorPlugin.java b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/DiseasemodelsEditorPlugin.java
index 48da6b0..b964def 100644
--- a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/DiseasemodelsEditorPlugin.java
+++ b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/DiseasemodelsEditorPlugin.java
@@ -14,9 +14,11 @@
import org.eclipse.emf.common.EMFPlugin;
import org.eclipse.emf.common.ui.EclipseUIPlugin;
import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.provider.EcoreEditPlugin;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.stem.core.common.provider.CoreEditPlugin;
import org.eclipse.stem.definitions.edges.provider.DefinitionsEditPlugin;
+import org.eclipse.stem.populationmodels.standard.provider.StandardEditPlugin;
import org.eclipse.stem.ui.diseasemodels.ISharedImages;
import org.eclipse.stem.ui.wizards.StandardDiseaseModelPropertyEditorAdapterFactory;
import org.eclipse.stem.ui.wizards.StandardPropertyStringProviderAdapterFactory;
diff --git a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/StandardEditor.java b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/StandardEditor.java
index 314065f..3815ecd 100644
--- a/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/StandardEditor.java
+++ b/models/epidemiology/org.eclipse.stem.ui.diseasemodels/src/org/eclipse/stem/diseasemodels/standard/presentation/StandardEditor.java
@@ -87,10 +87,12 @@
import org.eclipse.stem.core.logger.provider.LoggerItemProviderAdapterFactory;
import org.eclipse.stem.core.model.provider.ModelItemProviderAdapterFactory;
import org.eclipse.stem.core.modifier.provider.ModifierItemProviderAdapterFactory;
+import org.eclipse.stem.core.predicate.provider.PredicateItemProviderAdapterFactory;
import org.eclipse.stem.core.scenario.provider.ScenarioItemProviderAdapterFactory;
import org.eclipse.stem.core.sequencer.provider.SequencerItemProviderAdapterFactory;
import org.eclipse.stem.core.solver.provider.SolverItemProviderAdapterFactory;
import org.eclipse.stem.definitions.labels.provider.LabelsItemProviderAdapterFactory;
+import org.eclipse.stem.diseasemodels.predicates.diseasepredicates.provider.DiseasepredicatesItemProviderAdapterFactory;
import org.eclipse.stem.diseasemodels.standard.provider.StandardItemProviderAdapterFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
@@ -201,7 +203,7 @@
* <!-- end-user-doc -->
* @generated
*/
- protected PropertySheetPage propertySheetPage;
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
/**
* This is the viewer that shadows the selection in the content outline.
@@ -311,7 +313,7 @@
}
}
else if (p instanceof PropertySheet) {
- if (((PropertySheet)p).getCurrentPage() == propertySheetPage) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
getActionBarContributor().setActiveEditor(StandardEditor.this);
handleActivate();
}
@@ -423,6 +425,15 @@
@Override
protected void unsetTarget(Resource target) {
basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
}
};
@@ -597,17 +608,19 @@
adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new StandardItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new DiseasepredicatesItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new CommonItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new GraphItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new ModelItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new ModifierItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new PredicateItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new ScenarioItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new SequencerItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new SolverItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new LoggerItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new LabelsItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new EcoreItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new org.eclipse.stem.populationmodels.standard.provider.StandardItemProviderAdapterFactory());
- adapterFactory.addAdapterFactory(new LoggerItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
// Create the command stack that will notify this editor as commands are executed.
@@ -630,8 +643,14 @@
if (mostRecentCommand != null) {
setSelectionToViewer(mostRecentCommand.getAffectedObjects());
}
- if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed()) {
- propertySheetPage.refresh();
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed()) {
+ i.remove();
+ }
+ else {
+ propertySheetPage.refresh();
+ }
}
}
});
@@ -1511,23 +1530,22 @@
* @generated
*/
public IPropertySheetPage getPropertySheetPage() {
- if (propertySheetPage == null) {
- propertySheetPage =
- new ExtendedPropertySheetPage(editingDomain) {
- @Override
- public void setSelectionToViewer(List<?> selection) {
- StandardEditor.this.setSelectionToViewer(selection);
- StandardEditor.this.setFocus();
- }
+ PropertySheetPage propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ StandardEditor.this.setSelectionToViewer(selection);
+ StandardEditor.this.setFocus();
+ }
- @Override
- public void setActionBars(IActionBars actionBars) {
- super.setActionBars(actionBars);
- getActionBarContributor().shareGlobalActions(this, actionBars);
- }
- };
- propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
- }
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
return propertySheetPage;
}
@@ -1645,7 +1663,7 @@
/**
* This returns whether something has been persisted to the URI of the specified resource.
- * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -1892,7 +1910,7 @@
getActionBarContributor().setActiveEditor(null);
}
- if (propertySheetPage != null) {
+ for (PropertySheetPage propertySheetPage : propertySheetPages) {
propertySheetPage.dispose();
}
diff --git a/releng/org.eclipse.stem.releng/ConfigProduct/build.properties b/releng/org.eclipse.stem.releng/ConfigProduct/build.properties
index 66d1372..fead118 100644
--- a/releng/org.eclipse.stem.releng/ConfigProduct/build.properties
+++ b/releng/org.eclipse.stem.releng/ConfigProduct/build.properties
@@ -53,11 +53,13 @@
# configs=win32,win32,x86 & linux,motif,x86
# By default the value is *,*,*
#configs = *, *, *
-configs=win32, win32, x86 & win32, win32, x86_64 & macosx, cocoa, x86_64 & linux, gtk, x86 & linux, gtk, x86_64
+
+# MAD - 27/02/2016 - Removing 32-bit builds to reduce build time and space
+configs=win32, win32, x86 & win32, win32, x86_64 & macosx, cocoa, x86_64 & linux, gtk, x86_64
+
+#configs=win32, win32, x86 & win32, win32, x86_64 & macosx, cocoa, x86_64 & linux, gtk, x86 & linux, gtk, x86_64
#configs=macosx, cocoa, x86_64
-
-
# win32, win32, x86 & \
# linux, gtk, ppc &\
# linux, gtk, x86 & \
diff --git a/releng/org.eclipse.stem.releng/maps/stem.map b/releng/org.eclipse.stem.releng/maps/stem.map
index 59044cd..765b243 100644
--- a/releng/org.eclipse.stem.releng/maps/stem.map
+++ b/releng/org.eclipse.stem.releng/maps/stem.map
@@ -98,6 +98,7 @@
!plugin@org.eclipse.stem.internal.diseasemodels.models=COPY,${source.path.models.epidemiology},org.eclipse.stem.internal.diseasemodels.models
!plugin@org.eclipse.stem.internal.diseasemodels.scenarios=COPY,${source.path.models.epidemiology},org.eclipse.stem.internal.diseasemodels.scenarios
plugin@org.eclipse.stem.diseasemodels=COPY,${source.path.models.epidemiology},org.eclipse.stem.diseasemodels
+plugin@org.eclipse.stem.diseasemodels.evolving=COPY,${source.path.models.epidemiology},org.eclipse.stem.diseasemodels.evolving
plugin@org.eclipse.stem.diseasemodels.example=COPY,${source.path.models.epidemiology},org.eclipse.stem.diseasemodels.example
plugin@org.eclipse.stem.diseasemodels.experimental=COPY,${source.path.models.epidemiology},org.eclipse.stem.diseasemodels.experimental
plugin@org.eclipse.stem.diseasemodels.externaldatasource=COPY,${source.path.models.epidemiology},org.eclipse.stem.diseasemodels.externaldatasource