org.eclipse.ocl.examples.pivot.uml
Class UML2Pivot

java.lang.Object
  extended by org.eclipse.emf.ecore.util.EcoreUtil
      extended by org.eclipse.ocl.examples.pivot.utilities.AbstractConversion
          extended by org.eclipse.ocl.examples.pivot.uml.UML2Pivot
All Implemented Interfaces:
org.eclipse.emf.common.notify.Adapter, org.eclipse.emf.common.notify.Adapter.Internal, MetaModelManagedAdapter, MetaModelManagerListener, PivotConstants, External2Pivot

public class UML2Pivot
extends AbstractConversion
implements External2Pivot, PivotConstants


Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.ocl.examples.pivot.utilities.AbstractConversion
AbstractConversion.Predicate<T extends org.eclipse.emf.ecore.EObject>
 
Nested classes/interfaces inherited from class org.eclipse.emf.ecore.util.EcoreUtil
org.eclipse.emf.ecore.util.EcoreUtil.AbstractFilteredSettingsIterator<E>, org.eclipse.emf.ecore.util.EcoreUtil.ContentTreeIterator<E>, org.eclipse.emf.ecore.util.EcoreUtil.Copier, org.eclipse.emf.ecore.util.EcoreUtil.CrossReferencer, org.eclipse.emf.ecore.util.EcoreUtil.EGenericTypeConverter, org.eclipse.emf.ecore.util.EcoreUtil.EqualityHelper, org.eclipse.emf.ecore.util.EcoreUtil.ExternalCrossReferencer, org.eclipse.emf.ecore.util.EcoreUtil.FilteredSettingsIterator, org.eclipse.emf.ecore.util.EcoreUtil.ProperContentIterator<E>, org.eclipse.emf.ecore.util.EcoreUtil.ProxyCrossReferencer, org.eclipse.emf.ecore.util.EcoreUtil.UnresolvedProxyCrossReferencer, org.eclipse.emf.ecore.util.EcoreUtil.UsageCrossReferencer
 
Nested classes/interfaces inherited from interface org.eclipse.emf.common.notify.Adapter
org.eclipse.emf.common.notify.Adapter.Internal
 
Field Summary
protected  UML2PivotDeclarationSwitch declarationPass
           
protected  Package pivotRoot
           
protected  UML2PivotReferenceSwitch referencePass
           
protected  org.eclipse.emf.ecore.resource.Resource umlResource
           
 
Fields inherited from class org.eclipse.ocl.examples.pivot.utilities.AbstractConversion
metaModelManager
 
Fields inherited from class org.eclipse.emf.ecore.util.EcoreUtil
GEN_MODEL_PACKAGE_NS_URI, GET, IS_SET, SET, UNSET
 
Fields inherited from interface org.eclipse.ocl.examples.pivot.PivotConstants
ACCUMULATOR_SEPARATOR, ANNOTATION_QUOTE, BINDINGS_PREFIX, COLLECTION_NAVIGATION_OPERATOR, GEN_MODEL_URI, GREATER_THAN_OPERATOR, GREATER_THAN_OR_EQUAL_OPERATOR, ITERATOR_SEPARATOR, LESS_THAN_OPERATOR, LESS_THAN_OR_EQUAL_OPERATOR, LIBRARY_MONIKER_PREFIX, MESSAGE_ANNOTATION_DETAIL_SUFFIX, MONIKER_EXP_CHILD_PREFIX, MONIKER_IF_EXP, MONIKER_INVALID_LITERAL_EXP, MONIKER_LET_EXP, MONIKER_NULL_LITERAL_EXP, MONIKER_OPERATOR_SEPARATOR, MONIKER_OVERFLOW_LIMIT, MONIKER_PART_SEPARATOR, MONIKER_ROOT_EXP, MONIKER_SCOPE_SEPARATOR, MONIKER_STRING_LITERAL_EXP, MONIKER_TUPLE_LITERAL_EXP, MONIKER_UNLIMITED_NATURAL_LITERAL_EXP, NULL_MARKER, NULL_ROOT, OBJECT_NAVIGATION_OPERATOR, OCL_LANGUAGE, OCL_NAME, ORPHANAGE_NAME, ORPHANAGE_PREFIX, ORPHANAGE_URI, OVERFLOW_MARKER, PARAMETER_PREFIX, PARAMETER_SEPARATOR, PARAMETER_SUFFIX, PIVOT_ECORE, PLUGIN_ID, PRECEDENCE_PREFIX, roleNames, TEMPLATE_BINDING_PREFIX, TEMPLATE_BINDING_SEPARATOR, TEMPLATE_BINDING_SUFFIX, TEMPLATE_PARAMETER_PREFIX, TEMPLATE_SIGNATURE_PREFIX, TEMPLATE_SIGNATURE_SEPARATOR, TEMPLATE_SIGNATURE_SUFFIX, TUPLE_SIGNATURE_PART_SEPARATOR, TUPLE_SIGNATURE_PREFIX, TUPLE_SIGNATURE_SUFFIX, TUPLE_SIGNATURE_TYPE_SEPARATOR, UNKNOWN_TYPE_TEXT, UNRESOLVED_PROXY_MARKER, WILDCARD_INDICATOR, WILDCARD_NAME
 
