Package org.eclipse.m2m.atl.engine.emfvm.launch

## Class EMFVMLauncher

- java.lang.Object
- - org.eclipse.m2m.atl.engine.emfvm.launch.EMFVMLauncher

All Implemented Interfaces:
  `ILauncher`

Direct Known Subclasses:
  `EMFVMUILauncher`

    public class EMFVMLauncher
    extends java.lang.Object
    implements ILauncher

The EMFVM implementation of the `ILauncher` interface.

### Field Summary

Fields
`static java.lang.String` `LAUNCHER_NAME` The `ILauncher` extension name.
`protected java.util.Map<java.lang.String,​ASM>` `libraries`
`static java.lang.String` `MODEL_FACTORY_NAME` The Default model factory name to use.
`protected java.util.Map<java.lang.String,​IModel>` `models`

### Fields inherited from interface org.eclipse.m2m.atl.core.launch.ILauncher

`DEBUG_MODE, RUN_MODE`

### Constructor Summary

Constructors
`EMFVMLauncher()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addInModel​(IModel model, java.lang.String name, java.lang.String referenceModelName)` Adds an input model to the transformation context.
`void` `addInOutModel​(IModel model, java.lang.String name, java.lang.String referenceModelName)` Adds an input/output model to the transformation context.
`void` `addLibrary​(java.lang.String name, java.lang.Object library)` Adds a preloaded library module to the transformation, or an `InputStream`.
`protected void` `addModel​(IModel model, java.lang.String name, java.lang.String referenceModelName)` Adds any model to the local map.
`void` `addOutModel​(IModel model, java.lang.String name, java.lang.String referenceModelName)` Adds an output model to the transformation context.
`protected ASM` `getASMFromObject​(java.lang.Object module)` Load a module if necessary.
`java.lang.String` `getDefaultModelFactoryName()` Returns the default ModelFactory name.
`java.lang.Object` `getLibrary​(java.lang.String libraryName)` Returns a previously added library with the given name.
`IModel` `getModel​(java.lang.String modelName)` Returns a previously added model with the given name.
`java.lang.String[]` `getModes()` Returns the supported modes.
`java.lang.String` `getName()` Returns the `ILauncher` name.
`void` `initialize​(java.util.Map<java.lang.String,​java.lang.Object> parameters)` Initialize the launcher.
`protected java.lang.Object` `internalLaunch​(ITool[] tools, org.eclipse.core.runtime.IProgressMonitor monitor, java.util.Map<java.lang.String,​java.lang.Object> options, java.lang.Object... modules)` Launches the transformation with preloaded modules.
`java.lang.Object` `launch​(java.lang.String mode, org.eclipse.core.runtime.IProgressMonitor monitor, java.util.Map<java.lang.String,​java.lang.Object> options, java.lang.Object... modules)` Launches the transformation using the given parameters and the given set of preloaded modules, or `InputStream`.
`java.lang.Object` `loadModule​(java.io.InputStream inputStream)` Loads a transformation module from an `InputStream`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### LAUNCHER_NAME

    public static final java.lang.String LAUNCHER_NAME

The `ILauncher` extension name.

See Also:
  Constant Field Values

#### MODEL_FACTORY_NAME

    public static final java.lang.String MODEL_FACTORY_NAME

The Default model factory name to use.

See Also:
  Constant Field Values

#### models

    protected java.util.Map<java.lang.String,​IModel> models

#### libraries

    protected java.util.Map<java.lang.String,​ASM> libraries

### Constructor Detail

#### EMFVMLauncher

    public EMFVMLauncher()

### Method Detail

#### getName

    public java.lang.String getName()

Description copied from interface: `ILauncher`
Returns the `ILauncher` name.

Specified by:
  `getName` in interface `ILauncher`
Returns:
  the `ILauncher` name

#### addModel

    protected void addModel​(IModel model,
                            java.lang.String name,
                            java.lang.String referenceModelName)

Adds any model to the local map.

Parameters:
  `model` - the `IModel`
  `name` - the model name
  `referenceModelName` - the model reference model name

#### addInModel

    public void addInModel​(IModel model,
                           java.lang.String name,
                           java.lang.String referenceModelName)

Adds an input model to the transformation context. This method is also used to load the metamodels used in this transformation.

Specified by:
  `addInModel` in interface `ILauncher`
Parameters:
  `model` - the loaded model
  `name` - the name of the model as described in the main module
  `referenceModelName` - the name of the metamodel as described in the main module
See Also:
  `ILauncher.addInModel(org.eclipse.m2m.atl.core.IModel, java.lang.String, java.lang.String)`

#### addInOutModel

    public void addInOutModel​(IModel model,
                              java.lang.String name,
                              java.lang.String referenceModelName)

