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)

Internal Metamodels

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