Constructor Summary
UML2Pivot(org.eclipse.emf.ecore.resource.Resource umlResource, MetaModelManager metaModelManager)
           
 
Method Summary
 void addCreated(org.eclipse.emf.ecore.EModelElement umlElement, Element pivotElement)
           
protected  void copyAnnotatedElement(NamedElement pivotElement, org.eclipse.emf.ecore.EModelElement umlElement, java.util.List<org.eclipse.emf.ecore.EAnnotation> excludedAnnotations)
           
protected  void copyModelElement(Element pivotElement, org.eclipse.emf.ecore.EModelElement umlElement)
           
protected  void copyMultiplicityElement(TypedMultiplicityElement pivotElement, org.eclipse.uml2.uml.MultiplicityElement umlMultiplicityElement)
           
protected  void copyNamedElement(NamedElement pivotElement, org.eclipse.uml2.uml.NamedElement umlNamedElement)
           
protected  void copyProperty(Property pivotElement, org.eclipse.uml2.uml.Property umlProperty, java.util.List<org.eclipse.emf.ecore.EAnnotation> excludedAnnotations)
           
protected  void copyTypedElement(TypedMultiplicityElement pivotElement, org.eclipse.uml2.uml.TypedElement umlTypedElement, java.util.List<org.eclipse.emf.ecore.EAnnotation> excludedAnnotations)
           
 void dispose()
           
protected  void error(java.lang.String message)
           
static UML2Pivot getAdapter(org.eclipse.emf.ecore.resource.Resource resource, MetaModelManager metaModelManager)
           
<T extends Element>
T
getCreated(java.lang.Class<T> requiredClass, org.eclipse.emf.ecore.EObject eObject)
           
protected  MetaModelManager getMetaModelManager()
           
 Package getPivotRoot()
           
 Type getPivotType(org.eclipse.emf.ecore.EObject eObject)
           
 org.eclipse.emf.ecore.resource.Resource getResource()
           
 org.eclipse.emf.common.notify.Notifier getTarget()
           
 org.eclipse.emf.common.util.URI getURI()
           
static Element importFromUML(MetaModelManager metaModelManager, java.lang.String alias, org.eclipse.emf.ecore.EObject eObject)
          Convert an (annotated) Ecore object to a pivot element.
static Package importFromUML(MetaModelManager metaModelManager, java.lang.String alias, org.eclipse.emf.ecore.resource.Resource ecoreResource)
          Convert an (annotated) Ecore resource to a Pivot Model.
 org.eclipse.emf.ecore.resource.Resource importObjects(java.util.Collection<org.eclipse.emf.ecore.EObject> ecoreContents, org.eclipse.emf.common.util.URI ecoreURI)
           
static java.lang.String initialize(org.eclipse.emf.ecore.resource.ResourceSet resourceSet)
          Initialize registries to support OCL and UML usage.
 boolean isAdapterFor(MetaModelManager metaModelManager)
           
 boolean isAdapterForType(java.lang.Object type)
           
 void metaModelManagerDisposed(MetaModelManager metaModelManager)
          Respond to disposal of the MetaModelManager by eliminating all further usage.
 void notifyChanged(org.eclipse.emf.common.notify.Notification notification)
           
 void queueReference(org.eclipse.emf.ecore.EModelElement umlElement)
           
protected
<T extends Element>
T
refreshElement(java.lang.Class<T> pivotClass, org.eclipse.emf.ecore.EClass pivotEClass, org.eclipse.uml2.uml.Element umlElement)
           
protected
<T extends NamedElement>
T
refreshNamedElement(java.lang.Class<T> pivotClass, org.eclipse.emf.ecore.EClass pivotEClass, org.eclipse.uml2.uml.NamedElement umlNamedElement)
           
protected  Type resolveDataType(org.eclipse.emf.ecore.EGenericType eGenericType)
           
protected  Type resolveSimpleType(org.eclipse.emf.ecore.EGenericType eGenericType)
           
protected  Type resolveType(org.eclipse.uml2.uml.Type umlType)
           