Adds an input/output model to the transformation context.

Specified by:
  `addInOutModel` in interface `ILauncher`
Parameters:
  `model` - the loaded model
  `name` - the name of the model as described in the main module
  `referenceModelName` - the name of the metamodel as described in the main module
See Also:
  `ILauncher.addInOutModel(org.eclipse.m2m.atl.core.IModel, java.lang.String, java.lang.String)`

#### addOutModel

    public void addOutModel​(IModel model,
                            java.lang.String name,
                            java.lang.String referenceModelName)

Adds an output model to the transformation context.

Specified by:
  `addOutModel` in interface `ILauncher`
Parameters:
  `model` - the loaded model
  `name` - the name of the model as described in the main module
  `referenceModelName` - the name of the metamodel as described in the main module
See Also:
  `ILauncher.addOutModel(org.eclipse.m2m.atl.core.IModel, java.lang.String, java.lang.String)`

#### addLibrary

    public void addLibrary​(java.lang.String name,
                           java.lang.Object library)

Adds a preloaded library module to the transformation, or an `InputStream`.

Specified by:
  `addLibrary` in interface `ILauncher`
Parameters:
  `name` - the name of the library as described in the main module
  `library` - the loaded library
See Also:
  `ILauncher.addLibrary(java.lang.String, java.lang.Object)`

#### initialize

    public void initialize​(java.util.Map<java.lang.String,​java.lang.Object> parameters)

Initialize the launcher.

Specified by:
  `initialize` in interface `ILauncher`
Parameters:
  `parameters` - initialization options
See Also:
  `ILauncher.initialize(java.util.Map)`

#### launch

    public java.lang.Object launch​(java.lang.String mode,
                                   org.eclipse.core.runtime.IProgressMonitor monitor,
                                   java.util.Map<java.lang.String,​java.lang.Object> options,
                                   java.lang.Object... modules)

Launches the transformation using the given parameters and the given set of preloaded modules, or `InputStream`.

Specified by:
  `launch` in interface `ILauncher`
Parameters:
  `mode` - the launching mode
  `monitor` - the progress monitor
  `options` - vm options
  `modules` - single module/ordered module set. A module set is used for superimposition, where the first module of the set is override by the next ones. A module can be passed as an InputStream or directly a module loaded by the loadModule method.
Returns:
  the transformation return result
See Also:
  `ILauncher.launch(java.lang.String, org.eclipse.core.runtime.IProgressMonitor, java.util.Map, java.lang.Object[])`

#### internalLaunch

    protected java.lang.Object internalLaunch​(ITool[] tools,
                                              org.eclipse.core.runtime.IProgressMonitor monitor,
                                              java.util.Map<java.lang.String,​java.lang.Object> options,
                                              java.lang.Object... modules)

Launches the transformation with preloaded modules.

Parameters:
  `tools` - the execution tools
  `monitor` - the progression monitor
  `options` - the launching options
  `modules` - the transformation modules
Returns:
  the execution result

#### loadModule

    public java.lang.Object loadModule​(java.io.InputStream inputStream)

Loads a transformation module from an `InputStream`.

Specified by:
  `loadModule` in interface `ILauncher`
Parameters:
  `inputStream` - the input stream to load
Returns:
  the loaded module
See Also:
  `ILauncher.loadModule(java.io.InputStream)`

#### getASMFromObject

    protected ASM getASMFromObject​(java.lang.Object module)

Load a module if necessary.

Parameters:
  `module` - the given `ASM` or `InputStream`.
Returns:
  the `ASM`

#### getModel

    public IModel getModel​(java.lang.String modelName)

Returns a previously added model with the given name.

Specified by:
  `getModel` in interface `ILauncher`
Parameters:
  `modelName` - the model name
Returns:
  a previously added model with the given name
See Also:
  `ILauncher.getModel(java.lang.String)`

#### getLibrary

    public java.lang.Object getLibrary​(java.lang.String libraryName)

Returns a previously added library with the given name.

Specified by:
  `getLibrary` in interface `ILauncher`
Parameters:
  `libraryName` - the library name
Returns:
  a previously added library with the given name
See Also:
  `ILauncher.getLibrary(java.lang.String)`

#### getDefaultModelFactoryName

    public java.lang.String getDefaultModelFactoryName()

Returns the default ModelFactory name.

Specified by:
  `getDefaultModelFactoryName` in interface `ILauncher`
Returns:
  the default ModelFactory name
See Also:
  `ILauncher.getDefaultModelFactoryName()`

#### getModes

    public java.lang.String[] getModes()

Returns the supported modes.

Specified by:
  `getModes` in interface `ILauncher`
Returns:
  the supported modes
See Also:
  `ILauncher.getModes()`