Open Source Components
Virtual Developer is shipped with several open source components that make it easier to develop new code generators. The following table lists all available open source components.
Model Access Components
Component Name |
Description |
com.vd.jenerateit-modelaccess-emftext |
reads a model that is created by means of the Virtual Developer Modeler |
com.vd.jenerateit-modelaccess-groovy |
reads a model in form of some Groovy scripts and returns a collection of instances of com.vd.jenerateit.modelaccess.groovy.GroovyScriptUnit , that hold a memory representation of the groovy code. Only a subsequent model converter executes those Groovy scripts to create new model elements. |
com.vd.jenerateit-modelaccess-metaedit |
reads a model that is created with the MetaEdit+ tool |
com.vd.jenerateit-modelaccess-odf |
reads a model that is available in the Open Document Format (ODF) |
com.vd.jenerateit-modelaccess-openapi |
reads a model that is available in the OpenAPI format (previously known as Swagger) |
com.vd.jenerateit-modelaccess-poi |
reads a model that is created with Microsoft office tools like for instance Excel or Word |
com.vd.jenerateit-modelaccess-vorto |
reads a model that is created by means of Eclipse Vorto (either textual model files or URLs that point to the Eclipse Vorto model repository) |
Component Name |
Description |
com.gs.gapp.metamodel-analytics |
holds types that have the sole purpose to provide analysis for the conversion and generation process itself |
com.gs.gapp.metamodel-basic |
holds common classes like ModelElement to be used as parent class for all types of model element types |
com.gs.gapp.metamodel-basic-typesystem |
holds a set of types to be used as a generic type system |
com.gs.gapp.metamodel-function |
holds types that represent skeletons for business logic or service implementations |
com.gs.gapp.metamodel-iot |
holds types that can be use to represent IoT devices |
com.gs.gapp.metamodel-openapi |
holds a few helper types that improve the official OpenAPI 2.x metamodel to make it easier to handle OpenAPI models for the purpose of code generation |
com.gs.gapp.metamodel-persistence |
holds types to represent advanced data structures, often being used for the purpose of persisting data |
com.gs.gapp.metamodel-product |
holds types to represent simple product models (Product , Feature , Organization , ProductVariant , ProductModule , Capability ) |
com.gs.gapp.metamodel-test |
holds types to represent tests, to be used for the generation of unit tests, integration tests, etc. |
com.gs.gapp.metamodel-ui |
holds types for user interface modeling |
Technology-independent Model Converters
Component Name |
Description |
com.gs.gapp.converter |
provides basic functionality for all model converters in form of a micro-framework for object tree transformations |
com.gs.gapp.converter-analytics |
provides functionality for the analysis of the model transformation process as a whole |
com.gs.gapp.converter-function |
provides conversion logic to replicate certain function model elements and to on-the-fly add new types for the combination of in or out parameters |
com.gs.gapp.converter-iot-persistence |
provides conversion logic to create data structures (entities) for a given set of IoT devices |
com.gs.gapp.converter-persistence-basic |
provides conversion logic to create basic types for a given set of entity types (this is useful when you have to handle modeled entities but only need simple types and functions) |
com.gs.gapp.converter-persistence-function |
provides conversion logic to create a function model for a given entity model, e.g. when you have data structures modeled and want to use those for a REST service |
com.gs.gapp.converter-ui |
provides conversion logic to automatically enrich a given UI model, e.g. for the creation of tests |
com.gs.gapp.converter-ui-function |
provides conversion logic to automatically provide a simple function model for a modeled user interface view |
com.gs.vd.converter-groovy-any |
provides a model converter that evaluates groovy code for the purpose of dynamically creating an input model to be used for testing of code generators |
Common Generation Groups
Component Name |
Description |
com.gs.gapp.generation-analytics |
provides generation support for graphical transformation analytics based on the dot language |
com.gs.gapp.generation-anyfile |
provides generation support for binary and non-binary files where the file content is already available during model conversion (the generation group simply writes the already existing output as is) |
com.gs.gapp.generation-basic |
provides basic generation support for any kind of generation group, it makes sense to always let your generation group inherit from AbstractGenerationGroup and your writer locator from AbstractWriterLocator . |
com.gs.gapp.generation-json |
provides basic generation support for JSON files, including the automated pretty printing and the creation of a JSON patch |
Converters for the Creation of internal Models
Component Name |
Description |
com.gs.gapp.converter-emftext-gapp |
provides functionality to remove type aliases from the input model |
com.gs.gapp.converter-emftext-gapp-basic |
provides the creation of a basic model (DSL ‘Basic’) with stuff like primitive types, complex types, fields and options |
com.gs.gapp.converter-emftext-gapp-function |
provides the creation of a model based on the DSL ‘Function’ |
com.gs.gapp.converter-emftext-gapp-iot |
provides the creation of a model based on the DSL ‘Iot’ |
com.gs.gapp.converter-emftext-gapp-persistence |
provides the creation of a model based on the DSL ‘Persistence’ |
com.gs.gapp.converter-emftext-gapp-test |
provides the creation of a model based on the DSL ‘Test’ |
com.gs.gapp.converter-emftext-gapp-ui |
provides the creation of a model based on the DSL ‘UI’ |
com.gs.gapp.converter-openapi-gapp-function |
provides the creation of a function model based on an OpenAPI model as the input model |
com.gs.gapp.converter-vorto-gapp-iot |
provides a converter that creates a model base on the DSL ‘Iot’ for a given Vorto model as input |
com.gs.gapp.converter-vorto-gen-anyfile |
provides functionality to wrap an existing Vorto sample generator to be able to execute it on the Virtual Developer Platform |