Class ExportTool2

  • All Implemented Interfaces:
    com.nomagic.magicreport.engine.ITool, com.nomagic.magicreport.IVariable, java.io.Serializable, java.lang.Cloneable

    @OpenApiAll
    public class ExportTool2
    extends com.nomagic.magicreport.engine.ConcurrentTool
    This class allow report to export element in other file format including tree folder.
    Since:
    Mar 14, 2012
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  ExportTool2.ElementComparator<T>  
      private static class  ExportTool2.NameComparator<T>  
      private static class  ExportTool2.NodeComparator<T>  
      private static class  ExportTool2.SymbolElement  
      • Nested classes/interfaces inherited from class com.nomagic.magicreport.engine.ConcurrentTool

        com.nomagic.magicreport.engine.ConcurrentTool.ConsumeObject
      • Nested classes/interfaces inherited from interface com.nomagic.magicreport.engine.ITool

        com.nomagic.magicreport.engine.ITool.HTMLString, com.nomagic.magicreport.engine.ITool.RetainedString, com.nomagic.magicreport.engine.ITool.Void
    • Constructor Summary

      Constructors 
      Constructor Description
      ExportTool2()
      Create an export tool.
      ExportTool2​(com.nomagic.magicreport.engine.ITemplateEngine engine, java.util.Observer observer)
      Create an export tool with observer.
      ExportTool2​(java.util.Observer observer)
      Create an export tool with observer.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void appendPropertyCollection​(java.util.Collection<?> propertyCollection, java.util.Collection<Package> packageScope, org.w3c.dom.Document document, java.util.List<org.w3c.dom.Element> childList, org.w3c.dom.Element fieldElement, boolean exportResources)  
      private int calculatePercentage​(long current, long total)  
      private void collectAnchorShapeBounds​(javax.swing.text.View view, java.awt.Shape container, java.util.List<ExportTool2.SymbolElement> shapeList, javax.swing.text.Element element, com.nomagic.magicdraw.uml.symbols.DiagramObjectViewContainer diagramContainer)  
      private java.util.List<java.lang.String> collectElementPropertiesNames​(Element element, java.lang.String mode)
      Creates and collects groups nodes user friendly names that appears in element's specification dialog tree at specific view mode (Standard/Expert/All)
      private void collectElements​(boolean exportResources)  
      private void collectElements​(Project project, Element exportingElement, boolean exportResources)  
      void consume​(com.nomagic.magicreport.engine.ConcurrentTool.ConsumeObject consumeObject)
      Consume a object.
      private java.lang.String convertModelLinkToFileURL​(Element propertyValue)  
      protected org.w3c.dom.Element createAndExportElement​(org.w3c.dom.Document document, Element exportingElement, boolean exportResources, boolean exportLinkedFile, com.nomagic.magicdraw.ui.ElementFilter filter)
      Create XML element represents the exportingElement and export the element into file.
      protected org.w3c.dom.Element createAndExportElement​(org.w3c.dom.Document document, Element exportingElement, boolean exportResources, boolean exportLinkedFile, com.nomagic.magicdraw.ui.ElementFilter filter, boolean isSmart)
      Create XML element represents the exportingElement and export the element into file.
      protected org.w3c.dom.Element createAndExportSmartElement​(org.w3c.dom.Document document, Element exportingElement, boolean exportResources, boolean exportLinkedFile, com.nomagic.magicdraw.ui.ElementFilter filter)
      Create XML element represents the exportingElement and export the element into file.
      private void createAppearInDiagram​(org.w3c.dom.Document document, org.w3c.dom.Element appearsIn, Element element)  
      private java.lang.String createDiagramTypeName​(java.lang.String name)
      Append 's' after diagram type name.
      private org.w3c.dom.Element createElement​(org.w3c.dom.Document document, Element exportingElement, boolean exportResources)  
      private org.w3c.dom.Element createElement​(org.w3c.dom.Document document, java.lang.String elementName, Element exportingElement, boolean exportResources)  
      private com.nomagic.magicdraw.ui.ElementFilter createElementFilter​(Project project)  
      private org.w3c.dom.Element createElementForTree​(org.w3c.dom.Document document, Element exportingElement, boolean exportResources, com.nomagic.magicdraw.ui.ElementFilter filter)
      Create XML element for element which is used to create tree.
      private org.w3c.dom.Element createElementForTree​(org.w3c.dom.Document document, Element exportingElement, boolean exportResources, com.nomagic.magicdraw.ui.ElementFilter filter, boolean isSmart)
      Create XML element for element which is used to create tree.
      private java.lang.String createHexaID​(java.lang.String elementID)  
      private com.nomagic.magicreport.Image createImage​(Element element, PresentationElement presentationElement, java.util.Properties properties, int imageType)
      Create SVG file.
      private java.io.File createOutputByID​(java.lang.String prefix, java.lang.String elementID, java.lang.String subfix, boolean forceRenew)  
      private java.io.File createOutputFile​(java.lang.String filename)  
      private java.io.File createOutputFromDefault​(java.lang.String filename, boolean forceRenew)  
      private java.lang.String createReferneceDiagramType​(java.lang.String name)  
      private java.io.File createResourcesDir()
      Create a resource directory.
      protected java.io.File createResourcesDir​(java.lang.String resourcesLocation)
      Create a resource directory.
      private org.w3c.dom.Element createSmartElementForTree​(org.w3c.dom.Document document, Element exportingElement, boolean exportResources, com.nomagic.magicdraw.ui.ElementFilter filter)
      Create XML element for element which is used to create tree.
      void destroy()
      Called by the engine to inform this tool is no longer use and that it should destroy any resources that it has allocated.
      private void ensureParentDirExists​(java.io.File parentFile)  
      java.lang.String exportAll​(boolean exportResources, boolean exportLinkedFile)
      Export current opened project into file.
      protected java.lang.String exportCustomImageHolder​(BaseElement exportingElement)
      Export the image for the element.
      private void exportDiagram​(Diagram diagram, Project project, org.w3c.dom.Document document, org.w3c.dom.Element xmlElement, com.nomagic.magicdraw.ui.ElementFilter filter, boolean exportResources, java.util.List<org.w3c.dom.Element> nodeList, boolean exportLinkedFile)
      Export area mapping of elements in the diagram.
      private void exportElement​(Element exportingElement, boolean exportResources, boolean exportLinkedFile, com.nomagic.magicdraw.ui.ElementFilter filter, boolean isSmart)
      Export element to XML file.
      com.nomagic.magicreport.engine.ITool.Void exportElement​(java.io.File exportingFile, Element exportingElement, boolean exportResources)
      Export element to XML file.
      com.nomagic.magicreport.engine.ITool.Void exportElement​(java.io.File exportingFile, Element exportingElement, boolean exportResources, boolean exportLinkedFile)
      Export element to XML file.
      com.nomagic.magicreport.engine.ITool.Void exportElement​(java.io.File exportingFile, Element exportingElement, boolean exportResources, boolean exportLinkedFile, com.nomagic.magicdraw.ui.ElementFilter filter)  
      private void exportElement​(org.w3c.dom.Element parentElement, Element exportingElement, java.util.Collection<Package> packageScope, boolean exportResources, boolean exportLinkedFile, com.nomagic.magicdraw.ui.ElementFilter filter)  
      private void exportElement​(org.w3c.dom.Element parentElement, Element exportingElement, java.util.Collection<Package> packageScope, boolean exportResources, boolean exportLinkedFile, com.nomagic.magicdraw.ui.ElementFilter filter, boolean isSmart)  
      private void exportElementForDiagramTree()  
      private void exportElementForDiagramTypeTree​(java.util.Map<java.lang.String,​java.util.List<Diagram>> diagramTypeMap)  
      private void exportElementForRootDiagramTree​(java.util.Map<java.lang.String,​java.util.List<Diagram>> diagramTypeMap)  
      com.nomagic.magicreport.engine.ITool.Void exportElementForTree​(java.io.File exportingNodeFile, Element exportingElement, boolean exportResources, com.nomagic.magicdraw.ui.ElementFilter filter)
      Export element to XML file which is used for create tree.
      protected java.lang.String exportIcon​(BaseElement exportingElement)
      Export the icon for element.
      private java.lang.String exportIconForHTMLDocument​(Project project, java.lang.String text)
      For html, it may contain some attributes that refer to element icon.
      Ex.
      private org.w3c.dom.Element exportImageMap​(org.w3c.dom.Document document, DiagramPresentationElement diagramPresentation, boolean exportLinkedFile, com.nomagic.magicdraw.ui.ElementFilter filter)  
      private void exportRootTreeAndProfile​(org.w3c.dom.Element rootElement, org.w3c.dom.Document document, java.lang.String resourcesLocation, Package dataModel, Project project, java.util.Collection<Package> packageScope, boolean exportResources, boolean exportLinkedFile, com.nomagic.magicdraw.ui.ElementFilter filter)  
      private void exportSmartElement​(org.w3c.dom.Element parentElement, Element exportingElement, java.util.Collection<Package> packageScope, boolean exportResources, boolean exportLinkedFile, com.nomagic.magicdraw.ui.ElementFilter filter)  
      private java.lang.String formatObject​(java.lang.Object object)  
      private java.lang.String getBlankField()  
      private java.util.List<ExportTool2.SymbolElement> getContentShapeAnchorBounds​(com.nomagic.magicdraw.uml.symbols.shapes.TextObject textObject, com.nomagic.magicdraw.uml.symbols.DiagramObjectViewContainer diagramContainer)
      Collect all anchor element from content shape.
      private java.lang.String getElementPropertyString​(Element exportingElement, java.lang.String propertyName)  
      private java.util.Collection<Element> getElementScope()  
      protected java.lang.String getElementType​(Element element)
      Return String representing element type.
      private boolean getExportConfig​(java.lang.String config)  
      private java.lang.String getFormattedNumber​(long num)  
      private com.nomagic.magicreport.format.HTMLFormatter getHTMLFormatter()  
      static java.lang.String getHumanName​(java.lang.String propertyName, java.util.Map<java.lang.String,​java.lang.String> nameMap)
      Get human name of given property name.
      private java.lang.String getModeString​(java.util.List<java.lang.String>[] propertiesModes, java.lang.String propertyName)  
      private java.util.Collection<Package> getPackageScope()  
      protected java.lang.String getResourcesLocation()
      Return location of resources directory.
      protected void handleIOException​(java.lang.Exception e)  
      private boolean hasActiveHyperlink​(Element exportingElement)  
      private boolean hasChildElement​(org.w3c.dom.Document document, Element exportingElement, com.nomagic.magicdraw.ui.ElementFilter filter)  
      private void increaseProgressBar​(Element exportingElement, java.lang.String id, java.lang.String name, java.lang.String text)  
      private void initialScopeAndVariable()  
      private void initialScopeAndVariable​(boolean alwaysInit)  
      protected boolean isCancel()  
      private boolean isCreateSpecificationIcon​(Element exportingElement)  
      private static boolean isExportableElement​(Element element)
      Fixed https://jira.nomagic.com/browse/MGRP-3170s 1) Applied Stereotype Instances and Slots that are tagged values should not be exported, since they are not part of actual model 2) Documentation comments should not be exported in a separate file - it is enough to print info in its owner 3) Should not export not user-created ValueSpecifications, like ones that are created when setting multiplicity property value
      private boolean isExportableSpecElement​(Element element)
      Check element that can be created as xml file for specification panel
      private boolean isExportableTreeElement​(Element element)
      Check element that can be created as xml file for containment tree
      private boolean isHiddenElement​(Element exportingElement, com.nomagic.magicdraw.ui.ElementFilter filter)  
      private boolean isHiddenScope​(Package testPackage)  
      private boolean isInElementScope​(java.util.Collection<Element> elementScope, Element element)  
      private boolean isInPackageScope​(java.util.Collection<Package> packageScope, Element element)  
      private void setModeString​(org.w3c.dom.Element xmlElement, java.util.List<java.lang.String>[] propertiesModes, java.lang.String propertyName)  
      void setRecursive​(boolean isRecursive)  
      • Methods inherited from class com.nomagic.magicreport.engine.ConcurrentTool

        isNoSpaceException, isRunning, offer
      • Methods inherited from class com.nomagic.magicreport.engine.Tool

        clone, getContext, getProperties, getProperty, getProperty, notifyObservers, setContext, setProperties
      • Methods inherited from class java.util.Observable

        addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, setChanged
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • CONTEXT_NAME

        public static final java.lang.String CONTEXT_NAME
        Contains a context name.
        See Also:
        Constant Field Values
      • log

        private static final org.apache.log4j.Logger log
      • EXPORT_ALL_ELEMENT

        private static final java.lang.String EXPORT_ALL_ELEMENT
        export all elements. true to export all xml file for containment tree and specification panel.
        See Also:
        Constant Field Values
      • EXPORT_ALL_TREE_ELEMENT

        private static final java.lang.String EXPORT_ALL_TREE_ELEMENT
        See Also:
        Constant Field Values
      • SKIP_EXPORT_ALL_SPEC_ELEMENT

        private static final java.lang.String SKIP_EXPORT_ALL_SPEC_ELEMENT
        See Also:
        Constant Field Values
      • resourcesDir

        private java.io.File resourcesDir
      • exportConfig

        private java.util.Map<java.lang.String,​java.lang.Boolean> exportConfig
      • exportedIconSet

        private final java.util.Set<java.lang.String> exportedIconSet
      • exportedElementSet

        private final java.util.Set<java.lang.String> exportedElementSet
      • exportedTreeSet

        private final java.util.Set<java.lang.String> exportedTreeSet
      • exportedDiagramSet

        private final java.util.Set<Diagram> exportedDiagramSet
      • elementPropertiesMap

        private final java.util.Map<java.lang.Class<?>,​java.util.List<java.lang.String>[]> elementPropertiesMap
      • existingFilePaths

        private final java.util.Set<java.lang.String> existingFilePaths
      • fileExportedCount

        private long fileExportedCount
      • filesToBeExportedCount

        private long filesToBeExportedCount
      • currentPercentage

        private int currentPercentage
      • elementFileCount

        private long elementFileCount
      • useHexadecimalName

        private java.lang.Boolean useHexadecimalName
      • hexadecimalMap

        private java.util.Map<java.lang.String,​java.lang.String> hexadecimalMap
      • packageScope

        private java.util.Collection<Package> packageScope
      • elementScope

        private java.util.Collection<Element> elementScope
      • globalEngine

        private com.nomagic.magicreport.engine.ITemplateEngine globalEngine
      • htmlFormatter

        private com.nomagic.magicreport.format.HTMLFormatter htmlFormatter
      • blankFieldValue

        private java.lang.String blankFieldValue
      • defaultOutputDirectory

        private java.io.File defaultOutputDirectory
      • isRecursive

        private boolean isRecursive
      • documentBuilder

        private javax.xml.parsers.DocumentBuilder documentBuilder
      • transformer

        private javax.xml.transform.Transformer transformer
      • task

        private com.nomagic.magicdraw.magicreport.ObserverTask task
      • nodeComparator

        private final java.util.Comparator<org.w3c.dom.Element> nodeComparator
      • elementComparator

        private final java.util.Comparator<BaseElement> elementComparator
      • nameComparator

        private final java.util.Comparator<org.w3c.dom.Element> nameComparator
      • elementsToBeExport

        private java.util.Set<java.lang.String> elementsToBeExport
    • Constructor Detail

      • ExportTool2

        public ExportTool2()
        Create an export tool.
      • ExportTool2

        public ExportTool2​(java.util.Observer observer)
        Create an export tool with observer.
        Parameters:
        observer - Observer
      • ExportTool2

        public ExportTool2​(com.nomagic.magicreport.engine.ITemplateEngine engine,
                           java.util.Observer observer)
        Create an export tool with observer.
        Parameters:
        engine - engine
        observer - Observer
    • Method Detail

      • setRecursive

        public void setRecursive​(boolean isRecursive)
      • consume

        public void consume​(com.nomagic.magicreport.engine.ConcurrentTool.ConsumeObject consumeObject)
        Consume a object.
        Specified by:
        consume in class com.nomagic.magicreport.engine.ConcurrentTool
        Parameters:
        consumeObject - consume object.
        See Also:
        ConcurrentTool.consume(com.nomagic.magicreport.engine.ConcurrentTool.ConsumeObject)
      • increaseProgressBar

        private void increaseProgressBar​(Element exportingElement,
                                         java.lang.String id,
                                         java.lang.String name,
                                         java.lang.String text)
      • getFormattedNumber

        private java.lang.String getFormattedNumber​(long num)
      • calculatePercentage

        private int calculatePercentage​(long current,
                                        long total)
      • getBlankField

        private java.lang.String getBlankField()
      • formatObject

        private java.lang.String formatObject​(@CheckForNull
                                              java.lang.Object object)
      • getPackageScope

        private java.util.Collection<Package> getPackageScope()
      • getElementScope

        private java.util.Collection<Element> getElementScope()
      • isHiddenScope

        private boolean isHiddenScope​(Package testPackage)
      • collectElementPropertiesNames

        private java.util.List<java.lang.String> collectElementPropertiesNames​(Element element,
                                                                               java.lang.String mode)
        Creates and collects groups nodes user friendly names that appears in element's specification dialog tree at specific view mode (Standard/Expert/All)
        Parameters:
        element - element
        mode - view mode from PropertiesModeHelper.MODES
        Returns:
        Collection of String group nodes names
        See Also:
        PropertiesMode
      • appendPropertyCollection

        private void appendPropertyCollection​(java.util.Collection<?> propertyCollection,
                                              java.util.Collection<Package> packageScope,
                                              org.w3c.dom.Document document,
                                              java.util.List<org.w3c.dom.Element> childList,
                                              org.w3c.dom.Element fieldElement,
                                              boolean exportResources)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • getModeString

        private java.lang.String getModeString​(java.util.List<java.lang.String>[] propertiesModes,
                                               java.lang.String propertyName)
      • setModeString

        private void setModeString​(org.w3c.dom.Element xmlElement,
                                   java.util.List<java.lang.String>[] propertiesModes,
                                   java.lang.String propertyName)
      • exportElement

        public com.nomagic.magicreport.engine.ITool.Void exportElement​(java.io.File exportingFile,
                                                                       Element exportingElement,
                                                                       boolean exportResources)
        Export element to XML file.
        Parameters:
        exportingFile - exporting file
        exportingElement - exporting element
        exportResources - true if you want to export resources of this element
        Returns:
        nothing
      • exportElement

        public com.nomagic.magicreport.engine.ITool.Void exportElement​(java.io.File exportingFile,
                                                                       Element exportingElement,
                                                                       boolean exportResources,
                                                                       boolean exportLinkedFile)
        Export element to XML file.
        Parameters:
        exportingFile - exporting file
        exportingElement - exporting element
        exportResources - true if you want to export resources of this element
        exportLinkedFile - true if you want to include linked files.
        Returns:
        nothing
      • exportElement

        public com.nomagic.magicreport.engine.ITool.Void exportElement​(java.io.File exportingFile,
                                                                       Element exportingElement,
                                                                       boolean exportResources,
                                                                       boolean exportLinkedFile,
                                                                       @CheckForNull
                                                                       com.nomagic.magicdraw.ui.ElementFilter filter)
      • createAppearInDiagram

        private void createAppearInDiagram​(org.w3c.dom.Document document,
                                           org.w3c.dom.Element appearsIn,
                                           Element element)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • exportImageMap

        private org.w3c.dom.Element exportImageMap​(org.w3c.dom.Document document,
                                                   DiagramPresentationElement diagramPresentation,
                                                   boolean exportLinkedFile,
                                                   com.nomagic.magicdraw.ui.ElementFilter filter)
      • ensureParentDirExists

        private void ensureParentDirExists​(java.io.File parentFile)
      • convertModelLinkToFileURL

        @CheckForNull
        private java.lang.String convertModelLinkToFileURL​(Element propertyValue)
                                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • exportDiagram

        private void exportDiagram​(Diagram diagram,
                                   Project project,
                                   org.w3c.dom.Document document,
                                   org.w3c.dom.Element xmlElement,
                                   com.nomagic.magicdraw.ui.ElementFilter filter,
                                   boolean exportResources,
                                   java.util.List<org.w3c.dom.Element> nodeList,
                                   boolean exportLinkedFile)
        Export area mapping of elements in the diagram.
      • getHTMLFormatter

        private com.nomagic.magicreport.format.HTMLFormatter getHTMLFormatter()
      • exportElementForTree

        public com.nomagic.magicreport.engine.ITool.Void exportElementForTree​(java.io.File exportingNodeFile,
                                                                              Element exportingElement,
                                                                              boolean exportResources,
                                                                              com.nomagic.magicdraw.ui.ElementFilter filter)
        Export element to XML file which is used for create tree.
        Parameters:
        exportingNodeFile - exporting file
        exportingElement - export element
        exportResources - true if you want to export resources of this element
        filter - element filter
        Returns:
        nothing
      • isInPackageScope

        private boolean isInPackageScope​(java.util.Collection<Package> packageScope,
                                         Element element)
      • isInElementScope

        private boolean isInElementScope​(java.util.Collection<Element> elementScope,
                                         Element element)
      • createSmartElementForTree

        private org.w3c.dom.Element createSmartElementForTree​(org.w3c.dom.Document document,
                                                              Element exportingElement,
                                                              boolean exportResources,
                                                              com.nomagic.magicdraw.ui.ElementFilter filter)
                                                       throws java.io.IOException
        Create XML element for element which is used to create tree.
        Throws:
        java.io.IOException
      • createElementForTree

        private org.w3c.dom.Element createElementForTree​(org.w3c.dom.Document document,
                                                         Element exportingElement,
                                                         boolean exportResources,
                                                         com.nomagic.magicdraw.ui.ElementFilter filter)
                                                  throws java.io.IOException
        Create XML element for element which is used to create tree.
        Parameters:
        document - Document object
        Throws:
        java.io.IOException
      • createElementForTree

        private org.w3c.dom.Element createElementForTree​(org.w3c.dom.Document document,
                                                         Element exportingElement,
                                                         boolean exportResources,
                                                         com.nomagic.magicdraw.ui.ElementFilter filter,
                                                         boolean isSmart)
                                                  throws java.io.IOException
        Create XML element for element which is used to create tree.
        Throws:
        java.io.IOException
      • getElementPropertyString

        @CheckForNull
        private java.lang.String getElementPropertyString​(Element exportingElement,
                                                          java.lang.String propertyName)
      • hasActiveHyperlink

        private boolean hasActiveHyperlink​(Element exportingElement)
      • isCreateSpecificationIcon

        private boolean isCreateSpecificationIcon​(Element exportingElement)
      • isHiddenElement

        private boolean isHiddenElement​(Element exportingElement,
                                        com.nomagic.magicdraw.ui.ElementFilter filter)
      • hasChildElement

        private boolean hasChildElement​(org.w3c.dom.Document document,
                                        Element exportingElement,
                                        com.nomagic.magicdraw.ui.ElementFilter filter)
      • getResourcesLocation

        protected java.lang.String getResourcesLocation()
        Return location of resources directory.
        Returns:
        a path to resources directory.
      • createResourcesDir

        protected java.io.File createResourcesDir​(java.lang.String resourcesLocation)
                                           throws java.io.IOException
        Create a resource directory.
        Parameters:
        resourcesLocation - resources location
        Returns:
        a File pointed to resources directory
        Throws:
        java.io.IOException - if IO error occurs.
      • createResourcesDir

        private java.io.File createResourcesDir()
                                         throws java.io.IOException
        Create a resource directory.
        Returns:
        a File pointed to resources directory
        Throws:
        java.io.IOException - if IO error occurs.
      • exportIcon

        protected java.lang.String exportIcon​(BaseElement exportingElement)
                                       throws java.io.IOException
        Export the icon for element. This method should not perform graphic renderer by itself. The icon exporting process should be enqueue by method offer(ConsumeObject).
        Parameters:
        exportingElement - target element
        Returns:
        path to icon
        Throws:
        java.io.IOException - if IO error occurs
      • exportCustomImageHolder

        protected java.lang.String exportCustomImageHolder​(BaseElement exportingElement)
                                                    throws java.io.IOException
        Export the image for the element. Image for the element will be exported from strereotype CustomImageHolder.
        Parameters:
        exportingElement - target element
        Returns:
        path to icon
        Throws:
        java.io.IOException - if IO error occurs
      • exportElement

        private void exportElement​(Element exportingElement,
                                   boolean exportResources,
                                   boolean exportLinkedFile,
                                   @CheckForNull
                                   com.nomagic.magicdraw.ui.ElementFilter filter,
                                   boolean isSmart)
        Export element to XML file. Use element id as file name.
        Parameters:
        exportingElement - exporting element
      • createElement

        private org.w3c.dom.Element createElement​(org.w3c.dom.Document document,
                                                  java.lang.String elementName,
                                                  Element exportingElement,
                                                  boolean exportResources)
                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • createElement

        private org.w3c.dom.Element createElement​(org.w3c.dom.Document document,
                                                  Element exportingElement,
                                                  boolean exportResources)
                                           throws java.io.IOException
        Throws:
        java.io.IOException
      • createAndExportElement

        protected org.w3c.dom.Element createAndExportElement​(org.w3c.dom.Document document,
                                                             Element exportingElement,
                                                             boolean exportResources,
                                                             boolean exportLinkedFile,
                                                             @CheckForNull
                                                             com.nomagic.magicdraw.ui.ElementFilter filter)
                                                      throws java.io.IOException
        Create XML element represents the exportingElement and export the element into file. Return null to cancel this element exporting.
        Parameters:
        document - XML document
        exportingElement - exporting element
        exportResources - true if you want to export resources of this element
        exportLinkedFile - true if you want to include linked files.
        filter - element filter.
        Returns:
        XML element for creating containment tree.
        Throws:
        java.io.IOException - when IO error occured.
      • createAndExportSmartElement

        protected org.w3c.dom.Element createAndExportSmartElement​(org.w3c.dom.Document document,
                                                                  Element exportingElement,
                                                                  boolean exportResources,
                                                                  boolean exportLinkedFile,
                                                                  @CheckForNull
                                                                  com.nomagic.magicdraw.ui.ElementFilter filter)
                                                           throws java.io.IOException
        Create XML element represents the exportingElement and export the element into file. Return null to cancel this element exporting.
        Parameters:
        document - XML document
        exportingElement - exporting element
        exportResources - true if you want to export resources of this element
        exportLinkedFile - true if you want to include linked files.
        filter - element filter.
        Returns:
        XML element for creating containment tree.
        Throws:
        java.io.IOException - when IO error occured.
      • createAndExportElement

        protected org.w3c.dom.Element createAndExportElement​(org.w3c.dom.Document document,
                                                             Element exportingElement,
                                                             boolean exportResources,
                                                             boolean exportLinkedFile,
                                                             @CheckForNull
                                                             com.nomagic.magicdraw.ui.ElementFilter filter,
                                                             boolean isSmart)
                                                      throws java.io.IOException
        Create XML element represents the exportingElement and export the element into file. Return null to cancel this element exporting.
        Parameters:
        document - XML document
        exportingElement - exporting element
        exportResources - true if you want to export resources of this element
        exportLinkedFile - true if you want to include linked files.
        filter - element filter.
        Returns:
        XML element for creating containment tree.
        Throws:
        java.io.IOException - when IO error occured.
      • getElementType

        protected java.lang.String getElementType​(Element element)
        Return String representing element type.
        Parameters:
        element - element
        Returns:
        a String representing element type.
      • exportElement

        private void exportElement​(org.w3c.dom.Element parentElement,
                                   Element exportingElement,
                                   java.util.Collection<Package> packageScope,
                                   boolean exportResources,
                                   boolean exportLinkedFile,
                                   @CheckForNull
                                   com.nomagic.magicdraw.ui.ElementFilter filter)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • exportSmartElement

        private void exportSmartElement​(org.w3c.dom.Element parentElement,
                                        Element exportingElement,
                                        java.util.Collection<Package> packageScope,
                                        boolean exportResources,
                                        boolean exportLinkedFile,
                                        @CheckForNull
                                        com.nomagic.magicdraw.ui.ElementFilter filter)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • exportElement

        private void exportElement​(org.w3c.dom.Element parentElement,
                                   Element exportingElement,
                                   java.util.Collection<Package> packageScope,
                                   boolean exportResources,
                                   boolean exportLinkedFile,
                                   @CheckForNull
                                   com.nomagic.magicdraw.ui.ElementFilter filter,
                                   boolean isSmart)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • createOutputByID

        private java.io.File createOutputByID​(java.lang.String prefix,
                                              java.lang.String elementID,
                                              java.lang.String subfix,
                                              boolean forceRenew)
      • createHexaID

        private java.lang.String createHexaID​(java.lang.String elementID)
      • createOutputFromDefault

        private java.io.File createOutputFromDefault​(java.lang.String filename,
                                                     boolean forceRenew)
      • createOutputFile

        private java.io.File createOutputFile​(java.lang.String filename)
      • initialScopeAndVariable

        private void initialScopeAndVariable()
      • initialScopeAndVariable

        private void initialScopeAndVariable​(boolean alwaysInit)
      • collectElements

        private void collectElements​(boolean exportResources)
      • collectElements

        private void collectElements​(Project project,
                                     Element exportingElement,
                                     boolean exportResources)
      • exportAll

        public java.lang.String exportAll​(boolean exportResources,
                                          boolean exportLinkedFile)
        Export current opened project into file.
        Parameters:
        exportResources - true if you want to export resources.
        exportLinkedFile - true if you want to include linked files.
        Returns:
        nothing
      • exportRootTreeAndProfile

        private void exportRootTreeAndProfile​(org.w3c.dom.Element rootElement,
                                              org.w3c.dom.Document document,
                                              java.lang.String resourcesLocation,
                                              Package dataModel,
                                              Project project,
                                              java.util.Collection<Package> packageScope,
                                              boolean exportResources,
                                              boolean exportLinkedFile,
                                              com.nomagic.magicdraw.ui.ElementFilter filter)
      • createElementFilter

        private com.nomagic.magicdraw.ui.ElementFilter createElementFilter​(Project project)
      • destroy

        public void destroy()
        Called by the engine to inform this tool is no longer use and that it should destroy any resources that it has allocated.
        Overrides:
        destroy in class com.nomagic.magicreport.engine.ConcurrentTool
        See Also:
        ConcurrentTool.destroy()
      • createImage

        private com.nomagic.magicreport.Image createImage​(Element element,
                                                          PresentationElement presentationElement,
                                                          java.util.Properties properties,
                                                          int imageType)
                                                   throws java.io.IOException
        Create SVG file.
        Parameters:
        element - Actual element
        presentationElement - Element that use for create image
        properties - Property of object
        imageType - image type ImageExporter
        Returns:
        Image
        Throws:
        java.io.IOException - Exception
      • collectAnchorShapeBounds

        private void collectAnchorShapeBounds​(javax.swing.text.View view,
                                              java.awt.Shape container,
                                              java.util.List<ExportTool2.SymbolElement> shapeList,
                                              javax.swing.text.Element element,
                                              com.nomagic.magicdraw.uml.symbols.DiagramObjectViewContainer diagramContainer)
      • getContentShapeAnchorBounds

        private java.util.List<ExportTool2.SymbolElement> getContentShapeAnchorBounds​(com.nomagic.magicdraw.uml.symbols.shapes.TextObject textObject,
                                                                                      com.nomagic.magicdraw.uml.symbols.DiagramObjectViewContainer diagramContainer)
        Collect all anchor element from content shape.
        Returns:
        a list containing anchor shape
      • getHumanName

        public static java.lang.String getHumanName​(java.lang.String propertyName,
                                                    java.util.Map<java.lang.String,​java.lang.String> nameMap)
        Get human name of given property name. If nameMap is used, human name will be resolved by nameMap then resource string.
        Parameters:
        propertyName - a property name
        nameMap - optional provides new name map from DSLManager.getPropertyNameMap(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element) to resolve property name from <<metaType>>
        Returns:
        human name
      • exportElementForDiagramTree

        private void exportElementForDiagramTree()
      • createReferneceDiagramType

        private java.lang.String createReferneceDiagramType​(java.lang.String name)
      • createDiagramTypeName

        private java.lang.String createDiagramTypeName​(java.lang.String name)
        Append 's' after diagram type name.
      • exportElementForRootDiagramTree

        private void exportElementForRootDiagramTree​(java.util.Map<java.lang.String,​java.util.List<Diagram>> diagramTypeMap)
      • exportElementForDiagramTypeTree

        private void exportElementForDiagramTypeTree​(java.util.Map<java.lang.String,​java.util.List<Diagram>> diagramTypeMap)
      • getExportConfig

        private boolean getExportConfig​(java.lang.String config)
      • isExportableTreeElement

        private boolean isExportableTreeElement​(Element element)
        Check element that can be created as xml file for containment tree
        Parameters:
        element - specific element
        Returns:
        true if it can be created as xml file; otherwise, false.
      • isExportableSpecElement

        private boolean isExportableSpecElement​(Element element)
        Check element that can be created as xml file for specification panel
        Parameters:
        element - specific element
        Returns:
        true if it can be created as xml file; otherwise, false.
      • isExportableElement

        private static boolean isExportableElement​(Element element)
        Fixed https://jira.nomagic.com/browse/MGRP-3170s 1) Applied Stereotype Instances and Slots that are tagged values should not be exported, since they are not part of actual model 2) Documentation comments should not be exported in a separate file - it is enough to print info in its owner 3) Should not export not user-created ValueSpecifications, like ones that are created when setting multiplicity property value
      • exportIconForHTMLDocument

        private java.lang.String exportIconForHTMLDocument​(Project project,
                                                           java.lang.String text)
        For html, it may contain some attributes that refer to element icon.
        Ex. This icon should be exported and the value of "src" attribute should be changed to the url of exported icon.
        Parameters:
        project - current project
        text - html text
        Returns:
        updated text
      • isCancel

        protected boolean isCancel()
      • handleIOException

        protected void handleIOException​(java.lang.Exception e)