protected  Type resolveTypeParameter(org.eclipse.emf.ecore.EGenericType eGenericType)
           
protected  Type resolveWildcardType(org.eclipse.emf.ecore.EGenericType eGenericType)
           
protected  void setOriginalMapping(Element pivotElement, org.eclipse.emf.ecore.EModelElement umlElement)
           
 void setTarget(org.eclipse.emf.common.notify.Notifier newTarget)
           
 void unsetTarget(org.eclipse.emf.common.notify.Notifier oldTarget)
           
 
Methods inherited from class org.eclipse.ocl.examples.pivot.utilities.AbstractConversion
basicGet, getEPackage, isId, refreshList, refreshSet
 
Methods inherited from class org.eclipse.emf.ecore.util.EcoreUtil
computeDiagnostic, convertToString, copy, copyAll, create, createFromString, delete, delete, equals, equals, filterDescendants, freeze, generateUUID, generateUUID, getAdapter, getAdapterFactory, getAllContents, getAllContents, getAllContents, getAllContents, getAllContents, getAllProperContents, getAllProperContents, getAllProperContents, getAllProperContents, getAnnotation, getConstraints, getConversionDelegateFactory, getConversionDelegates, getDocumentation, getExistingAdapter, getID, getIdentification, getInvocationDelegateFactory, getInvocationDelegates, getObjectByType, getObjectsByType, getRegisteredAdapter, getRegisteredAdapter, getRootContainer, getRootContainer, getSettingDelegateFactory, getSettingDelegates, getURI, getValidationDelegates, indexOf, isAncestor, isAncestor, isAncestor, isAncestor, isInvariant, isSuppressedVisibility, isSuppressedVisibility, remove, remove, remove, replace, replace, replace, resolve, resolve, resolve, resolveAll, resolveAll, resolveAll, setAnnotation, setConstraints, setConversionDelegates, setDocumentation, setEList, setEList, setID, setInvocationDelegates, setSettingDelegates, setSuppressedVisibility, setSuppressedVisibility, setValidationDelegates, toJavaInstanceTypeName, wrapperClassFor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

umlResource

protected final org.eclipse.emf.ecore.resource.Resource umlResource

pivotRoot

protected Package pivotRoot

declarationPass

protected final UML2PivotDeclarationSwitch declarationPass

referencePass

protected final UML2PivotReferenceSwitch referencePass
Constructor Detail

UML2Pivot

public UML2Pivot(org.eclipse.emf.ecore.resource.Resource umlResource,
                 MetaModelManager metaModelManager)
Method Detail

getAdapter

public static UML2Pivot getAdapter(org.eclipse.emf.ecore.resource.Resource resource,
                                   MetaModelManager metaModelManager)

importFromUML

public static Package importFromUML(MetaModelManager metaModelManager,
                                    java.lang.String alias,
                                    org.eclipse.emf.ecore.resource.Resource ecoreResource)
Convert an (annotated) Ecore resource to a Pivot Model.

Parameters:
alias -
ecoreResource - the annotated Ecore resource
Returns:
the Pivot root package

initialize

public static java.lang.String initialize(org.eclipse.emf.ecore.resource.ResourceSet resourceSet)
Initialize registries to support OCL and UML usage. This method is intended for initialization of standalone behaviors for which plugin extension registrations have not been applied.

A null resourceSet may be provided to initialize the global package registry and global URI mapping registry.

A non-null resourceSet may be provided to identify specific package and global URI mapping registries.

The locations of the org.eclipse.ocl.uml and org.eclipse.uml2.uml.resources plugins must be identified by the correspondingly named Java properties. A standalone application command line might do this by incorporating

-Dorg.eclipse.ocl.uml=C:/Eclipse/plugins/org.eclipse.ocl.uml
-Dorg.eclipse.uml2.uml.resources=C:/Eclipse/plugins/org.eclipse.uml2.uml.resources

This method is used to configure the ResourceSet used to load the OCL Standard Library.

Parameters:
resourceSet - to be initialized or null for global initialization
Returns:
a failure reason, null if successful
Since:
3.0

importFromUML

public static Element importFromUML(MetaModelManager metaModelManager,
                                    java.lang.String alias,
                                    org.eclipse.emf.ecore.EObject eObject)
Convert an (annotated) Ecore object to a pivot element.

Parameters:
eObject - the annotated Ecore object
Returns:
the pivot element

addCreated

public void addCreated(org.eclipse.emf.ecore.EModelElement umlElement,
                       Element pivotElement)

copyAnnotatedElement

protected void copyAnnotatedElement(NamedElement pivotElement,
                                    org.eclipse.emf.ecore.EModelElement umlElement,
                                    java.util.List<org.eclipse.emf.ecore.EAnnotation> excludedAnnotations)

