## org.eclipse.m2m.atl.engine.emfvm.adapter
Class EMFModelAdapter

    java.lang.Object
      org.eclipse.m2m.atl.engine.emfvm.adapter.EMFModelAdapter

All Implemented Interfaces:
  IModelAdapter

Direct Known Subclasses:
  UML2ModelAdapter

    public class EMFModelAdapter

extends java.lang.Object
implements IModelAdapter

The model adapter dedicated to EMF.

Constructor Summary
`EMFModelAdapter()` Creates an EMF model adapter.

Method Summary
`void` `delete(AbstractStackFrame frame, java.lang.Object modelElement)` Deletes an object on the given frame.
`void` `finalizeModel(IModel model)` Finalizes the given model.
`java.lang.Object` `get(AbstractStackFrame frame, java.lang.Object modelElement, java.lang.String name)` Gets a value from an object in the given frame.
`static org.eclipse.emf.ecore.EEnumLiteral` `getEENumLiteral(org.eclipse.emf.ecore.EEnum eEnum, java.lang.String id)` Returns the literal matching the given name or literal.
`java.lang.Object` `getID(java.lang.Object element)` Returns the element id.
`static java.lang.Object` `getNameOf(org.eclipse.emf.ecore.EObject eo)` Returns the name of an eObject.
`java.util.List<java.lang.Object>` `getSupertypes(java.lang.Object type)` Returns the list of supertypes of a given type.
`java.lang.Object` `getType(java.lang.Object value)` Returns the type of a given element.
`java.lang.Object` `invoke(java.lang.reflect.Method method, java.lang.Object self, java.lang.Object[] arguments)` Invokes a method.
`boolean` `isMetametaElement(java.lang.Object element)` Returns `true` if the given element is managed by the metametamodel of the current model adapter.
`boolean` `isModelElement(java.lang.Object o)` Returns `true` if the given object is managed by the current model adapter.
`boolean` `prettyPrint(ExecEnv execEnv, java.io.PrintStream out, java.lang.Object value)` Displays in a readable format the given object.
`void` `registerVMSupertypes(java.util.Map<java.lang.Class<?>,java.util.List<java.lang.Class<?>>> vmSupertypes)` Registers a map of supertypes.
`void` `registerVMTypeOperations(java.util.Map<java.lang.Object,java.util.Map<java.lang.String,Operation>> vmTypeOperations)` Registers a map of operations.
`void` `set(AbstractStackFrame frame, java.lang.Object modelElement, java.lang.String name, java.lang.Object value)` Sets a value on an object in the given frame.
`void` `setAllowInterModelReferences(boolean allowInterModelRefs)` Sets "allow inter-model references" for this model adapter.
`void` `setID(java.lang.Object element, java.lang.Object id)` Sets the element id.
`void` `unSet(AbstractStackFrame frame, java.lang.Object modelElement, java.lang.String name)` Unsets a value on an object in the given frame.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### EMFModelAdapter

    public EMFModelAdapter()

  Creates an EMF model adapter.

Method Detail

### setAllowInterModelReferences

    public void setAllowInterModelReferences(boolean allowInterModelRefs)

  Sets "allow inter-model references" for this model adapter.

  Specified by:
    `setAllowInterModelReferences` in interface `IModelAdapter`
  Parameters:
    `allowInterModelRefs` - the parameter value

### getNameOf

    public static java.lang.Object getNameOf(org.eclipse.emf.ecore.EObject eo)

  Returns the name of an eObject.

  Parameters:
    `eo` - the eObject
  Returns:
    the name of an eObject

### getEENumLiteral

    public static org.eclipse.emf.ecore.EEnumLiteral getEENumLiteral(org.eclipse.emf.ecore.EEnum eEnum,
                                                                     java.lang.String id)

  Returns the literal matching the given name or literal.

  Parameters:
    `eEnum` - the enumeration
    `id` - the name or the literal
  Returns:
    the literal

### getSupertypes

    public java.util.List<java.lang.Object> getSupertypes(java.lang.Object type)

  Returns the list of supertypes of a given type.

  Specified by:
    `getSupertypes` in interface `IModelAdapter`
  Parameters:
    `type` - the type
  Returns:
    the list of supertypes
  See Also:
    `IModelAdapter.getSupertypes(java.lang.Object)`

### getType

    public java.lang.Object getType(java.lang.Object value)

  Returns the type of a given element.

  Specified by:
    `getType` in interface `IModelAdapter`
  Parameters:
    `value` - the type
  Returns:
    the type
  See Also:
    `IModelAdapter.getType(java.lang.Object)`

### prettyPrint

    public boolean prettyPrint(ExecEnv execEnv,
                               java.io.PrintStream out,
                               java.lang.Object value)

  Displays in a readable format the given object.

  Specified by:
    `prettyPrint` in interface `IModelAdapter`
  Parameters:
    `execEnv` - the current execEnv
    `out` - the output stream
    `value` - the object to display
  Returns:
    true if display has been successful
  See Also:
    `IModelAdapter.prettyPrint(org.eclipse.m2m.atl.engine.emfvm.lib.ExecEnv, java.io.PrintStream, java.lang.Object)`

