public class GrailsNameUtils extends java.lang.Object
Utility methods for converting between different name types, for example from class names -> property names and vice-versa. The key aspect of this class is that it has no dependencies outside the JDK!
Modifiers | Name | Description |
---|---|---|
private static java.lang.String |
PROPERTY_GET_PREFIX |
|
private static java.lang.String |
PROPERTY_SET_PREFIX |
Constructor and description |
---|
private GrailsNameUtils
() |
Type Params | Return Type | Name and description |
---|---|---|
|
static java.lang.String |
convertValidPropertyMethodSuffix(java.lang.String suffix) This method functions the same as isPropertyMethodSuffix(String), but in addition returns the property name, or null if not a valid property. |
|
public 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. |
|
public static java.lang.String |
getClassName(java.lang.String logicalName) Return the class name for the given logical name. |
|
private static java.lang.String |
getClassNameForLowerCaseHyphenSeparatedName(java.lang.String name) Converts foo-bar into FooBar. |
|
public static java.lang.String |
getClassNameRepresentation(java.lang.String name) Returns the class name representation of the given name |
|
public static java.lang.String |
getFullClassName(java.lang.Class cls) Returns the class name, including package, for the given class. |
|
public static java.lang.String |
getFullClassName(java.lang.String className) Returns the class name, including package, for the given class. |
|
public static java.lang.String |
getGetterName(java.lang.String propertyName) Calculate the name for a getter method to retrieve the specified property |
|
public 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. |
|
public static java.lang.String |
getLogicalName(java.lang.String name, java.lang.String trailingName) Retrieves the logical name of the class without the trailing name |
|
public static java.lang.String |
getLogicalPropertyName(java.lang.String className, java.lang.String trailingName) |
|
public static java.lang.String |
getNameFromScript(java.lang.String scriptName) Calculates the class name from a script name in the form my-funk-grails-script. |
|
public static java.lang.String |
getNaturalName(java.lang.String name) Converts a property name into its natural language equivalent eg ('firstName' becomes 'First Name') |
|
public static java.lang.String |
getPackageName(java.lang.String className) Returns the package prefix without the class name eg ('a.b.ClassName' becomes 'a.b'). |
|
public static java.lang.String |
getPluginName(java.lang.String descriptorName) Returns the name of a plugin given the name of the *GrailsPlugin.groovy descriptor file. |
|
public 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 valid getter. |
|
public static java.lang.String |
getPropertyForGetter(java.lang.String getterName, java.lang.Class returnType) Returns a property name equivalent for the given getter name and return type or null if it is not a valid getter. |
|
public static java.lang.String |
getPropertyForGetter(java.lang.String getterName, java.lang.String returnType) Returns a property name equivalent for the given getter name and return type or null if it is not a valid getter. |
|
public 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 valid setter. |
|
public static java.lang.String |
getPropertyName(java.lang.String name) Shorter version of getPropertyNameRepresentation. |
|
public static java.lang.String |
getPropertyName(java.lang.Class<?> clazz) Shorter version of getPropertyNameRepresentation. |
|
public static java.lang.String |
getPropertyNameConvention(java.lang.Object object) Returns an appropriate property name for the given object. |
|
public static java.lang.String |
getPropertyNameConvention(java.lang.Object object, java.lang.String suffix) Returns an appropriate property name for the given object. |
|
public static java.lang.String |
getPropertyNameForLowerCaseHyphenSeparatedName(java.lang.String name) Converts foo-bar into fooBar. |
|
public static java.lang.String |
getPropertyNameRepresentation(java.lang.Class<?> targetClass) Returns the property name equivalent for the specified class. |
|
public static java.lang.String |
getPropertyNameRepresentation(java.lang.String name) Returns the property name representation of the given name. |
|
public static java.lang.String |
getScriptName(java.lang.Class<?> clazz) Retrieves the script name representation of the supplied class. |
|
public static java.lang.String |
getScriptName(java.lang.String name) Retrieves the script name representation of the given class name. |
|
public static java.lang.String |
getSetterName(java.lang.String propertyName) Retrieves the name of a setter for the specified property name |
|
public static java.lang.String |
getShortName(java.lang.Class<?> targetClass) Returns the class name without the package prefix. |
|
public static java.lang.String |
getShortName(java.lang.String className) Returns the class name without the package prefix. |
|
private static java.lang.String |
getSuffixForGetterOrSetter(java.lang.String propertyName) |
|
public static boolean |
isBlank(java.lang.String str) |
|
public 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 getter. |
|
public static boolean |
isGetter(java.lang.String name, java.lang.Class returnType, java.lang.Class<?>[] args) Returns true if the name of the method specified and the number of arguments make it a javabean property getter. |
|
protected static boolean |
isPropertyMethodSuffix(java.lang.String suffix) This method is used when interrogating a method name to determine if the method represents a property getter. |
|
public static boolean |
isValidJavaIdentifier(java.lang.String name) Test whether the given name is a valid Java identifier |
|
public static boolean |
isValidJavaPackage(java.lang.String packageName) Test whether the give package name is a valid Java package |
Methods inherited from class | Name |
---|---|
class java.lang.Object |
java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#wait(long), 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() |
This method functions the same as isPropertyMethodSuffix(String), but in addition returns the property name, or null if not a valid property.
suffix
- The suffix to inspectReturns 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 nameReturn the class name for the given logical name. For example "person" would evaluate to "Person"
logicalName
- The logical nameConverts foo-bar into FooBar. Empty and null strings are returned as-is.
name
- The lower case hyphen separated nameReturns the class name representation of the given name
name
- The name to convertReturns the class name, including package, for the given class. This method will deals with proxies and closures.
cls
- The class nameReturns the class name, including package, for the given class. This method will deals with proxies and closures.
className
- The class nameCalculate 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 convertReturns the package prefix without the class name eg ('a.b.ClassName' becomes 'a.b').
className
- The class name to get the package prefix forReturns the name of a plugin given the name of the *GrailsPlugin.groovy descriptor file. For example, "DbUtilsGrailsPlugin.groovy" gives "db-utils".
descriptorName
- The simple name of the plugin descriptor.null
if descriptorName is null
, or an empty string
if descriptorName is an empty string.Returns a property name equivalent for the given getter name or null if it is not a valid getter. If not null or empty the getter name is assumed to be a valid identifier.
getterName
- The getter nameReturns a property name equivalent for the given getter name and return type or null if it is not a valid getter. If not null or empty the getter name is assumed to be a valid identifier.
getterName
- The getter namereturnType
- The type the method returnsReturns a property name equivalent for the given getter name and return type or null if it is not a valid getter. If not null or empty the getter name is assumed to be a valid identifier.
getterName
- The getter namereturnType
- The type the method returnsReturns a property name equivalent for the given setter name or null if it is not a valid setter. If not null or empty the setter name is assumed to be a valid identifier.
setterName
- The setter name, must be null or empty or a valid identifier nameShorter version of getPropertyNameRepresentation.
name
- The name to convertShorter version of getPropertyNameRepresentation.
clazz
- The clazz to convertReturns an appropriate property name for the given object. If the object is a collection will append List, Set, Collection or Map to the property name
object
- The objectReturns an appropriate property name for the given object. If the object is a collection will append List, Set, Collection or Map to the property name
object
- The objectsuffix
- The suffix to append to the name.Converts 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 convertRetrieves the script name representation of the supplied class. For example MyFunkyGrailsScript would be my-funky-grails-script.
clazz
- The class to convertRetrieves the script name representation of the given class name. For example MyFunkyGrailsScript would be my-funky-grails-script.
name
- The class name to convert.Retrieves 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
Determines whether a given string is null
, empty,
or only contains whitespace. If it contains anything other than
whitespace then the string is not considered to be blank and the
method returns false
.
We could use Commons Lang for this, but we don't want GrailsNameUtils to have a dependency on any external library to minimise the number of dependencies required to bootstrap Grails.
str
- The string to test.true
if the string is null
, or
blank.Returns true if the name of the method specified and the number of arguments make it a javabean property getter. The name is assumed to be a valid Java method name, that is not verified.
name
- The name of the methodargs
- The argumentsReturns true if the name of the method specified and the number of arguments make it a javabean property getter. The name is assumed to be a valid Java method name, that is not verified.
name
- The name of the methodreturnType
- The return type of the methodargs
- The arguments This method is used when interrogating a method name to determine if the
method represents a property getter. For example, if a method is named
getSomeProperty
, the value "SomeProperty"
could
be passed to this method to determine that the method should be considered
a property getter. Examples of suffixes that would be considered property
getters:
prop
from a method getprop()
is
not recognized as a valid suffix. However Groovy will recognize such a
method as a property getter but only if a method getProp()
or
a property prop
does not also exist. The Java Beans
specification is unclear on how to treat such method names, it only says
that "by default" the suffix will start with a capital letter because of
the camel case style usually used. (See the JavaBeans API specification
sections 8.3 and 8.8.)
This method assumes that all characters in the name are valid Java identifier
letters.
suffix
- The suffix to inspectTest whether the given name is a valid Java identifier
name
- The nameTest whether the give package name is a valid Java package
packageName
- The name of the package