copyModelElement

protected void copyModelElement(Element pivotElement,
                                org.eclipse.emf.ecore.EModelElement umlElement)

copyMultiplicityElement

protected void copyMultiplicityElement(TypedMultiplicityElement pivotElement,
                                       org.eclipse.uml2.uml.MultiplicityElement umlMultiplicityElement)

copyNamedElement

protected void copyNamedElement(NamedElement pivotElement,
                                org.eclipse.uml2.uml.NamedElement umlNamedElement)

copyProperty

protected void copyProperty(Property pivotElement,
                            org.eclipse.uml2.uml.Property umlProperty,
                            java.util.List<org.eclipse.emf.ecore.EAnnotation> excludedAnnotations)

copyTypedElement

protected void copyTypedElement(TypedMultiplicityElement pivotElement,
                                org.eclipse.uml2.uml.TypedElement umlTypedElement,
                                java.util.List<org.eclipse.emf.ecore.EAnnotation> excludedAnnotations)

dispose

public void dispose()

error

protected void error(java.lang.String message)

getCreated

public <T extends Element> T getCreated(java.lang.Class<T> requiredClass,
                                        org.eclipse.emf.ecore.EObject eObject)

getMetaModelManager

protected MetaModelManager getMetaModelManager()

getPivotType

public Type getPivotType(org.eclipse.emf.ecore.EObject eObject)

getPivotRoot

public Package getPivotRoot()

getResource

public org.eclipse.emf.ecore.resource.Resource getResource()
Specified by:
getResource in interface External2Pivot

getTarget

public org.eclipse.emf.common.notify.Notifier getTarget()
Specified by:
getTarget in interface org.eclipse.emf.common.notify.Adapter

getURI

public org.eclipse.emf.common.util.URI getURI()
Specified by:
getURI in interface External2Pivot

importObjects

public org.eclipse.emf.ecore.resource.Resource importObjects(java.util.Collection<org.eclipse.emf.ecore.EObject> ecoreContents,
                                                             org.eclipse.emf.common.util.URI ecoreURI)

isAdapterFor

public boolean isAdapterFor(MetaModelManager metaModelManager)
Specified by:
isAdapterFor in interface MetaModelManagedAdapter

isAdapterForType

public boolean isAdapterForType(java.lang.Object type)
Specified by:
isAdapterForType in interface org.eclipse.emf.common.notify.Adapter

metaModelManagerDisposed

public void metaModelManagerDisposed(MetaModelManager metaModelManager)
Description copied from interface: MetaModelManagerListener
Respond to disposal of the MetaModelManager by eliminating all further usage.

Specified by:
metaModelManagerDisposed in interface MetaModelManagerListener

notifyChanged

public void notifyChanged(org.eclipse.emf.common.notify.Notification notification)
Specified by:
notifyChanged in interface org.eclipse.emf.common.notify.Adapter

queueReference

public void queueReference(org.eclipse.emf.ecore.EModelElement umlElement)

refreshElement

protected <T extends Element> T refreshElement(java.lang.Class<T> pivotClass,
                                               org.eclipse.emf.ecore.EClass pivotEClass,
                                               org.eclipse.uml2.uml.Element umlElement)

refreshNamedElement

protected <T extends NamedElement> T refreshNamedElement(java.lang.Class<T> pivotClass,
                                                         org.eclipse.emf.ecore.EClass pivotEClass,
                                                         org.eclipse.uml2.uml.NamedElement umlNamedElement)

resolveDataType

protected Type resolveDataType(org.eclipse.emf.ecore.EGenericType eGenericType)

resolveSimpleType

protected Type resolveSimpleType(org.eclipse.emf.ecore.EGenericType eGenericType)

resolveType

protected Type resolveType(org.eclipse.uml2.uml.Type umlType)

resolveTypeParameter

protected Type resolveTypeParameter(org.eclipse.emf.ecore.EGenericType eGenericType)

resolveWildcardType

protected Type resolveWildcardType(org.eclipse.emf.ecore.EGenericType eGenericType)

setOriginalMapping

protected void setOriginalMapping(Element pivotElement,
                                  org.eclipse.emf.ecore.EModelElement umlElement)

setTarget

public void setTarget(org.eclipse.emf.common.notify.Notifier newTarget)
Specified by:
setTarget in interface org.eclipse.emf.common.notify.Adapter

unsetTarget

public void unsetTarget(org.eclipse.emf.common.notify.Notifier oldTarget)
Specified by:
unsetTarget in interface org.eclipse.emf.common.notify.Adapter.Internal