Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

STEM Model Generator/EAnnotations

< STEM Model Generator
Revision as of 17:23, 6 September 2012 by Mattadav.us.ibm.com (Talk | contribs) (Feature Constraint EAnnotation)

STEM Model Generator EAnnotation info coming soon.

Ecore EAnnotations

To generate code complying with the STEM API, additional information must be passed to the code generator that is out-of-scope to EMF's Ecore and GenModel schemas. To get around this, Ecore EAnnotations are used to pass information to the code generator. In order to use an Ecore/GenModel that wasn't generated automatically, you need to add these EAnnotations by hand.

Adding an EAnnotation to an EPackage/EClass/EAttribute

It's easy to add an EAnnotation to an existing Ecore model instance using the Ecore Editor.

  1. Open your project's .ecore file in the EMF Ecore Editor
  2. Right click on the object you wish to EAnnotate. Select New Child, EAnnotation.
  3. Right click on the new EAnnotation and select Show Properties View
  4. In the Properties view, enter a value for the Source
    Note: This is generally a URI. See below for appropriate EAnnotation Source values for use with STEM's Model Generator
  5. Right click on the new EAnnotation. Select New Child, Details Entry.
  6. Select the new EAnnotation Detail Entry
  7. In the Properties view, enter values for Key and Value
    Note: See below for values to use with STEM's Model Generator
    Repeat this step for additional Detail Entries
  8. Save the Ecore file

EAnnotations used in STEM's Model Generator

STEM Model Generator Marker EAnnotation

Description Generator Marker Annotation
Source http:///org/eclipse/stem/modelgen/generated
Details Key Example Value Description
version 1.0 Model Generator version to use in codegen


Author Details EAnnotation

Description Author Details Annotation. Similar to the STEM Dublin Core.
Source http:///org/eclipse/stem/modelgen/author
Details Key Example Value Description
tbd tbd tbd


Model Adapters EAnnotation

Description STEM Adapter class references. Used to define inheritance hierarchy of generated classes.
Source http:///org/eclipse/stem/modelgen/model/adapters
Details Key Example Value Description
propertyEditorClass MyDiseaseModel-PropertyEditor The class name of property editor for the computational model
propertyEditor-SuperClass StandardDisease-ModelPropertyEditor The parent class name of property editor for the computational model


Label and LabelValue EAnnotations

Description Model label EAnnotation. Defines the IntegrationLabels returned by the computational model's create*Label(...) method.
Source http:///org/eclipse/stem/modelgen/model/label
Details Key Example Value Description
* MyDiseaseModelLabel The class name of the label created by this computational model


Description Model label value EAnnotation. Defines the IntegrationLabelValues (which stores compartments) returned by the computational model's create*LabelValue(...) method.
Source http:///org/eclipse/stem/modelgen/model/labelvalue
Details Key Example Value Description
* MyDiseaseModelLabelValue The LabelValue class name created by this computational model


Compartment Type EAnnotation

Description Sets the compartment type in a IntegrationLabelValue EClass's EAttribute.
Source http:///org/eclipse/stem/modelgen/compartment/type
Details Key Example Value Description
type Standard The compartment type. Valid values are Standard, Incidence, and Deaths


Model Parameter UI Messages EAnnotation

Description Defines UI strings applied to the EAttributes in the computational model's property editor.
Source http:///org/eclipse/stem/modelgen/modelparam/messages
Details Key Example Value Description
name Transmission Rate Display name
tooltip Transmission Rate is a value for doing something Extended help message describing the purpose of the EAttribute/parameter
unit ft/s The expected units for the parameter
invalid Transmission Rate is invalid Message to display if the value does not satisfy the required constraints
missing Transmission Rate is required Message to display if a required value is missing

Model Parameter Constraint EAnnotation

Description Defines validation constraints applied to values for the EAttribute
Source http:///org/eclipse/stem/modelgen/modelparam/constraints
Details Key Example Value Description
minValue 0.0 Minimum numeric value allowed
maxValue 1.0 Maximum numeric value allowed

Integration Decorator EAnnotations

EClass
EAttribute

Integration Label EAnnotations

EClass

Integration Label Value EAnnotations

EAttribute

GenModel Settings

To take advantage of the STEM Model Generator's custom templates, you must enable Dynamic Templates in your project's GenModel.

  1. Open your project's .genmodel in the EMF Generator editor
  2. Select the top level item (the GenModel)
  3. Right click and select Show Properties View
  4. Apply the following settings exactly as specified. When finished, Save the GenModel.
Property Value
Compliance Level 6.0
Runtime Version 2.7
Suppress Notification true
Public Constructors true
Dynamic Templates true
Force Overwrite true
Templates Directory platform:/plugin/org.eclipse.stem.model.codegen/templates
Template Plug-in Variables STEM_CODEGEN=org.eclipse.stem.model.codegen
Update Classpath true

Running the Code Generator

After you finish editing the Ecore and GenModel, you can now run the STEM Model Generator directly. The STEM Model Generator acts as an EMF Generator Adapter, therefore it runs automatically when you execute the EMF Code Generator.

  1. Open your project's .genmodel in the EMF Generator editor
  2. Select the top-level item (the GenModel)
  3. Right click and select a Generate option (Generate All, for example)
  4. Wait while the EMF Code Generator + STEM Model Generator run

Back to the top