### registerVMSupertypes

    public void registerVMSupertypes(java.util.Map<java.lang.Class<?>,java.util.List<java.lang.Class<?>>> vmSupertypes)

  Registers a map of supertypes.

  Specified by:
    `registerVMSupertypes` in interface `IModelAdapter`
  Parameters:
    `vmSupertypes` - the map
  See Also:
    `IModelAdapter.registerVMSupertypes(java.util.Map)`

### registerVMTypeOperations

    public void registerVMTypeOperations(java.util.Map<java.lang.Object,java.util.Map<java.lang.String,Operation>> vmTypeOperations)

  Registers a map of operations.

  Specified by:
    `registerVMTypeOperations` in interface `IModelAdapter`
  Parameters:
    `vmTypeOperations` - the map
  See Also:
    `IModelAdapter.registerVMTypeOperations(java.util.Map)`

### get

    public java.lang.Object get(AbstractStackFrame frame,
                                java.lang.Object modelElement,
                                java.lang.String name)

  Gets a value from an object in the given frame.

  Specified by:
    `get` in interface `IModelAdapter`
  Parameters:
    `frame` - the `AbstractStackFrame`
    `modelElement` - the object
    `name` - the name of the attribute / feature which contains the value
  Returns:
    the value
  See Also:
    `IModelAdapter.get(org.eclipse.m2m.atl.engine.emfvm.lib.AbstractStackFrame, java.lang.Object, java.lang.String)`

### set

    public void set(AbstractStackFrame frame,
                    java.lang.Object modelElement,
                    java.lang.String name,
                    java.lang.Object value)

  Sets a value on an object in the given frame.

  Specified by:
    `set` in interface `IModelAdapter`
  Parameters:
    `frame` - the `AbstractStackFrame`
    `modelElement` - the object
    `name` - the name of the attribute / feature which will contain the value
    `value` - the value to set
  See Also:
    `IModelAdapter.set(org.eclipse.m2m.atl.engine.emfvm.lib.AbstractStackFrame, java.lang.Object, java.lang.String, java.lang.Object)`

### unSet

    public void unSet(AbstractStackFrame frame,
                      java.lang.Object modelElement,
                      java.lang.String name)

  Unsets a value on an object in the given frame.

  Specified by:
    `unSet` in interface `IModelAdapter`
  Parameters:
    `frame` - the `AbstractStackFrame`
    `modelElement` - the object
    `name` - the name of the attribute / feature which will contain the value
  See Also:
    `IModelAdapter.unSet(org.eclipse.m2m.atl.engine.emfvm.lib.AbstractStackFrame, java.lang.Object, java.lang.String)`

### delete

    public void delete(AbstractStackFrame frame,
                       java.lang.Object modelElement)

  Deletes an object on the given frame.

  Specified by:
    `delete` in interface `IModelAdapter`
  Parameters:
    `frame` - the `AbstractStackFrame`
    `modelElement` - the object to delete
  See Also:
    `IModelAdapter.delete(org.eclipse.m2m.atl.engine.emfvm.lib.AbstractStackFrame, java.lang.Object)`

### invoke

    public java.lang.Object invoke(java.lang.reflect.Method method,
                                   java.lang.Object self,
                                   java.lang.Object[] arguments)

  Invokes a method.

  Specified by:
    `invoke` in interface `IModelAdapter`
  Parameters:
    `method` - the method to invoke
    `self` - the object context
    `arguments` - the call arguments
  Returns:
    the method result
  See Also:
    `IModelAdapter.invoke(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])`

### finalizeModel

    public void finalizeModel(IModel model)

  Finalizes the given model.

  Specified by:
    `finalizeModel` in interface `IModelAdapter`
  Parameters:
    `model` - the given model
  See Also:
    `IModelAdapter.finalizeModel(org.eclipse.m2m.atl.core.IModel)`

### getID

    public java.lang.Object getID(java.lang.Object element)

  Returns the element id.

  Specified by:
    `getID` in interface `IModelAdapter`
  Parameters:
    `element` - the element
  Returns:
    the element id
  See Also:
    `IModelAdapter.getID(java.lang.Object)`

### setID

    public void setID(java.lang.Object element,
                      java.lang.Object id)

  Sets the element id.

  Specified by:
    `setID` in interface `IModelAdapter`
  Parameters:
    `element` - the element
    `id` - the id to set
  See Also:
    `IModelAdapter.setID(java.lang.Object, java.lang.Object)`

### isModelElement

    public boolean isModelElement(java.lang.Object o)

  Returns `true` if the given object is managed by the current model adapter.

  Specified by:
    `isModelElement` in interface `IModelAdapter`
  Parameters:
    `o` - the given object
  Returns:
    `true` if the given object is managed by the current model adapter
  See Also:
    `IModelAdapter.isModelElement(java.lang.Object)`

### isMetametaElement

    public boolean isMetametaElement(java.lang.Object element)

  Returns `true` if the given element is managed by the metametamodel of the current model adapter.

  Specified by:
    `isMetametaElement` in interface `IModelAdapter`
  Parameters:
    `element` - the given element
  Returns:
    `true` if the given element is managed by the metametamodel of the current model adapter
  See Also:
    `IModelAdapter.isMetametaElement(java.lang.Object)`

Copyright 2007 IBM Corporation and others. All Rights Reserved.