Class InternalUtils


  • public class InternalUtils
    extends java.lang.Object
    Utilities used within various internal implementations of the tapestry-ioc module.
    • Method Detail

      • asString

        public static java.lang.String asString​(java.lang.reflect.Method method,
                                                PlasticProxyFactory proxyFactory)
        Converts a method to a user presentable string using a PlasticProxyFactory to obtain a Location (where possible). asString(Method) is used under the covers, to present a detailed, but not excessive, description of the class, method and parameters.
        Parameters:
        method - method to convert to a string
        proxyFactory - used to obtain the Location
        Returns:
        the method formatted for presentation to the user
      • asString

        public static java.lang.String asString​(java.lang.reflect.Method method)
        Converts a method to a user presentable string consisting of the containing class name, the method name, and the short form of the parameter list (the class name of each parameter type, shorn of the package name portion).
        Parameters:
        method -
        Returns:
        short string representation
      • size

        public static int size​(java.lang.Object[] array)
        Returns the size of an object array, or null if the array is empty.
      • size

        public static int size​(java.util.Collection collection)
      • stripMemberName

        public static java.lang.String stripMemberName​(java.lang.String memberName)
        Strips leading "_" and "$" and trailing "_" from the name.
      • toList

        public static java.util.List<java.lang.String> toList​(java.util.Enumeration e)
        Converts an enumeration (of Strings) into a sorted list of Strings.
      • findAnnotation

        public static <T extends java.lang.annotation.Annotation> T findAnnotation​(java.lang.annotation.Annotation[] annotations,
                                                                                   java.lang.Class<T> annotationClass)
        Finds a specific annotation type within an array of annotations.
        Type Parameters:
        T -
        Parameters:
        annotations - to search
        annotationClass - to match
        Returns:
        the annotation instance, if found, or null otherwise
      • injectIntoFields

        public static void injectIntoFields​(java.lang.Object object,
                                            ObjectLocator locator,
                                            InjectionResources resources,
                                            OperationTracker tracker)
        Injects into the fields (of all visibilities) when the Inject or InjectService annotations are present.
        Parameters:
        object - to be initialized
        locator - used to resolve external dependencies
        resources - provides injection resources for fields
        tracker - track operations
      • join

        public static java.lang.String join​(java.util.List elements)
        Joins together some number of elements to form a comma separated list.
      • join

        public static java.lang.String join​(java.util.List elements,
                                            java.lang.String separator)
        Joins together some number of elements. If a value in the list is the empty string, it is replaced with the string "(blank)".
        Parameters:
        elements - objects to be joined together
        separator - used between elements when joining
      • joinSorted

        public static java.lang.String joinSorted​(java.util.Collection elements)
        Creates a sorted copy of the provided elements, then turns that into a comma separated list.
        Returns:
        the elements converted to strings, sorted, joined with comma ... or "(none)" if the elements are null or empty
      • isBlank

        public static boolean isBlank​(java.lang.String input)
        Returns true if the input is null, or is a zero length string (excluding leading/trailing whitespace).
      • isEmptyCollection

        public static boolean isEmptyCollection​(java.lang.Object input)
        Returns true if the input is an empty collection.
      • isNonBlank

        public static boolean isNonBlank​(java.lang.String input)
      • capitalize

        public static java.lang.String capitalize​(java.lang.String input)
        Capitalizes a string, converting the first character to uppercase.
      • locationOf

        public static Location locationOf​(java.lang.Object location)
        Sniffs the object to see if it is a Location or Locatable. Returns null if null or not convertable to a location.
      • keys

        public static <K,​V> java.util.Set<K> keys​(java.util.Map<K,​V> map)
      • get

        public static <K,​V> V get​(java.util.Map<K,​V> map,
                                        K key)
        Gets a value from a map (which may be null).
        Type Parameters:
        K -
        V -
        Parameters:
        map - the map to extract from (may be null)
        key -
        Returns:
        the value from the map, or null if the map is null
      • isStatic

        public static boolean isStatic​(java.lang.reflect.Method method)
        Returns true if the method provided is a static method.
      • reverseIterator

        public static <T> java.util.Iterator<T> reverseIterator​(java.util.List<T> list)
      • containsSymbols

        public static boolean containsSymbols​(java.lang.String input)
        Return true if the input string contains the marker for symbols that must be expanded.
      • lastTerm

        public static java.lang.String lastTerm​(java.lang.String input)
        Searches the string for the final period ('.') character and returns everything after that. The input string is generally a fully qualified class name, though tapestry-core also uses this method for the occasional property expression (which is also dot separated). Returns the input string unchanged if it does not contain a period character.
      • findAutobuildConstructor

        public static java.lang.reflect.Constructor findAutobuildConstructor​(java.lang.Class clazz)
        Searches a class for the "best" constructor, the public constructor with the most parameters. Returns null if there are no public constructors. If there is more than one constructor with the maximum number of parameters, it is not determined which will be returned (don't build a class like that!). In addition, if a constructor is annotated with Inject, it will be used (no check for multiple such constructors is made, only at most a single constructor should have the annotation).
        Parameters:
        clazz - to search for a constructor for
        Returns:
        the constructor to be used to instantiate the class, or null if no appropriate constructor was found
      • addToMapList

        public static <K,​V> void addToMapList​(java.util.Map<K,​java.util.List<V>> map,
                                                    K key,
                                                    V value)
        Adds a value to a specially organized map where the values are lists of objects. This somewhat simulates a map that allows multiple values for the same key.
        Type Parameters:
        K - the type of key
        V - the type of the list
        Parameters:
        map - to store value into
        key - for which a value is added
        value - to add
      • validateMarkerAnnotation

        public static void validateMarkerAnnotation​(java.lang.Class markerClass)
        Validates that the marker annotation class had a retention policy of runtime.
        Parameters:
        markerClass - the marker annotation class
      • close

        public static void close​(java.io.Closeable stream)
      • toMessage

        public static java.lang.String toMessage​(java.lang.Throwable exception)
        Deprecated.
        Deprecated in 5.4; use ExceptionUtils.toMessage(Throwable) instead.
        Extracts the message from an exception. If the exception's message is null, returns the exceptions class name.
        Parameters:
        exception - to extract message from
        Returns:
        message or class name
      • findMethod

        public static final java.lang.reflect.Method findMethod​(java.lang.Class containingClass,
                                                                java.lang.String methodName,
                                                                java.lang.Class... parameterTypes)
      • matchAndSort

        public static <T extends java.lang.Comparable<T>> java.util.List<T> matchAndSort​(java.util.Collection<? extends T> collection,
                                                                                         Predicate<T> predicate)
        Since:
        5.2.0
      • isLocalFile

        public static boolean isLocalFile​(java.lang.Class clazz)
        Determines if the indicated class is stored as a locally accessible file (and not, typically, as a file inside a JAR). This is related to automatic reloading of services.
        Since:
        5.2.0
      • nextUUID

        public static long nextUUID()
        Generates a unique value for the current execution of the application. This initial UUID value is not easily predictable; subsequent UUIDs are allocated in ascending series.
        Since:
        5.2.0
      • getServiceId

        public static java.lang.String getServiceId​(java.lang.reflect.AnnotatedElement annotated)
        Extracts the service id from the passed annotated element. First the ServiceId annotation is checked. If present, its value is returned. Otherwise Named annotation is checked. If present, its value is returned. If neither of the annotations is present, null value is returned
        Parameters:
        annotated - annotated element to get annotations from
        Since:
        5.3
      • sortedKeys

        public static java.util.List<java.lang.String> sortedKeys​(java.util.Map map)
        Extracts the string keys from a map and returns them in sorted order. The keys are converted to strings.
        Parameters:
        map - the map to extract keys from (may be null)
        Returns:
        the sorted keys, or the empty set if map is null
      • toUserPresentable

        public static java.lang.String toUserPresentable​(java.lang.String id)
        Capitalizes the string, and inserts a space before each upper case character (or sequence of upper case characters). Thus "userId" becomes "User Id", etc. Also, converts underscore into space (and capitalizes the following word), thus "user_id" also becomes "User Id".
      • extractIdFromPropertyExpression

        public static java.lang.String extractIdFromPropertyExpression​(java.lang.String expression)
        Used to convert a property expression into a key that can be used to locate various resources (Blocks, messages, etc.). Strips out any punctuation characters, leaving just words characters (letters, number and the underscore).
        Parameters:
        expression - a property expression
        Returns:
        the expression with punctuation removed
      • defaultLabel

        public static java.lang.String defaultLabel​(java.lang.String id,
                                                    Messages messages,
                                                    java.lang.String propertyExpression)
        Looks for a label within the messages based on the id. If found, it is used, otherwise the name is converted to a user presentable form.
      • replace

        public static java.lang.String replace​(java.lang.String input,
                                               java.util.regex.Pattern pattern,
                                               java.lang.String replacement)