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 class
Class used to represent a field name and its type for implementFieldValueProvider(PlasticClass, Set). -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Method
ThetoString()
method inherited from Object.static final MethodDescription
The MethodDescription version oftoString()
. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String
getEnclosingClassName
(String className) If the given class is an inner class, returns the enclosing class.static Method
Convenience for getting a method from a class.static MethodDescription
getMethodDescription
(Class declaringClass, String name, Class... parameterTypes) UsesgetMethod(Class, String, Class...)
and wraps the result as aMethodDescription
.static void
implementFieldValueProvider
(PlasticClass plasticClass, Set<PlasticUtils.FieldInfo> fieldInfos) Transforms this PlasticClass so it implements FieldValueProvider for the given set of field names.static void
implementPropertyValueProvider
(PlasticClass plasticClass, Set<PlasticUtils.FieldInfo> fieldInfos) Transforms this PlasticClass so it implements PropertyValueProvider for the given set of field names.static boolean
isPrimitive
(String typeName) Determines if the provided type name is a primitive type.static 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 String
toTypeName
(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 Class
toWrapperType
(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
-