org.apache.tapestry5.ioc.internal.util
Class InternalUtils

java.lang.Object
  extended by org.apache.tapestry5.ioc.internal.util.InternalUtils

public class InternalUtils
extends java.lang.Object

Utilities used within various internal implementations of the tapestry-ioc module.


Field Summary
static boolean SERVICE_CLASS_RELOADING_ENABLED
           
 
Constructor Summary
InternalUtils()
           
 
Method Summary
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.
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).
static java.lang.String asString(java.lang.reflect.Method method, ClassFactory classFactory)
          Converts a method to a user presentable string using a ClassFactory to obtain a Location (where possible).
static java.lang.Object[] calculateParameters(ObjectLocator locator, InjectionResources resources, java.lang.Class[] parameterTypes, java.lang.reflect.Type[] genericTypes, java.lang.annotation.Annotation[][] parameterAnnotations, OperationTracker tracker)
           
static java.lang.Object[] calculateParametersForConstructor(java.lang.reflect.Constructor constructor, ObjectLocator locator, InjectionResources resources, OperationTracker tracker)
           
static java.lang.Object[] calculateParametersForMethod(java.lang.reflect.Method method, ObjectLocator locator, InjectionResources resources, OperationTracker tracker)
           
static java.lang.String capitalize(java.lang.String input)
          Capitalizes a string, converting the first character to uppercase.
static void close(java.io.Closeable stream)
           
static boolean containsSymbols(java.lang.String input)
          Return true if the input string contains the marker for symbols that must be expanded.
static java.lang.String createMemberName(java.lang.String memberName)
          Strips leading characters defined by NAME_PREFIX, then adds the prefix back in.
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.
static java.lang.reflect.Constructor findAutobuildConstructor(java.lang.Class clazz)
          Searches a class for the "best" constructor, the public constructor with the most parameters.
static
<K,V> V
get(java.util.Map<K,V> map, K key)
          Gets a value from a map (which may be null).
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.
static void invokePostInjectionMethods(java.lang.Object object, ObjectLocator locator, InjectionResources injectionResources, OperationTracker tracker)
           
static boolean isBlank(java.lang.String input)
          Returns true if the input is null, or is a zero length string (excluding leading/trailing whitespace).
static boolean isEmptyCollection(java.lang.Object input)
          Returns true if the input is an empty collection.
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).
static boolean isNonBlank(java.lang.String input)
           
static boolean isStatic(java.lang.reflect.Method method)
          Returns true if the method provided is a static method.
static java.lang.String join(java.util.List elements)
          Joins together some number of elements to form a comma separated list.
static java.lang.String join(java.util.List elements, java.lang.String separator)
          Joins together some number of elements.
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.
static
<K,V> java.util.Set<K>
keys(java.util.Map<K,V> map)
           
static java.lang.String lastTerm(java.lang.String input)
          Searches the string for the final period ('.') character and returns everything after that.
static Location locationOf(java.lang.Object location)
          Sniffs the object to see if it is a Location or Locatable.
static
<T extends java.lang.Comparable<T>>
java.util.List<T>
matchAndSort(java.util.Collection<? extends T> collection, Predicate<T> predicate)
           
static long nextUUID()
          Generates a unique value for the current execution of the application.
static
<T> java.util.Iterator<T>
reverseIterator(java.util.List<T> list)
           
static int size(java.util.Collection collection)
           
static int size(java.lang.Object[] array)
          Returns the size of an object array, or null if the array is empty.
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.
static java.lang.String stripMemberName(java.lang.String memberName)
          Strips leading "_" and "$" and trailing "_" from the name.
static AdvisorDef2 toAdvisorDef2(AdvisorDef advisor)
           
static ContributionDef2 toContributionDef2(ContributionDef contribution)
           
static DecoratorDef2 toDecoratorDef2(DecoratorDef decorator)
           
static InternalServiceDef toInternalServiceDef(ServiceDef sd)
           
