Class Filters


  • public class Filters
    extends java.lang.Object
    Helper methods for dealing with query filters.
    Author:
    Abe White
    • Constructor Summary

      Constructors 
      Constructor Description
      Filters()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.Object add​(java.lang.Object o1, java.lang.Class<?> c1, java.lang.Object o2, java.lang.Class<?> c2)
      Add the given values.
      static java.util.List<ClassMetaData> addAccessPathMetaDatas​(java.util.List<ClassMetaData> metas, ClassMetaData[] path)
      Add the given access path metadatas to the full path list, making sure to maintain only base metadatas in the list.
      static boolean canConvert​(java.lang.Class<?> c1, java.lang.Class<?> c2, boolean strict)
      Return whether an instance of the first class can be converted to an instance of the second.
      static java.lang.String clip​(java.lang.String s, java.lang.String first, java.lang.String last, boolean fail)
      Removes the first and last string if they are the terminal sequence in the given string.
      static java.lang.Object convert​(java.lang.Object o, java.lang.Class<?> type)  
      static java.lang.Object convert​(java.lang.Object o, java.lang.Class<?> type, boolean strictNumericConversion)
      Convert the given value to the given type.
      static java.lang.Object convertToMatchMethodArgument​(java.lang.Object o, java.lang.reflect.Method method)
      Convert the given value to match the given (presumably a setter) method argument type.
      static java.lang.Object divide​(java.lang.Object o1, java.lang.Class<?> c1, java.lang.Object o2, java.lang.Class<?> c2)
      Divide the given values.
      static java.lang.Object getDefaultForNull​(java.lang.Class<?> nType)  
      static AggregateListener hintToAggregateListener​(java.lang.Object hint, java.lang.ClassLoader loader)
      Convert the user-given hint value to an aggregate listener.
      static AggregateListener[] hintToAggregateListeners​(java.lang.Object hint, java.lang.ClassLoader loader)
      Convert the user-given hint value to an array of aggregate listeners.
      static FilterListener hintToFilterListener​(java.lang.Object hint, java.lang.ClassLoader loader)
      Convert the user-given hint value to a filter listener.
      static FilterListener[] hintToFilterListeners​(java.lang.Object hint, java.lang.ClassLoader loader)
      Convert the user-given hint value to an array of filter listeners.
      static java.lang.Object hintToGetter​(java.lang.Object target, java.lang.String hintKey)
      Return the value of the property named by the hint key.
      static void hintToSetter​(java.lang.Object target, java.lang.String hintKey, java.lang.Object value)
      Set the value of the property named by the hint key.
      static boolean isJDBCTemporalSyntax​(java.lang.String s)
      Affirms if the given String is enclosed in {}.
      static boolean isTemporalType​(java.lang.Class<?> c)
      Affirms if the given class is Data, Time or Timestamp.
      static java.lang.Object mod​(java.lang.Object o1, java.lang.Class<?> c1, java.lang.Object o2, java.lang.Class<?> c2)
      Mod the given values.
      static java.lang.Object multiply​(java.lang.Object o1, java.lang.Class<?> c1, java.lang.Object o2, java.lang.Class<?> c2)
      Multiply the given values.
      static java.util.List<java.lang.String> parseDeclaration​(java.lang.String dec, char split, java.lang.String decType)
      Parses the given declarations into a list of type, name, type, name...
      static java.lang.Object parseJDBCTemporalSyntax​(java.lang.String s)
      Parses the given string assuming it is a JDBC key expression.
      static java.lang.Class<?> promote​(java.lang.Class<?> c1, java.lang.Class<?> c2)
      Given two types, return type they should both be converted to before performing any operations between them.
      static java.util.List<java.lang.String> splitExpressions​(java.lang.String str, char split, int expected)
      Split the given expression list into distinct expressions.
      static java.lang.Object subtract​(java.lang.Object o1, java.lang.Class<?> c1, java.lang.Object o2, java.lang.Class<?> c2)
      Subtract the given values.
      static java.lang.Class<?> unwrap​(java.lang.Class<?> c)
      Return the correct primitive type for the given class, if it is a wrapper.
      static java.lang.Class<?> wrap​(java.lang.Class<?> c)
      Return the correct wrapper type for the given class.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Filters

        public Filters()
    • Method Detail

      • wrap

        public static java.lang.Class<?> wrap​(java.lang.Class<?> c)
        Return the correct wrapper type for the given class.
      • unwrap

        public static java.lang.Class<?> unwrap​(java.lang.Class<?> c)
        Return the correct primitive type for the given class, if it is a wrapper.
      • promote

        public static java.lang.Class<?> promote​(java.lang.Class<?> c1,
                                                 java.lang.Class<?> c2)
        Given two types, return type they should both be converted to before performing any operations between them.
      • canConvert

        public static boolean canConvert​(java.lang.Class<?> c1,
                                         java.lang.Class<?> c2,
                                         boolean strict)
        Return whether an instance of the first class can be converted to an instance of the second.
      • convertToMatchMethodArgument

        public static java.lang.Object convertToMatchMethodArgument​(java.lang.Object o,
                                                                    java.lang.reflect.Method method)
        Convert the given value to match the given (presumably a setter) method argument type.
        Parameters:
        o - given value
        method - a presumably setter method
        Returns:
        the same value if the method does not have one and only one input argument.
      • convert

        public static java.lang.Object convert​(java.lang.Object o,
                                               java.lang.Class<?> type)
      • convert

        public static java.lang.Object convert​(java.lang.Object o,
                                               java.lang.Class<?> type,
                                               boolean strictNumericConversion)
        Convert the given value to the given type.
        Parameters:
        o - the given value
        type - the target type
      • add

        public static java.lang.Object add​(java.lang.Object o1,
                                           java.lang.Class<?> c1,
                                           java.lang.Object o2,
                                           java.lang.Class<?> c2)
        Add the given values.
      • subtract

        public static java.lang.Object subtract​(java.lang.Object o1,
                                                java.lang.Class<?> c1,
                                                java.lang.Object o2,
                                                java.lang.Class<?> c2)
        Subtract the given values.
      • multiply

        public static java.lang.Object multiply​(java.lang.Object o1,
                                                java.lang.Class<?> c1,
                                                java.lang.Object o2,
                                                java.lang.Class<?> c2)
        Multiply the given values.
      • divide

        public static java.lang.Object divide​(java.lang.Object o1,
                                              java.lang.Class<?> c1,
                                              java.lang.Object o2,
                                              java.lang.Class<?> c2)
        Divide the given values.
      • mod

        public static java.lang.Object mod​(java.lang.Object o1,
                                           java.lang.Class<?> c1,
                                           java.lang.Object o2,
                                           java.lang.Class<?> c2)
        Mod the given values.
      • parseDeclaration

        public static java.util.List<java.lang.String> parseDeclaration​(java.lang.String dec,
                                                                        char split,
                                                                        java.lang.String decType)
        Parses the given declarations into a list of type, name, type, name... Returns null if no declarations. Assumes declaration is not an empty string and is already trimmed (valid assumptions given the checks made in our setters).
        Parameters:
        decType - the type of declaration being parsed, for use in error messages
      • splitExpressions

        public static java.util.List<java.lang.String> splitExpressions​(java.lang.String str,
                                                                        char split,
                                                                        int expected)
        Split the given expression list into distinct expressions. Assumes the given string is not null or of zero length and is already trimmed (valid assumptions given the checks in our setters and before this method call).
      • addAccessPathMetaDatas

        public static java.util.List<ClassMetaData> addAccessPathMetaDatas​(java.util.List<ClassMetaData> metas,
                                                                           ClassMetaData[] path)
        Add the given access path metadatas to the full path list, making sure to maintain only base metadatas in the list. The given list may be null.
      • hintToAggregateListener

        public static AggregateListener hintToAggregateListener​(java.lang.Object hint,
                                                                java.lang.ClassLoader loader)
        Convert the user-given hint value to an aggregate listener. The hint can be an aggregate listener instance or class name.
      • hintToAggregateListeners

        public static AggregateListener[] hintToAggregateListeners​(java.lang.Object hint,
                                                                   java.lang.ClassLoader loader)
        Convert the user-given hint value to an array of aggregate listeners. The hint can be an aggregate listener, aggregate listener array, collection, or comma-separated class names.
      • hintToFilterListener

        public static FilterListener hintToFilterListener​(java.lang.Object hint,
                                                          java.lang.ClassLoader loader)
        Convert the user-given hint value to a filter listener. The hint can be a filter listener instance or class name.
      • hintToFilterListeners

        public static FilterListener[] hintToFilterListeners​(java.lang.Object hint,
                                                             java.lang.ClassLoader loader)
        Convert the user-given hint value to an array of filter listeners. The hint can be a filter listener, filter listener array, collection, or comma-separated class names.
      • hintToGetter

        public static java.lang.Object hintToGetter​(java.lang.Object target,
                                                    java.lang.String hintKey)
        Return the value of the property named by the hint key.
      • hintToSetter

        public static void hintToSetter​(java.lang.Object target,
                                        java.lang.String hintKey,
                                        java.lang.Object value)
        Set the value of the property named by the hint key.
      • parseJDBCTemporalSyntax

        public static java.lang.Object parseJDBCTemporalSyntax​(java.lang.String s)
        Parses the given string assuming it is a JDBC key expression. Extracts the data portion and based on the key, calls static java.sql.Date/Time/Timestamp.valueOf(String) method to convert to a java.sql.Date/Time/Timestamp instance.
      • isJDBCTemporalSyntax

        public static boolean isJDBCTemporalSyntax​(java.lang.String s)
        Affirms if the given String is enclosed in {}.
      • clip

        public static java.lang.String clip​(java.lang.String s,
                                            java.lang.String first,
                                            java.lang.String last,
                                            boolean fail)
        Removes the first and last string if they are the terminal sequence in the given string.
        Parameters:
        s - a string to be examined
        first - the characters in the beginning of the given string
        last - the characters in the end of the given string
        fail - if true throws exception if the given string does not have the given terminal sequences.
        Returns:
        the string with terminal sequences removed.
      • isTemporalType

        public static boolean isTemporalType​(java.lang.Class<?> c)
        Affirms if the given class is Data, Time or Timestamp.
      • getDefaultForNull

        public static java.lang.Object getDefaultForNull​(java.lang.Class<?> nType)