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 classPlasticUtils.FieldInfoClass 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.MethodTO_STRINGThetoString()method inherited from Object.static MethodDescriptionTO_STRING_DESCRIPTIONThe 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.StringgetEnclosingClassName(java.lang.String className)If the given class is an inner class, returns the enclosing class.static java.lang.reflect.MethodgetMethod(java.lang.Class declaringClass, java.lang.String name, java.lang.Class... parameterTypes)Convenience for getting a method from a class.static MethodDescriptiongetMethodDescription(java.lang.Class declaringClass, java.lang.String name, java.lang.Class... parameterTypes)UsesgetMethod(Class, String, Class...)and wraps the result as aMethodDescription.static voidimplementFieldValueProvider(PlasticClass plasticClass, java.util.Set<PlasticUtils.FieldInfo> fieldInfos)Transforms this PlasticClass so it implements FieldValueProvider for the given set of field names.static voidimplementPropertyValueProvider(PlasticClass plasticClass, java.util.Set<PlasticUtils.FieldInfo> fieldInfos)Transforms this PlasticClass so it implements PropertyValueProvider for the given set of field names.static booleanisPrimitive(java.lang.String typeName)Determines if the provided type name is a primitive type.static java.lang.StringnextUID()Returns a string that can be used as part of a Java identifier and is unique for this JVM.static PlasticUtils.FieldInfotoFieldInfo(PlasticField field)Utility method for creating PlasticUtils.FieldInfo instances.static java.lang.StringtoTypeName(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.ClasstoWrapperType(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
-
-