Class SorterTool

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

    @OpenApiAll
    public class SorterTool
    extends com.nomagic.magicreport.engine.tools.SortTool
    The sort tool specific for MagicDraw.
    Since:
    Jun 13, 2008
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.nomagic.magicreport.engine.tools.SortTool

        com.nomagic.magicreport.engine.tools.SortTool.AscendingSort, com.nomagic.magicreport.engine.tools.SortTool.DescendingSort, com.nomagic.magicreport.engine.tools.SortTool.FirstNumberAscendingSort, com.nomagic.magicreport.engine.tools.SortTool.FirstNumberDescendingSort, com.nomagic.magicreport.engine.tools.SortTool.HumanAscendingSort, com.nomagic.magicreport.engine.tools.SortTool.HumanDescendingSort
      • 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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String CONTEXT_NAME
      Contains a context name.
      • Fields inherited from class com.nomagic.magicreport.engine.Tool

        context, properties
      • Fields inherited from interface com.nomagic.magicreport.engine.ITool

        VOID
    • Constructor Summary

      Constructors 
      Constructor Description
      SorterTool()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Collection containmentTreeSort​(java.util.Collection collection)
      Sorter for sorting elements that they would look same as in browser tree.
      java.lang.String getBlankValue()
      Return the value for blank field.
      protected java.lang.Object getValue​(java.lang.Object object, java.lang.String propertyName)
      Look up a object value by property name.
      java.util.Collection humanSort​(java.util.Collection collection)
      Special sorting function with human order, which says to split the text to be sorted into numeric and non-numeric chunks, then sort so that the numeric chunks are treated as numbers.
      void setProperties​(java.util.Properties properties)
      This method is invoked by the template engine runtime, after class has been initializing, to set the template properties.
      java.util.Collection sort​(java.util.Collection collection)
      Sort function for template report.
      java.util.Collection tagSort​(java.util.Collection collection, Stereotype stereotype, java.lang.String tagName)
      Sort element by tag name of specific stereotype.
      java.util.Collection tagSort​(java.util.Collection collection, Stereotype stereotype, java.lang.String tagName, boolean forceNumber)
      Sort element by tag name of specific stereotype.
      java.util.Collection tagSort​(java.util.Collection collection, java.lang.String stereotypeName, java.lang.String tagName)
      Sort element by tag name of specific stereotype name.
      java.util.Collection tagSort​(java.util.Collection collection, java.lang.String stereotypeName, java.lang.String tagName, boolean forceNumber)
      Sort element by tag name of specific stereotype name.
      java.util.Collection treeSort​(java.util.Collection collection)
      Special sorting function with human order for containment tree elements, which says to split the text to be sorted into numeric and non-numeric chunks, then sort so that the numeric chunks are treated as numbers.
      • Methods inherited from class com.nomagic.magicreport.engine.tools.SortTool

        defaultSort, getNextToken, humanSort, humanSort, humanSort, humanSort, humanSort, humanSort, isForceNumber, setForceNumber, sort, sort, sort, sort, sort, sortByFirstNumber, sortByFirstNumber, sortByFirstNumber, sortByFirstNumber, sortByLocale, sortByLocale
      • Methods inherited from class com.nomagic.magicreport.engine.Tool

        clone, getContext, getProperties, getProperty, getProperty, notifyObservers, setContext
      • 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
      • Methods inherited from interface com.nomagic.magicreport.engine.ITool

        clearTool
    • Field Detail

      • CONTEXT_NAME

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

      • SorterTool

        public SorterTool()
    • Method Detail

      • setProperties

        public void setProperties​(java.util.Properties properties)
        This method is invoked by the template engine runtime, after class has been initializing, to set the template properties. Override current properties will not affect with the engine.
        Specified by:
        setProperties in interface com.nomagic.magicreport.engine.ITool
        Overrides:
        setProperties in class com.nomagic.magicreport.engine.Tool
        Parameters:
        properties - template engine properties
      • getBlankValue

        public java.lang.String getBlankValue()
        Return the value for blank field.
        Returns:
        value for blank field
      • sort

        public java.util.Collection sort​(java.util.Collection collection)
        Sort function for template report. Context name of this class is "sorter". Public functions of this class are able to access via template by using $sorter

        For example:

         <code>
            #foreach ($rel in $sorter.sort($package))
               $rel.name
            #end
         </code>
         

        This method will sort object in collection by default MagicDraw model ordering ('name' when input is a collection of NamedElement).

        Overrides:
        sort in class com.nomagic.magicreport.engine.tools.SortTool
        Parameters:
        collection - collection to be sort
        Returns:
        sorted collection
      • humanSort

        public java.util.Collection humanSort​(java.util.Collection collection)
        Special sorting function with human order, which says to split the text to be sorted into numeric and non-numeric chunks, then sort so that the numeric chunks are treated as numbers. This makes "foo10" sort after "foo2"

        This method will sort object in collection by default MagicDraw model ordering. ('name' when input is a collection of NamedElement).

        Overrides:
        humanSort in class com.nomagic.magicreport.engine.tools.SortTool
        Parameters:
        collection - collection collection to be sort
        Returns:
        sorted collection
      • tagSort

        public java.util.Collection tagSort​(java.util.Collection collection,
                                            Stereotype stereotype,
                                            java.lang.String tagName)
        Sort element by tag name of specific stereotype.
        Parameters:
        collection - elements to be sorted
        stereotype - specific stereotype
        tagName - tagName
        Returns:
        sorted collection
      • tagSort

        public java.util.Collection tagSort​(java.util.Collection collection,
                                            java.lang.String stereotypeName,
                                            java.lang.String tagName)
        Sort element by tag name of specific stereotype name.
        Parameters:
        collection - elements to be sorted
        stereotypeName - specific stereotype name
        tagName - tagName
        Returns:
        sorted collection
      • tagSort

        public java.util.Collection tagSort​(java.util.Collection collection,
                                            Stereotype stereotype,
                                            java.lang.String tagName,
                                            boolean forceNumber)
        Sort element by tag name of specific stereotype.
        Parameters:
        collection - elements to be sorted
        stereotype - specific stereotype
        forceNumber - try to compare by number
        tagName - tagName
        Returns:
        sorted collection
      • tagSort

        public java.util.Collection tagSort​(java.util.Collection collection,
                                            java.lang.String stereotypeName,
                                            java.lang.String tagName,
                                            boolean forceNumber)
        Sort element by tag name of specific stereotype name.
        Parameters:
        collection - elements to be sorted
        stereotypeName - specific stereotype name
        forceNumber - try to compare by number
        tagName - tagName
        Returns:
        sorted collection
      • treeSort

        public java.util.Collection treeSort​(java.util.Collection collection)
        Special sorting function with human order for containment tree elements, which says to split the text to be sorted into numeric and non-numeric chunks, then sort so that the numeric chunks are treated as numbers. This makes "foo10" sort after "foo2"

        This method will sort object in collection by default MagicDraw model ordering. ('name' when input is a collection of NamedElement).

        Parameters:
        collection - collection collection to be sort
        Returns:
        sorted collection
      • containmentTreeSort

        public java.util.Collection containmentTreeSort​(java.util.Collection collection)
        Sorter for sorting elements that they would look same as in browser tree.
        Parameters:
        collection - collection collection to be sort
        Returns:
        sorted collection
      • getValue

        protected java.lang.Object getValue​(java.lang.Object object,
                                            java.lang.String propertyName)
        Look up a object value by property name.
        Overrides:
        getValue in class com.nomagic.magicreport.engine.tools.SortTool
        Parameters:
        object - target object.
        propertyName - property name
        Returns:
        the value.