Package org.apache.tapestry5.plastic
Class PlasticUtils
- java.lang.Object
-
- org.apache.tapestry5.plastic.PlasticUtils
-
public class PlasticUtils extends java.lang.Object
Utilities for user code making use of Plastic.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PlasticUtils.FieldInfo
Class used to represent a field name and its type for implementFieldValueProvider(PlasticClass, Set).
-
Field Summary
Fields Modifier and Type Field Description static java.lang.reflect.Method
TO_STRING
ThetoString()
method inherited from Object.static MethodDescription
TO_STRING_DESCRIPTION
The MethodDescription version oftoString()
.
-
Constructor Summary
Constructors Constructor Description PlasticUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.String
getEnclosingClassName(java.lang.String className)
If the given class is an inner class, returns the enclosing class.static java.lang.reflect.Method
getMethod(java.lang.Class declaringClass, java.lang.String name, java.lang.Class... parameterTypes)
Convenience for getting a method from a class.static MethodDescription
getMethodDescription(java.lang.Class declaringClass, java.lang.String name, java.lang.Class... parameterTypes)
UsesgetMethod(Class, String, Class...)
and wraps the result as aMethodDescription
.static void
implementFieldValueProvider(PlasticClass plasticClass, java.util.Set<PlasticUtils.FieldInfo> fieldInfos)
Transforms this PlasticClass so it implements FieldValueProvider for the given set of field names.static void
implementPropertyValueProvider(PlasticClass plasticClass, java.util.Set<PlasticUtils.FieldInfo> fieldInfos)
Transforms this PlasticClass so it implements PropertyValueProvider for the given set of field names.static boolean
isPrimitive(java.lang.String typeName)
Determines if the provided type name is a primitive type.static java.lang.String
nextUID()
Returns a string that can be used as part of a Java identifier and is unique for this JVM.static PlasticUtils.FieldInfo
toFieldInfo(PlasticField field)
Utility method for creating PlasticUtils.FieldInfo instances.static java.lang.String
toTypeName(java.lang.Class type)
Converts a type (including array and primitive types) to their type name (the way they are represented in Java source files).static java.lang.String[]
toTypeNames(java.lang.Class[] types)
Converts a number of types (usually, arguments to a method or constructor) into their type names.static java.lang.Class
toWrapperType(java.lang.Class type)
Gets the wrapper type for a given type (if primitive)
-
-
-
Field Detail
-
TO_STRING
public static final java.lang.reflect.Method TO_STRING
ThetoString()
method inherited from Object.
-
TO_STRING_DESCRIPTION
public static final MethodDescription TO_STRING_DESCRIPTION
The MethodDescription version oftoString()
.
-
-
Constructor Detail
-
PlasticUtils
public PlasticUtils()
-
-
Method Detail
-
nextUID
public static java.lang.String nextUID()
Returns a string that can be used as part of a Java identifier and is unique for this JVM. Currently returns a hexadecimal string and initialized by System.nanoTime() (but both those details may change in the future). Note that the returned value may start with a numeric digit, so it should be used as a suffix, not prefix of a Java identifier.- Returns:
- unique id that can be used as part of a Java identifier
-
toTypeName
public static java.lang.String toTypeName(java.lang.Class type)
Converts a type (including array and primitive types) to their type name (the way they are represented in Java source files).
-
toTypeNames
public static java.lang.String[] toTypeNames(java.lang.Class[] types)
Converts a number of types (usually, arguments to a method or constructor) into their type names.
-
toWrapperType
public static java.lang.Class toWrapperType(java.lang.Class type)
Gets the wrapper type for a given type (if primitive)- Parameters:
type
- type to look up- Returns:
- the input type for non-primitive type, or corresponding wrapper type (Boolean.class for boolean.class, etc.)
-
getMethod
public static java.lang.reflect.Method getMethod(java.lang.Class declaringClass, java.lang.String name, java.lang.Class... parameterTypes)
Convenience for getting a method from a class.- Parameters:
declaringClass
- containing classname
- name of methodparameterTypes
- types of parameters- Returns:
- the Method
- Throws:
java.lang.RuntimeException
- if any error (such as method not found)
-
getMethodDescription
public static MethodDescription getMethodDescription(java.lang.Class declaringClass, java.lang.String name, java.lang.Class... parameterTypes)
UsesgetMethod(Class, String, Class...)
and wraps the result as aMethodDescription
.- Parameters:
declaringClass
- containing classname
- name of methodparameterTypes
- types of parameters- Returns:
- description for method
- Throws:
java.lang.RuntimeException
- if any error (such as method not found)
-
isPrimitive
public static boolean isPrimitive(java.lang.String typeName)
Determines if the provided type name is a primitive type.- Parameters:
typeName
- Java type name, such as "boolean" or "java.lang.String"- Returns:
- true if primitive
-
getEnclosingClassName
public static java.lang.String getEnclosingClassName(java.lang.String className)
If the given class is an inner class, returns the enclosing class. Otherwise, returns the class name unchanged.
-
toFieldInfo
public static PlasticUtils.FieldInfo toFieldInfo(PlasticField field)
Utility method for creating PlasticUtils.FieldInfo instances.- Parameters:
field
- a PlasticField.- Returns:
- a corresponding PlasticUtils.FieldInfo.
- Since:
- 5.8.4
-
implementFieldValueProvider
public static void implementFieldValueProvider(PlasticClass plasticClass, java.util.Set<PlasticUtils.FieldInfo> fieldInfos)
Transforms this PlasticClass so it implements FieldValueProvider for the given set of field names. Notice attempts to read a superclass' private field will result in an IllegalAccessError.- Parameters:
plasticClass
- a PlasticClass instance.fieldInfos
- a Set of Strings containing the field names.- Since:
- 5.8.4
-
implementPropertyValueProvider
public static void implementPropertyValueProvider(PlasticClass plasticClass, java.util.Set<PlasticUtils.FieldInfo> fieldInfos)
Transforms this PlasticClass so it implements PropertyValueProvider for the given set of field names. The implementation will use the fields' corresponding getters instead of direct fields access.- Parameters:
plasticClass
- a PlasticClass instance.fieldInfos
- a Set of Strings containing the filed (i.e. property) names.- Since:
- 5.8.4
-
-