Class AnyToAnyModelTransformation

java.lang.Object
com.nomagic.magicdraw.modeltransformations.impl.any_to_any.AnyToAnyModelTransformation
All Implemented Interfaces:
ModelTransformation

@OpenApiAll public class AnyToAnyModelTransformation extends Object implements ModelTransformation
  • Field Details

  • Constructor Details

    • AnyToAnyModelTransformation

      public AnyToAnyModelTransformation()
  • Method Details

    • createDefaultDoNotCopyTypes

      protected List<? extends Class> createDefaultDoNotCopyTypes()
    • createDefaultDoNotReconnectTypes

      protected List<? extends Class> createDefaultDoNotReconnectTypes()
    • createDefaultDoNotSettableProperties

      protected List<String> createDefaultDoNotSettableProperties()
    • createDefaultMappedTypes

      protected List<Class> createDefaultMappedTypes()
    • transform

      @CheckForNull public Package transform(@CheckForNull Collection selectedObjects, @CheckForNull ModelTransformationInfo info, TypeMapProfile typeMap, PropertyManager propertyManager, Package destination) throws ReadOnlyElementException
      Description copied from interface: ModelTransformation
      Performs transformation on specific set of objects
      Specified by:
      transform in interface ModelTransformation
      Parameters:
      selectedObjects - set of objects to transform
      info - model transformation info
      typeMap - type map profile to use for transformation, null for none
      propertyManager - transformation properties
      destination - 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 ReadOnlyElementException
      Method 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(Collection<? extends Element> original)
      Invokes custom transformation for collection.
      Parameters:
      original - original elements
      See Also:
    • 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, Collection<Element> mappedElements, Collection<Element> originalMappedElements)
    • processMappedElements

      protected void processMappedElements(Element original, Collection<Element> mappedElements, Collection<Element> originalMappedElements)
    • setTransformationMapValue

      protected void setTransformationMapValue(Element original, Collection<Element> mappedElements)
    • customTransformationForElement

      protected void customTransformationForElement(Element original, 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 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: ModelTransformation
      Updates transformation on specific set of objects
      Specified by:
      updateTransform in interface ModelTransformation
      Parameters:
      transformationPackage - package containing transformation links
      typeMap - type map profile to use for transformation, null for none
      propertyManager - transformation properties
      syncDestination - true for destination overwrite
      Throws:
      ReadOnlyElementException - in case target model elements are read-only
    • getOriginalElements

      protected Collection<Element> getOriginalElements()
      Returns:
      all original elements.
    • getOriginalElement

      public <T extends Element> Collection<T> getOriginalElement(Element mapped, 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 returned
      type - only this type of elements will be returned.
      Returns:
      collection of original elements. If there is no original elements returns empty list.
    • getOriginalElement

      protected 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(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 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, 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(List<Element> objects)
      Sorts elements before invoking custom transformation
      Parameters:
      objects - objects
    • collectInnerElements

      protected List<Element> collectInnerElements(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: ModelTransformation
      Sets task for transformation. Transformation can use Task for accesing progress status and etc.
      Specified by:
      setTask in interface ModelTransformation
      Parameters:
      task - transformation task
    • getProgressStatus

      protected ProgressStatus getProgressStatus()
    • isElementCopied

      protected boolean isElementCopied(Element element)
    • isTypeMapSet

      public boolean isTypeMapSet()
    • getNotSettableProperties

      public List getNotSettableProperties()
    • changeDiagramType

      protected void changeDiagramType(DiagramPresentationElement dpe, DiagramType createDiagramType)
    • getRemovedByCustomTransformation

      protected Collection<Element> getRemovedByCustomTransformation()
    • markAsAlreadyVisited

      protected void markAsAlreadyVisited(Element element)
    • isAlreadyVisited

      protected boolean isAlreadyVisited(Element element)