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, External2Pivot, PivotConstants

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  TypeManager typeManager
           
protected  org.eclipse.emf.ecore.resource.Resource umlResource
           
 
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.utilities.PivotConstants
ACCUMULATOR_SEPARATOR, ANNOTATION_QUOTE, BINDINGS_PREFIX, COLLECTION_NAVIGATION_OPERATOR, GREATER_THAN_OPERATOR, GREATER_THAN_OR_EQUAL_OPERATOR, ITERATOR_SEPARATOR, LESS_THAN_OPERATOR, LESS_THAN_OR_EQUAL_OPERATOR, LIBRARY_MONIKER_PREFIX, 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, OCL_SELF_NAME, ORPHANAGE_NAME, ORPHANAGE_PREFIX, ORPHANAGE_URI, OVERFLOW_MARKER, PARAMETER_PREFIX, PARAMETER_SEPARATOR, PARAMETER_SUFFIX, 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, TypeManager typeManager)
           
 
Method Summary
 void addCreated(org.eclipse.emf.ecore.EModelElement umlElement, Element pivotElement)
           
 java.util.Map<java.lang.String,MonikeredElement> computeMoniker2PivotMap()
           
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)
           
protected  void error(java.lang.String message)
           
static UML2Pivot getAdapter(org.eclipse.emf.ecore.resource.Resource resource, TypeManager typeManager)
           
<T extends Element>
T
getCreated(java.lang.Class<T> requiredClass, org.eclipse.emf.ecore.EObject eObject)
           
 Package getPivotRoot()
           
 Type getPivotType(org.eclipse.emf.ecore.EObject eObject)
           
 org.eclipse.emf.ecore.resource.Resource getResource()
           
 org.eclipse.emf.common.notify.Notifier getTarget()
           
protected  TypeManager getTypeManager()
           
 org.eclipse.emf.common.util.URI getURI()
           
static Element importFromUML(TypeManager typeManager, java.lang.String alias, org.eclipse.emf.ecore.EObject eObject)
          Convert an (annotated) Ecore object to a pivot element.
static Package importFromUML(TypeManager typeManager, 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 isAdapterForType(java.lang.Object type)
           
 void notifyChanged(org.eclipse.emf.common.notify.Notification notification)
           
 void queueReference(org.eclipse.emf.ecore.EModelElement umlElement)
           
protected
<T extends MonikeredElement>
T
refreshMonikeredElement(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)
           
 
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, filterDescendants, freeze, generateUUID, generateUUID, getAdapter, getAdapterFactory, getAllContents, getAllContents, getAllContents, getAllContents, getAllContents, getAllProperContents, getAllProperContents, getAllProperContents, getAllProperContents, getAnnotation, getConstraints, 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, 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

typeManager

protected final TypeManager typeManager

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,
                 TypeManager typeManager)
Method Detail

getAdapter

public static UML2Pivot getAdapter(org.eclipse.emf.ecore.resource.Resource resource,
                                   TypeManager typeManager)

importFromUML

public static Package importFromUML(TypeManager typeManager,
                                    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(TypeManager typeManager,
                                    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)

computeMoniker2PivotMap

public java.util.Map<java.lang.String,MonikeredElement> computeMoniker2PivotMap()

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)

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)

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

getTypeManager

protected TypeManager getTypeManager()

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)

isAdapterForType

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

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)

refreshMonikeredElement

protected <T extends MonikeredElement> T refreshMonikeredElement(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