Class AnyToAnyModelTransformation
- java.lang.Object
 - 
- com.nomagic.magicdraw.modeltransformations.impl.any_to_any.AnyToAnyModelTransformation
 
 
- 
- All Implemented Interfaces:
 ModelTransformation
@OpenApiAll public class AnyToAnyModelTransformation extends java.lang.Object implements ModelTransformation
 
- 
- 
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<Element,java.util.Collection<Element>>mTransformationMap 
- 
Constructor Summary
Constructors Constructor Description AnyToAnyModelTransformation() 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidafterTransformation()Method invoked after all custom transformations.protected voidchangeDiagramType(DiagramPresentationElement dpe, DiagramType createDiagramType)protected java.util.List<Element>collectInnerElements(java.util.Collection<Element> objects, boolean update)protected ElementcopyElementInto(Element source, Element parent)Copies and pastes given element.protected com.nomagic.magicdraw.commands.MacroCommandcopyElements(java.util.List<Element> objects)Copies elementsprotected java.util.List<? extends java.lang.Class>createDefaultDoNotCopyTypes()protected java.util.List<? extends java.lang.Class>createDefaultDoNotReconnectTypes()protected java.util.List<java.lang.String>createDefaultDoNotSettableProperties()protected java.util.List<java.lang.Class>createDefaultMappedTypes()protected com.nomagic.magicdraw.modeltransformations.impl.any_to_any.ElementUpdatercreateElementUpdater()protected voidcustomTransformationForElement(Element original, java.util.Collection<Element> mapped)Custom transformations should override this method to add additional functionality.protected voidcustomTransformations()java.util.Collection<Element>getMappedElements(Element original)Returns transformed elements for given original element.java.util.ListgetNotSettableProperties()protected java.util.Map<BaseElement,BaseElement>getOneToOneMap()protected java.util.Collection<Element>getOriginalElement(Element mapped)Returns original elements which are mapped to given mapped element.<T extends Element>
java.util.Collection<T>getOriginalElement(Element mapped, java.lang.Class<T> type)Returns original elements which are mapped to given mapped element.protected java.util.Collection<Element>getOriginalElements()protected ProgressStatusgetProgressStatus()PropertyManagergetPropertyManager()protected java.util.Collection<Element>getRemovedByCustomTransformation()<T extends Element>
TgetTarget(Element original, java.lang.Class<T> type)Returns transformed element that's transformation source is 'original' element and it's type is specified in 'type'PackagegetTransformationsPackage()protected com.nomagic.magicdraw.modeltransformations.impl.any_to_any.TypeMappergetTypeMapper()voidinvokeCustomTransformation(Element original)Invokes custom transformation for element.voidinvokeCustomTransformation(java.util.Collection<? extends Element> original)Invokes custom transformation for collection.protected booleanisAlreadyVisited(Element element)protected booleanisElementCopied(Element element)protected booleanisMappableElement(Element element)protected booleanisSkipElement(Element element)Check if element should be skippedbooleanisTransformationInPlace()booleanisTypeMapSet()protected voidmarkAsAlreadyVisited(Element element)protected voidprocessMappedElements(Element original, java.util.Collection<Element> mappedElements, java.util.Collection<Element> originalMappedElements)protected voidprocessMappingResult(Element original, java.util.Collection<Element> mappedElements, java.util.Collection<Element> originalMappedElements)voidsetTask(Task task)Sets task for transformation.protected voidsetTransformationMapValue(Element original, java.util.Collection<Element> mappedElements)protected voidsortOriginalElements(java.util.List<Element> objects)Sorts elements before invoking custom transformationPackagetransform(java.util.Collection selectedObjects, ModelTransformationInfo info, TypeMapProfile typeMap, PropertyManager propertyManager, Package destination)Performs transformation on specific set of objectsprotected com.nomagic.magicdraw.commands.MacroCommandupdateDiagrams()Updates diagram with newly added elements during transformation update phase.voidupdateTransform(Package transformationPackage, TypeMapProfile typeMap, PropertyManager propertyManager, boolean syncDestination)Updates transformation on specific set of objects 
 - 
 
