Utility methods for dealing with Grails class artifacts.
Modifiers | Name | Description |
---|---|---|
static java.util.Map<java.lang.Class<?>, java.lang.Class<?>> |
PRIMITIVE_TYPE_COMPATIBLE_CLASSES |
Type | Name and description |
---|---|
static java.lang.Object[] |
collectionToObjectArray(java.util.Collection c) Convenience method for converting a collection to an Object[] |
static java.util.Collection |
createConcreteCollection(java.lang.Class interfaceType) Creates a concrete collection for the suppied interface |
static java.lang.String |
findPropertyNameForValue(java.lang.Object target, java.lang.Object obj) Locates the name of a property for the given value on the target object using Groovy's meta APIs. |
static java.lang.Class[] |
getAllInterfaces(java.lang.Object instance) Return all interfaces that the given instance implements as array, including ones implemented by superclasses. |
static java.util.Set<java.lang.Class> |
getAllInterfacesAsSet(java.lang.Object instance) Return all interfaces that the given instance implements as Set, including ones implemented by superclasses. |
static java.lang.Class<?>[] |
getAllInterfacesForClass(java.lang.Class<?> clazz) Return all interfaces that the given class implements as array, including ones implemented by superclasses. |
static java.lang.Class<?>[] |
getAllInterfacesForClass(java.lang.Class<?> clazz, java.lang.ClassLoader classLoader) Return all interfaces that the given class implements as array, including ones implemented by superclasses. |
static java.util.Set<java.lang.Class> |
getAllInterfacesForClassAsSet(java.lang.Class clazz) Return all interfaces that the given class implements as Set, including ones implemented by superclasses. |
static java.util.Set<java.lang.Class> |
getAllInterfacesForClassAsSet(java.lang.Class clazz, java.lang.ClassLoader classLoader) Return all interfaces that the given class implements as Set, including ones implemented by superclasses. |
static boolean |
getBooleanFromMap(java.lang.String key, java.util.Map<?, ?> map) Retrieves a boolean value from a Map for the given key |
static java.lang.String |
getClassName(java.lang.String logicalName, java.lang.String trailingName) Returns the class name for the given logical name and trailing name. |
static java.lang.String |
getClassNameRepresentation(java.lang.String name) Returns the class name representation of the given name |
static groovy.lang.MetaClass |
getExpandoMetaClass(java.lang.Class clazz) |
static java.lang.Object |
getFieldValue(java.lang.Object obj, java.lang.String name) Get the value of a declared field on an object |
static java.lang.String |
getGetterName(java.lang.String propertyName) Calculate the name for a getter method to retrieve the specified property |
static java.lang.String |
getLogicalName(java.lang.Class clazz, java.lang.String trailingName) Retrieves the logical class name of a Grails artifact given the Grails class and a specified trailing name |
static java.lang.String |
getLogicalName(java.lang.String name, java.lang.String trailingName) Retrieves the logical name of the class without the trailing name |
static java.lang.String |
getLogicalPropertyName(java.lang.String className, java.lang.String trailingName) @deprecated Use GrailsNameUtils.getLogicalPropertyName instead. |
static java.lang.String |
getNameFromScript(java.lang.String scriptName) Calculates the class name from a script name in the form my-funk-grails-script |
static java.lang.String |
getNaturalName(java.lang.String name) Converts a property name into its natural language equivalent eg ('firstName' becomes 'First Name') |
static java.beans.PropertyDescriptor[] |
getPropertiesAssignableToType(java.lang.Class<?> clazz, java.lang.Class<?> propertySuperType) Retrieves all the properties of the given class which are assignable to the given type |
static java.beans.PropertyDescriptor[] |
getPropertiesOfType(java.lang.Class<?> clazz, java.lang.Class<?> propertyType) Retrieves all the properties of the given class for the given type |
static java.beans.PropertyDescriptor |
getProperty(java.lang.Class<?> clazz, java.lang.String propertyName, java.lang.Class<?> propertyType) Retrieves a property of the given class of the specified name and type |
static java.beans.PropertyDescriptor |
getProperty(java.lang.Class<?> clazz, java.lang.String propertyName) Retrieves a property of the given class of the specified name and type |
static java.beans.PropertyDescriptor |
getPropertyDescriptorForValue(java.lang.Object instance, java.lang.Object propertyValue) Retrieves a PropertyDescriptor for the specified instance and property value |
static java.lang.String |
getPropertyForGetter(java.lang.String getterName) Returns a property name equivalent for the given getter name or null if it is not a getter |
static java.lang.String |
getPropertyForSetter(java.lang.String setterName) Returns a property name equivalent for the given setter name or null if it is not a getter |
static java.lang.String |
getPropertyName(java.lang.String name) Shorter version of getPropertyNameRepresentation |
static java.lang.String |
getPropertyName(java.lang.Class clazz) Shorter version of getPropertyNameRepresentation |
static java.lang.String |
getPropertyNameForLowerCaseHyphenSeparatedName(java.lang.String name) Converts foo-bar into fooBar |
static java.lang.String |
getPropertyNameRepresentation(java.lang.Class targetClass) Returns the property name equivalent for the specified class |
static java.lang.String |
getPropertyNameRepresentation(java.lang.String name) Returns the property name representation of the given name |
static java.lang.Object |
getPropertyOrStaticPropertyOrFieldValue(java.lang.Object obj, java.lang.String name) |
static java.lang.Class<?> |
getPropertyType(java.lang.Class<?> clazz, java.lang.String propertyName) Returns the type of the given property contained within the specified class |
static java.lang.Object |
getPropertyValueOfNewInstance(java.lang.Class clazz, java.lang.String propertyName, java.lang.Class<?> propertyType) Returns the value of the specified property and type from an instance of the specified Grails class |
static java.lang.Object |
getPropertyValueOfNewInstance(java.lang.Class<?> clazz, java.lang.String propertyName) Returns the value of the specified property and type from an instance of the specified Grails class |
static java.lang.String |
getScriptName(java.lang.Class clazz) Retrieves the script name representation of the supplied class. |
static java.lang.String |
getScriptName(java.lang.String name) @deprecated Use GrailsNameUtils.getScriptName instead. |
static java.lang.String |
getSetterName(java.lang.String propertyName) Retrieves the name of a setter for the specified property name |
static java.lang.String |
getShortName(java.lang.Class targetClass) Returns the class name without the package prefix |
static java.lang.String |
getShortName(java.lang.String className) Returns the class name without the package prefix |
static java.lang.Object |
getStaticFieldValue(java.lang.Class<?> clazz, java.lang.String name) |
static java.lang.Object |
getStaticPropertyValue(java.lang.Class<?> clazz, java.lang.String name) |
static java.lang.Boolean |
hasBeenEnhancedForFeature(java.lang.Class<?> controllerClass, java.lang.String featureName) Checks to see if a class is marked with @grails.artefact.Enhanced and if the enhancedFor attribute of the annotation contains a specific feature name |
static java.lang.Object |
instantiateFromConfig(groovy.util.ConfigObject config, java.lang.String configKey, java.lang.String defaultClassName) |
static java.lang.Object |
instantiateFromFlatConfig(java.util.Map<java.lang.String, java.lang.Object> flatConfig, java.lang.String configKey, java.lang.String defaultClassName) |
static boolean |
isAssignableOrConvertibleFrom(java.lang.Class<?> clazz, java.lang.Class<?> type) Returns true if the specified clazz parameter is either the same as, or is a superclass or superinterface of, the specified type parameter. |
static boolean |
isClassBelowPackage(java.lang.Class<?> theClass, java.util.List<?> packageList) Returns whether the specified class is either within one of the specified packages or within a subpackage of one of the packages |
static boolean |
isGetter(java.lang.String name, java.lang.Class<?>[] args) Returns true if the name of the method specified and the number of arguments make it a javabean property |
static boolean |
isGroovyAssignableFrom(java.lang.Class<?> leftType, java.lang.Class<?> rightType) |
static boolean |
isJdk5Enum(java.lang.Class<?> type) Checks whether the given class is a JDK 1.5 enum. |
static boolean |
isMatchBetweenPrimativeAndWrapperTypes(java.lang.Class leftType, java.lang.Class rightType) Detect if left and right types are matching types. |
static boolean |
isPropertyInherited(java.lang.Class clz, java.lang.String propertyName) Checks whether the specified property is inherited from a super class |
static boolean |
isPropertyOfType(java.lang.Class<?> clazz, java.lang.String propertyName, java.lang.Class<?> type) Returns true if the specified property in the specified class is of the specified type |
static boolean |
isPublicField(java.lang.Object obj, java.lang.String name) Work out if the specified object has a public field with the name supplied. |
static boolean |
isPublicStatic(java.lang.reflect.Method m) Determine whether the method is declared public static |
static boolean |
isPublicStatic(java.lang.reflect.Field f) Determine whether the field is declared public static |
static boolean |
isSetter(java.lang.String name, java.lang.Class[] args) |
static boolean |
isStaticProperty(java.lang.Class clazz, java.lang.String propertyName) |
static boolean |
isVisible(java.lang.Class<?> clazz, java.lang.ClassLoader classLoader) Check whether the given class is visible in the given ClassLoader. |
Methods inherited from class | Name |
---|---|
class java.lang.Object |
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Convenience method for converting a collection to an Object[]
c
- The collectionCreates a concrete collection for the suppied interface
interfaceType
- The interfaceLocates the name of a property for the given value on the target object using Groovy's meta APIs. Note that this method uses the reference so the incorrect result could be returned for two properties that refer to the same reference. Use with caution.
target
- The targetobj
- The property valueReturn all interfaces that the given instance implements as array, including ones implemented by superclasses.
instance
- the instance to analyze for interfacesReturn all interfaces that the given instance implements as Set, including ones implemented by superclasses.
instance
- the instance to analyze for interfacesReturn all interfaces that the given class implements as array, including ones implemented by superclasses.
If the class itself is an interface, it gets returned as sole interface.
clazz
- the class to analyze for interfacesReturn all interfaces that the given class implements as array, including ones implemented by superclasses.
If the class itself is an interface, it gets returned as sole interface.
clazz
- the class to analyze for interfacesclassLoader
- the ClassLoader that the interfaces need to be visible in
(may be null
when accepting all declared interfaces)Return all interfaces that the given class implements as Set, including ones implemented by superclasses.
If the class itself is an interface, it gets returned as sole interface.
clazz
- the class to analyze for interfacesReturn all interfaces that the given class implements as Set, including ones implemented by superclasses.
If the class itself is an interface, it gets returned as sole interface.
clazz
- the class to analyze for interfacesclassLoader
- the ClassLoader that the interfaces need to be visible in
(may be null
when accepting all declared interfaces)Retrieves a boolean value from a Map for the given key
key
- The key that references the boolean valuemap
- The map to look inReturns the class name for the given logical name and trailing name. For example "person" and "Controller" would evaluate to "PersonController"
logicalName
- The logical nametrailingName
- The trailing nameReturns the class name representation of the given name
name
- The name to convertGet the value of a declared field on an object
Calculate the name for a getter method to retrieve the specified property
Retrieves the logical class name of a Grails artifact given the Grails class and a specified trailing name
clazz
- The classtrailingName
- The trailing name such as "Controller" or "TagLib"Retrieves the logical name of the class without the trailing name
name
- The name of the classtrailingName
- The trailing nameCalculates the class name from a script name in the form my-funk-grails-script
scriptName
- The script nameConverts a property name into its natural language equivalent eg ('firstName' becomes 'First Name')
name
- The property name to convertRetrieves all the properties of the given class which are assignable to the given type
clazz
- The class to retrieve the properties frompropertySuperType
- The type of the properties you wish to retrieveRetrieves all the properties of the given class for the given type
clazz
- The class to retrieve the properties frompropertyType
- The type of the properties you wish to retrieveRetrieves a property of the given class of the specified name and type
clazz
- The class to retrieve the property frompropertyName
- The name of the propertypropertyType
- The type of the propertyRetrieves a property of the given class of the specified name and type
clazz
- The class to retrieve the property frompropertyName
- The name of the propertyRetrieves a PropertyDescriptor for the specified instance and property value
instance
- The instancepropertyValue
- The value of the propertyReturns a property name equivalent for the given getter name or null if it is not a getter
getterName
- The getter nameReturns a property name equivalent for the given setter name or null if it is not a getter
setterName
- The setter nameShorter version of getPropertyNameRepresentation
name
- The name to convertShorter version of getPropertyNameRepresentation
clazz
- The clazz to convertConverts foo-bar into fooBar
name
- The lower case hyphen separated nameReturns the property name equivalent for the specified class
targetClass
- The class to get the property name forReturns the property name representation of the given name
name
- The name to convert
Looks for a property of the reference instance with a given name.
If found its value is returned. We follow the Java bean conventions with augmentation for groovy support and static fields/properties. We will therefore match, in this order:
Returns the type of the given property contained within the specified class
clazz
- The class which contains the propertypropertyName
- The name of the propertyReturns the value of the specified property and type from an instance of the specified Grails class
clazz
- The name of the class which contains the propertypropertyName
- The property namepropertyType
- The property typeReturns the value of the specified property and type from an instance of the specified Grails class
clazz
- The name of the class which contains the propertypropertyName
- The property nameRetrieves the script name representation of the supplied class. For example MyFunkyGrailsScript would be my-funky-grails-script
clazz
- The class to convertRetrieves the name of a setter for the specified property name
propertyName
- The property nameReturns the class name without the package prefix
targetClass
- The class to get a short name forReturns the class name without the package prefix
className
- The class name to get a short name for
Get a static field value.
clazz
- The class to check for static propertyname
- The field name
Get a static property value, which has a public static getter or is just a public static field.
clazz
- The class to check for static propertyname
- The property nameChecks to see if a class is marked with
controllerClass
- The class to inspectfeatureName
- The name of a feature to check forReturns true if the specified clazz parameter is either the same as, or is a superclass or superinterface of, the specified type parameter. Converts primitive types to compatible class automatically.
Returns whether the specified class is either within one of the specified packages or within a subpackage of one of the packages
theClass
- The classpackageList
- The list of packagesReturns true if the name of the method specified and the number of arguments make it a javabean property
name
- True if its a Javabean propertyargs
- The arguments
Tests whether or not the left hand type is compatible with the right hand type in Groovy terms, i.e. can the left type be assigned a value of the right hand type in Groovy.
This handles Java primitive type equivalence and uses isAssignableFrom for all other types, with a bit of magic for native types and polymorphism i.e. Number assigned an int. If either parameter is null an exception is thrown
leftType
- The type of the left hand part of a notional assignmentrightType
- The type of the right hand part of a notional assignmentChecks whether the given class is a JDK 1.5 enum.
type
- The class to checkDetect if left and right types are matching types. In particular, test if one is a primitive type and the other is the corresponding Java wrapper type. Primitive and wrapper classes may be passed to either arguments.
Checks whether the specified property is inherited from a super class
clz
- The class to checkpropertyName
- The property nameReturns true if the specified property in the specified class is of the specified type
clazz
- The class which contains the propertypropertyName
- The property nametype
- The type to checkWork out if the specified object has a public field with the name supplied.
Determine whether the method is declared public static
Determine whether the field is declared public static
Work out if the specified property is readable and static. Java introspection does not recognize this concept of static properties but Groovy does. We also consider public static fields as static properties with no getters/setters
clazz
- The class to check for static propertypropertyName
- The property nameCheck whether the given class is visible in the given ClassLoader.
clazz
- the class to check (typically an interface)classLoader
- the ClassLoader to check against (may be null
,
in which case this method will always return true
)