Package org.apache.tapestry5.plastic
Class PlasticUtils
java.lang.Object
org.apache.tapestry5.plastic.PlasticUtils
Utilities for user code making use of Plastic.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classClass used to represent a field name and its type for implementFieldValueProvider(PlasticClass, Set). -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final MethodThetoString()method inherited from Object.static final MethodDescriptionThe MethodDescription version oftoString(). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringgetEnclosingClassName(String className) If the given class is an inner class, returns the enclosing class.static MethodConvenience for getting a method from a class.static MethodDescriptiongetMethodDescription(Class declaringClass, String name, Class... parameterTypes) UsesgetMethod(Class, String, Class...)and wraps the result as aMethodDescription.static voidimplementFieldValueProvider(PlasticClass plasticClass, Set<PlasticUtils.FieldInfo> fieldInfos) Transforms this PlasticClass so it implements FieldValueProvider for the given set of field names.static voidimplementPropertyValueProvider(PlasticClass plasticClass, Set<PlasticUtils.FieldInfo> fieldInfos) Transforms this PlasticClass so it implements PropertyValueProvider for the given set of field names.static booleanisPrimitive(String typeName) Determines if the provided type name is a primitive type.static 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 StringtoTypeName(Class type) Converts a type (including array and primitive types) to their type name (the way they are represented in Java source files).static String[]toTypeNames(Class[] types) Converts a number of types (usually, arguments to a method or constructor) into their type names.static ClasstoWrapperType(Class type) Gets the wrapper type for a given type (if primitive)
-
Field Details
-
TO_STRING
ThetoString()method inherited from Object. -
TO_STRING_DESCRIPTION
The MethodDescription version oftoString().
-
-
Constructor Details
-
PlasticUtils
public PlasticUtils()
-
-
Method Details
-
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
Converts a type (including array and primitive types) to their type name (the way they are represented in Java source files). -
toTypeNames
Converts a number of types (usually, arguments to a method or constructor) into their type names. -
toWrapperType
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
Convenience for getting a method from a class.- Parameters:
declaringClass- containing classname- name of methodparameterTypes- types of parameters- Returns:
- the Method
- Throws:
RuntimeException- if any error (such as method not found)
-
getMethodDescription
public static MethodDescription getMethodDescription(Class declaringClass, String name, 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:
RuntimeException- if any error (such as method not found)
-
isPrimitive
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
If the given class is an inner class, returns the enclosing class. Otherwise, returns the class name unchanged. -
toFieldInfo
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, 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, 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
-