- 
- 
Method Detail
- 
createDefaultDoNotCopyTypes
protected java.util.List<? extends java.lang.Class> createDefaultDoNotCopyTypes()
 
- 
createDefaultDoNotReconnectTypes
protected java.util.List<? extends java.lang.Class> createDefaultDoNotReconnectTypes()
 
- 
createDefaultDoNotSettableProperties
protected java.util.List<java.lang.String> createDefaultDoNotSettableProperties()
 
- 
createDefaultMappedTypes
protected java.util.List<java.lang.Class> createDefaultMappedTypes()
 
- 
transform
@CheckForNull public Package transform(@CheckForNull java.util.Collection selectedObjects, @CheckForNull ModelTransformationInfo info, TypeMapProfile typeMap, PropertyManager propertyManager, Package destination) throws ReadOnlyElementException
Description copied from interface:ModelTransformationPerforms transformation on specific set of objects- Specified by:
 transformin interfaceModelTransformation- Parameters:
 selectedObjects- set of objects to transforminfo- model transformation infotypeMap- type map profile to use for transformation, null for nonepropertyManager- transformation propertiesdestination- destination model packages, null for transformation in place- Returns:
 - transformation model package (where transformation links are stored)
 - Throws:
 ReadOnlyElementException- in case target model elements are read-only
 
- 
afterTransformation
protected void afterTransformation() throws ReadOnlyElementExceptionMethod invoked after all custom transformations.- Throws:
 ReadOnlyElementException- in case of error
 
- 
customTransformations
protected void customTransformations()
 
- 
isSkipElement
protected boolean isSkipElement(Element element)
Check if element should be skipped- Parameters:
 element- element- Returns:
 - true if element can not be processed by custom transformation
 
 
- 
invokeCustomTransformation
public void invokeCustomTransformation(java.util.Collection<? extends Element> original)
Invokes custom transformation for collection.- Parameters:
 original- original elements- See Also:
 invokeCustomTransformation(Element)
 
- 
invokeCustomTransformation
public void invokeCustomTransformation(Element original)
Invokes custom transformation for element. If custom transformation was already invoked, this method does nothing.- Parameters:
 original- original element for which custom transformation is invoked.
 
- 
processMappingResult
protected void processMappingResult(Element original, java.util.Collection<Element> mappedElements, java.util.Collection<Element> originalMappedElements)
 
- 
processMappedElements
protected void processMappedElements(Element original, java.util.Collection<Element> mappedElements, java.util.Collection<Element> originalMappedElements)
 
- 
setTransformationMapValue
protected void setTransformationMapValue(Element original, java.util.Collection<Element> mappedElements)
 
- 
customTransformationForElement
protected void customTransformationForElement(Element original, java.util.Collection<Element> mapped) throws ReadOnlyElementException
Custom transformations should override this method to add additional functionality.- Parameters:
 original- original element.mapped- collection of current mapped elements. Custom transformation can modify this collection. In case custom transformation needs to remove current mapping, it should remove element from this collection. In case it needs to map more elements it should add new elements to this collection.- Throws:
 ReadOnlyElementException- in case of error
 
- 
getMappedElements
public java.util.Collection<Element> getMappedElements(Element original)
Returns transformed elements for given original element.- Parameters:
 original- original element.- Returns:
 - mapped elements if original was mapped; empty collection if original was mapped to nothing;
 
 
- 
updateTransform
public void updateTransform(Package transformationPackage, TypeMapProfile typeMap, PropertyManager propertyManager, boolean syncDestination) throws ReadOnlyElementException
Description copied from interface:ModelTransformationUpdates transformation on specific set of objects- Specified by:
 updateTransformin interfaceModelTransformation- Parameters:
 transformationPackage- package containing transformation linkstypeMap- type map profile to use for transformation, null for nonepropertyManager- transformation propertiessyncDestination- true for destination overwrite- Throws:
 ReadOnlyElementException- in case target model elements are read-only
 
- 
getOriginalElements
protected java.util.Collection<Element> getOriginalElements()
- Returns:
 - all original elements.
 
 
