Class SorterTool
- java.lang.Object
-
- java.util.Observable
-
- com.nomagic.magicreport.engine.Tool
-
- com.nomagic.magicreport.engine.tools.SortTool
-
- com.nomagic.magicdraw.magicreport.tools.SorterTool
-
- All Implemented Interfaces:
com.nomagic.magicreport.engine.ITool
,com.nomagic.magicreport.IVariable
,java.io.Serializable
,java.lang.Cloneable
- Direct Known Subclasses:
SorterTool.StereotypeSorter
@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 Modifier and Type Class Description private static class
SorterTool.HumanModelComparator
Sort Collection in ascendingprivate static class
SorterTool.HumanTreeComparator
Sort Collection in ascendingprivate static class
SorterTool.ModelComparator
Sort Collectionprivate class
SorterTool.StereotypeSorter
-
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
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
blankValue
static java.lang.String
CONTEXT_NAME
Contains a context name.private static java.lang.String
DESCENDING
private static org.apache.logging.log4j.Logger
log
private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description SorterTool()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static int
compareByNull(java.lang.Object o1, java.lang.Object o2)
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.private java.util.Collection
sortByTag(java.util.Collection collection, SorterTool.StereotypeSorter stereotypeSorter, java.lang.String tagName)
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
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
CONTEXT_NAME
public static final java.lang.String CONTEXT_NAME
Contains a context name.- See Also:
- Constant Field Values
-
DESCENDING
private static final java.lang.String DESCENDING
- See Also:
- Constant Field Values
-
log
private static final org.apache.logging.log4j.Logger log
-
blankValue
private java.lang.String blankValue
-
-
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 interfacecom.nomagic.magicreport.engine.ITool
- Overrides:
setProperties
in classcom.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 classcom.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 classcom.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 sortedstereotype
- specific stereotypepropertyName
- 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 sortedstereotypeName
- specific stereotype namepropertyName
- 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 sortedstereotype
- specific stereotypeforceNumber
- try to compare by numberpropertyName
- 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 sortedstereotypeName
- specific stereotype nameforceNumber
- try to compare by numberpropertyName
- tagName- Returns:
- sorted collection
-
sortByTag
private java.util.Collection sortByTag(java.util.Collection collection, SorterTool.StereotypeSorter stereotypeSorter, java.lang.String tagName)
-
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
-
compareByNull
private static int compareByNull(java.lang.Object o1, java.lang.Object o2)
-
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 classcom.nomagic.magicreport.engine.tools.SortTool
- Parameters:
object
- target object.propertyName
- property name- Returns:
- the value.
-
-