Class AnyToAnyModelTransformation

    • Field Detail

      • mTransformationMap

        protected java.util.Map<Element,​java.util.Collection<Element>> mTransformationMap
    • Constructor Detail

      • AnyToAnyModelTransformation

        public AnyToAnyModelTransformation()
    • 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: 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
      • 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: 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 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 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 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: 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
      • isElementCopied

        protected boolean isElementCopied​(Element element)
      • isTypeMapSet

        public boolean isTypeMapSet()
      • getNotSettableProperties

        public java.util.List getNotSettableProperties()
      • getRemovedByCustomTransformation

        protected java.util.Collection<Element> getRemovedByCustomTransformation()
      • markAsAlreadyVisited

        protected void markAsAlreadyVisited​(Element element)
      • isAlreadyVisited

        protected boolean isAlreadyVisited​(Element element)