- 
getOriginalElement
public <T extends Element> java.util.Collection<T> getOriginalElement(Element mapped, java.lang.Class<T> type)
Returns original elements which are mapped to given mapped element.- Parameters:
 mapped- original elements that are mapped to this element will be returnedtype- only this type of elements will be returned.- Returns:
 - collection of original elements. If there is no original elements returns empty list.
 
 
- 
getOriginalElement
protected java.util.Collection<Element> getOriginalElement(Element mapped)
Returns original elements which are mapped to given mapped element.- Parameters:
 mapped- mapped element- Returns:
 - collection of original elements. If there is no original elements returns empty list.
 
 
- 
copyElements
protected com.nomagic.magicdraw.commands.MacroCommand copyElements(java.util.List<Element> objects)
Copies elements- Parameters:
 objects- objects- Returns:
 - command for copying
 
 
- 
createElementUpdater
protected com.nomagic.magicdraw.modeltransformations.impl.any_to_any.ElementUpdater createElementUpdater()
- Returns:
 - element updater.
 
 
- 
getOneToOneMap
protected java.util.Map<BaseElement,BaseElement> getOneToOneMap()
- Returns:
 - map where one key is mapped only to one element
 
 
- 
getTypeMapper
protected com.nomagic.magicdraw.modeltransformations.impl.any_to_any.TypeMapper getTypeMapper()
- Returns:
 - type mapper.
 
 
- 
getTarget
@CheckForNull public <T extends Element> T getTarget(Element original, java.lang.Class<T> type)
Returns transformed element that's transformation source is 'original' element and it's type is specified in 'type'- Parameters:
 original- source model element.type- type of returned element.- Returns:
 - transformed element. If no element found - null is returned.
 
 
- 
updateDiagrams
protected com.nomagic.magicdraw.commands.MacroCommand updateDiagrams()
Updates diagram with newly added elements during transformation update phase.- Returns:
 - update macro command
 
 
- 
sortOriginalElements
protected void sortOriginalElements(java.util.List<Element> objects)
Sorts elements before invoking custom transformation- Parameters:
 objects- objects
 
- 
collectInnerElements
protected java.util.List<Element> collectInnerElements(java.util.Collection<Element> objects, boolean update)
 
- 
isMappableElement
protected boolean isMappableElement(Element element)
- Parameters:
 element- element to check.- Returns:
 - true if transformation can be applied for this element.
 
 
- 
getTransformationsPackage
public Package getTransformationsPackage()
- Returns:
 - package where transformation information is stored
 
 
- 
isTransformationInPlace
public boolean isTransformationInPlace()
- Returns:
 - true if transformation is in place (not copying)
 
 
- 
getPropertyManager
public PropertyManager getPropertyManager()
- Returns:
 - property manager for additional transformation properties
 
 
- 
copyElementInto
protected Element copyElementInto(Element source, Element parent)
Copies and pastes given element.- Parameters:
 source- element to copy.parent- parent where place copied element.- Returns:
 - copied element.
 
 
- 
setTask
public void setTask(Task task)
Description copied from interface:ModelTransformationSets task for transformation. Transformation can use Task for accesing progress status and etc.- Specified by:
 setTaskin interfaceModelTransformation- Parameters:
 task- transformation task
 
- 
getProgressStatus
protected ProgressStatus getProgressStatus()
 
- 
isElementCopied
protected boolean isElementCopied(Element element)
 
- 
isTypeMapSet
public boolean isTypeMapSet()
 
- 
getNotSettableProperties
public java.util.List getNotSettableProperties()
 
- 
changeDiagramType
protected void changeDiagramType(DiagramPresentationElement dpe, DiagramType createDiagramType)
 
- 
getRemovedByCustomTransformation
protected java.util.Collection<Element> getRemovedByCustomTransformation()
 
- 
markAsAlreadyVisited
protected void markAsAlreadyVisited(Element element)
 
- 
isAlreadyVisited
protected boolean isAlreadyVisited(Element element)
 
 - 
 
 -