static java.util.List<java.lang.String> toList(java.util.Enumeration e)
          Converts an enumeration (of Strings) into a sorted list of Strings.
static
<S,T> Mapper<S,T>
toMapper(Coercion<S,T> coercion)
          Wraps a as a Mapper.
static java.lang.String toMessage(java.lang.Throwable exception)
          Extracts the message from an exception.
static ModuleDef2 toModuleDef2(ModuleDef md)
           
static ServiceDef2 toServiceDef2(ServiceDef sd)
           
static ServiceLifecycle2 toServiceLifecycle2(ServiceLifecycle lifecycle)
           
static void validateConstructorForAutobuild(java.lang.reflect.Constructor constructor)
           
static void validateMarkerAnnotation(java.lang.Class markerClass)
          Validates that the marker annotation class had a retention policy of runtime.
static void validateMarkerAnnotations(java.lang.Class[] markerClasses)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SERVICE_CLASS_RELOADING_ENABLED

public static final boolean SERVICE_CLASS_RELOADING_ENABLED
Since:
5.2.2
Constructor Detail

InternalUtils

public InternalUtils()
Method Detail

asString

public static java.lang.String asString(java.lang.reflect.Method method,
                                        ClassFactory classFactory)
Converts a method to a user presentable string using a ClassFactory 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
classFactory - 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.


createMemberName

public static java.lang.String createMemberName(java.lang.String memberName)
Strips leading characters defined by NAME_PREFIX, then adds the prefix back in.


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

calculateParametersForMethod

public static java.lang.Object[] calculateParametersForMethod(java.lang.reflect.Method method,
                                                              ObjectLocator locator,
                                                              InjectionResources resources,
                                                              OperationTracker tracker)

calculateParametersForConstructor

public static java.lang.Object[] calculateParametersForConstructor(java.lang.reflect.Constructor constructor,
                                                                   ObjectLocator locator,
                                                                   InjectionResources resources,
                                                                   OperationTracker tracker)

calculateParameters

public static java.lang.Object[] calculateParameters(ObjectLocator locator,
                                                     InjectionResources resources,
                                                     java.lang.Class[] parameterTypes,
                                                     java.lang.reflect.Type[] genericTypes,
                                                     java.lang.annotation.Annotation[][] parameterAnnotations,
                                                     OperationTracker tracker)

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

invokePostInjectionMethods

public static void invokePostInjectionMethods(java.lang.Object object,
                                              ObjectLocator locator,
                                              InjectionResources injectionResources,
                                              OperationTracker tracker)

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.


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

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

validateMarkerAnnotations

public static void validateMarkerAnnotations(java.lang.Class[] markerClasses)

close

public static void close(java.io.Closeable stream)

toMessage

public static java.lang.String toMessage(java.lang.Throwable exception)
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

validateConstructorForAutobuild

public static void validateConstructorForAutobuild(java.lang.reflect.Constructor constructor)

toInternalServiceDef

public static InternalServiceDef toInternalServiceDef(ServiceDef sd)

toServiceDef2

public static ServiceDef2 toServiceDef2(ServiceDef sd)

toModuleDef2

public static ModuleDef2 toModuleDef2(ModuleDef md)

toServiceLifecycle2

public static ServiceLifecycle2 toServiceLifecycle2(ServiceLifecycle lifecycle)
Since:
5.1.0.2

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

toContributionDef2

public static ContributionDef2 toContributionDef2(ContributionDef contribution)
Since:
5.2.0

toAdvisorDef2

public static AdvisorDef2 toAdvisorDef2(AdvisorDef advisor)
Since:
5.2.2

toDecoratorDef2

public static DecoratorDef2 toDecoratorDef2(DecoratorDef decorator)
Since:
5.2.2

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

toMapper

public static <S,T> Mapper<S,T> toMapper(Coercion<S,T> coercion)
Wraps a as a Mapper.

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


Copyright © 2006-2010 Apache Software Foundation. All Rights Reserved.