Class RMSort

  • All Implemented Interfaces:
    Archivable, RMJSONArchiver.GetKeys, java.lang.Cloneable, java.util.Comparator
    Direct Known Subclasses:
    RMTopNSort, RMValueSort

    public class RMSort
    extends java.lang.Object
    implements java.util.Comparator, java.lang.Cloneable, RMJSONArchiver.GetKeys, Archivable
    This class provides a basic description for comparison and sorting with a simple key and order (ascending or descending). You can create a new order like this:

       RMSort titleFirst = new RMSort("getTitle");
       RMSort bestRevenueFirst = new RMSort("getRevenue", ORDER_DESCEND);
     

    This class also provides useful static methods for comparison and sorting:

       RMSort.sort(myList, "getTitle"); // Sort myList by its contents' getTitle method (alphabetically)
       RMSort.sort(myList, bestRevenueFirst); // Sort myList by its contents' getRevenue method (largest first)
       List mySortList = new ArrayList();
       mySortList.add(bestRevenueFirst);
       mySortList.add(titleFirst);
       RMSort.sort(myList, mySortList); // Sort myList by revenue and title
     
    • Constructor Summary

      Constructors 
      Constructor Description
      RMSort()
      Creates a plain sort with no key.
      RMSort​(java.lang.String aKey)
      Creates a sort with the given key and ORDER_ASCEND.
      RMSort​(java.lang.String aKey, int anOrder)
      Creates a sort with the given key and order.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object clone()
      Standard clone implementation.
      int compare​(java.lang.Object obj1, java.lang.Object obj2)
      Returns how the two given objects compare with this sort.
      static int Compare​(java.lang.Object anObj1, java.lang.Object anObj2)
      Compare two value objects (assumed to be String, Number, Boolean, Date, Comparable, etc.).
      boolean equals​(java.lang.Object anObj)
      Standard equals implementation.
      java.lang.Object fromXML​(RXArchiver anArchiver, RXElement anElement)
      XML unarchival.
      java.util.List<java.lang.String> getJSONKeys()
      RMJSONArchiver GetKeys method.
      java.lang.String getKey()
      Returns the key for this sort.
      int getOrder()
      Returns the order for this sort.
      int getOrderDefault()
      Returns the order default.
      java.lang.String getOrderString()
      Returns the order as a string.
      void setKey​(java.lang.String aKey)
      Sets the key for this sort.
      void setOrder​(int anOrder)
      Sets the order for this sort.
      void setOrderString​(java.lang.String aString)
      Sets the order as a string.
      static void sort​(java.util.List aList, RMSort aSort)
      Returns the given list sorted by the given sort.
      static void sort​(java.util.List aList, RMSort... theSorts)
      Returns the given list sorted by the given sort.
      static void sort​(java.util.List aList, java.lang.String aKey)
      Returns the given list sorted by the given key.
      static void sort​(java.util.List aList, java.lang.String... theKeys)
      Returns the given list sorted by the given key.
      static void sort​(java.util.List aList, java.util.List aSortList)
      Returns the given list sorted by the given list of sorts.
      static <T extends java.lang.Comparable<? super T>>
      java.util.List<T>
      sortedList​(java.util.Collection<T> aCollection)
      Returns a new sorted list from given collection.
      static <T> java.util.Vector<T> sortedList​(java.util.Collection<T> aCollection, java.lang.String aKey)
      Returns a new list from the given list sorted by the given key.
      static <T> java.util.Vector<T> sortedList​(java.util.Collection<T> aCollection, java.lang.String... theKeys)
      Returns a new list from the given list sorted by the given key.
      void toggleOrder()
      Toggles the order for this sort between ORDER_ASCEND<->ORDER_DESCEND.
      java.lang.String toString()
      Returns a string representation of sort (just the sort key).
      RXElement toXML​(RXArchiver anArchiver)
      XML archival.
      • Methods inherited from class java.lang.Object

        finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Comparator

        reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Constructor Detail

      • RMSort

        public RMSort()
        Creates a plain sort with no key. Used for unarchival, shouldn't be called directly.
      • RMSort

        public RMSort​(java.lang.String aKey)
        Creates a sort with the given key and ORDER_ASCEND.
      • RMSort

        public RMSort​(java.lang.String aKey,
                      int anOrder)
        Creates a sort with the given key and order.
    • Method Detail

      • getKey

        public java.lang.String getKey()
        Returns the key for this sort.
      • setKey

        public void setKey​(java.lang.String aKey)
        Sets the key for this sort.
      • getOrder

        public int getOrder()
        Returns the order for this sort.
      • setOrder

        public void setOrder​(int anOrder)
        Sets the order for this sort.
      • getOrderDefault

        public int getOrderDefault()
        Returns the order default.
      • getOrderString

        public java.lang.String getOrderString()
        Returns the order as a string.
      • setOrderString

        public void setOrderString​(java.lang.String aString)
        Sets the order as a string.
      • toggleOrder

        public void toggleOrder()
        Toggles the order for this sort between ORDER_ASCEND<->ORDER_DESCEND.
      • compare

        public int compare​(java.lang.Object obj1,
                           java.lang.Object obj2)
        Returns how the two given objects compare with this sort.
        Specified by:
        compare in interface java.util.Comparator
      • Compare

        public static int Compare​(java.lang.Object anObj1,
                                  java.lang.Object anObj2)
        Compare two value objects (assumed to be String, Number, Boolean, Date, Comparable, etc.).
      • sort

        public static void sort​(java.util.List aList,
                                java.lang.String aKey)
        Returns the given list sorted by the given key.
      • sort

        public static void sort​(java.util.List aList,
                                RMSort aSort)
        Returns the given list sorted by the given sort.
      • sort

        public static void sort​(java.util.List aList,
                                java.lang.String... theKeys)
        Returns the given list sorted by the given key.
      • sort

        public static void sort​(java.util.List aList,
                                RMSort... theSorts)
        Returns the given list sorted by the given sort.
      • sort

        public static void sort​(java.util.List aList,
                                java.util.List aSortList)
        Returns the given list sorted by the given list of sorts.
      • sortedList

        public static <T extends java.lang.Comparable<? super T>> java.util.List<T> sortedList​(java.util.Collection<T> aCollection)
        Returns a new sorted list from given collection.
      • sortedList

        public static <T> java.util.Vector<T> sortedList​(java.util.Collection<T> aCollection,
                                                         java.lang.String aKey)
        Returns a new list from the given list sorted by the given key.
      • sortedList

        public static <T> java.util.Vector<T> sortedList​(java.util.Collection<T> aCollection,
                                                         java.lang.String... theKeys)
        Returns a new list from the given list sorted by the given key.
      • equals

        public boolean equals​(java.lang.Object anObj)
        Standard equals implementation.
        Specified by:
        equals in interface java.util.Comparator
        Overrides:
        equals in class java.lang.Object
      • clone

        public java.lang.Object clone()
        Standard clone implementation.
        Overrides:
        clone in class java.lang.Object
      • toString

        public java.lang.String toString()
        Returns a string representation of sort (just the sort key).
        Overrides:
        toString in class java.lang.Object