## grails.util
Class GrailsNameUtils

    java.lang.Object
      grails.util.GrailsNameUtils

    public class GrailsNameUtils

extends Object

Contains 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!

Constructor Summary
`GrailsNameUtils()`

Method Summary
`static String` `getClassName(String logicalName, String trailingName)` Returns the class name for the given logical name and trailing name.
`static String` `getClassNameRepresentation(String name)` Returns the class name representation of the given name
`static String` `getLogicalName(Class clazz, String trailingName)` Retrieves the logical class name of a Grails artifact given the Grails class and a specified trailing name
`static String` `getLogicalName(String name, String trailingName)` Retrieves the logical name of the class without the trailing name
`static String` `getLogicalPropertyName(String className, String trailingName)`
`static String` `getNameFromScript(String scriptName)` Calculates the class name from a script name in the form my-funk-grails-script
`static String` `getNaturalName(String name)` Converts a property name into its natural language equivalent eg ('firstName' becomes 'First Name')
`static String` `getPluginName(String descriptorName)` Returns the name of a plugin given the name of the *GrailsPlugin.groovy descriptor file.
`static String` `getPropertyName(Class clazz)` Shorter version of getPropertyNameRepresentation
`static String` `getPropertyName(String name)` Shorter version of getPropertyNameRepresentation
`static String` `getPropertyNameForLowerCaseHyphenSeparatedName(String name)` Converts foo-bar into fooBar
`static String` `getPropertyNameRepresentation(Class targetClass)` Returns the property name equivalent for the specified class
`static String` `getPropertyNameRepresentation(String name)` Returns the property name representation of the given name
`static String` `getScriptName(Class clazz)` Retrieves the script name representation of the supplied class.
`static String` `getScriptName(String name)` Retrieves the script name representation of the given class name.
`static String` `getShortName(Class targetClass)` Returns the class name without the package prefix
`static String` `getShortName(String className)` Returns the class name without the package prefix
`static boolean` `isBlank(String str)` Determines whether a given string is `null`, empty, or only contains whitespace.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### GrailsNameUtils

    public GrailsNameUtils()

Method Detail

### getClassName

    public static String getClassName(String logicalName,
                                      String trailingName)

  Returns the class name for the given logical name and trailing name. For example "person" and "Controller" would evaluate to "PersonController"

  Parameters:
    `logicalName` - The logical name
    `trailingName` - The trailing name
  Returns:
    The class name

### getClassNameRepresentation

    public static String getClassNameRepresentation(String name)

  Returns the class name representation of the given name

  Parameters:
    `name` - The name to convert
  Returns:
    The property name representation

### getLogicalName

    public static String getLogicalName(Class clazz,
                                        String trailingName)

  Retrieves the logical class name of a Grails artifact given the Grails class and a specified trailing name

  Parameters:
    `clazz` - The class
    `trailingName` - The trailing name such as "Controller" or "TagLib"
  Returns:
    The logical class name

### getLogicalName

    public static String getLogicalName(String name,
                                        String trailingName)

  Retrieves the logical name of the class without the trailing name

  Parameters:
    `name` - The name of the class
    `trailingName` - The trailing name
  Returns:
    The logical name

### getLogicalPropertyName

    public static String getLogicalPropertyName(String className,
                                                String trailingName)

### getPropertyName

    public static String getPropertyName(String name)

  Shorter version of getPropertyNameRepresentation

  Parameters:
    `name` - The name to convert
  Returns:
    The property name version

### getPropertyName

    public static String getPropertyName(Class clazz)

  Shorter version of getPropertyNameRepresentation

  Parameters:
    `clazz` - The clazz to convert
  Returns:
    The property name version

### getPropertyNameRepresentation

    public static String getPropertyNameRepresentation(Class targetClass)

  Returns the property name equivalent for the specified class

  Parameters:
    `targetClass` - The class to get the property name for
  Returns:
    A property name reperesentation of the class name (eg. MyClass becomes myClass)

### getPropertyNameRepresentation

    public static String getPropertyNameRepresentation(String name)

  Returns the property name representation of the given name

  Parameters:
    `name` - The name to convert
  Returns:
    The property name representation

### getPropertyNameForLowerCaseHyphenSeparatedName

    public static String getPropertyNameForLowerCaseHyphenSeparatedName(String name)

  Converts foo-bar into fooBar

  Parameters:
    `name` - The lower case hyphen separated name
  Returns:
    The property name equivalent

### getShortName

    public static String getShortName(Class targetClass)

  Returns the class name without the package prefix

  Parameters:
    `targetClass` - The class to get a short name for
  Returns:
    The short name of the class

### getShortName

    public static String getShortName(String className)

  Returns the class name without the package prefix

  Parameters:
    `className` - The class name to get a short name for
  Returns:
    The short name of the class

### getScriptName

    public static String getScriptName(Class clazz)

  Retrieves the script name representation of the supplied class. For example MyFunkyGrailsScript would be my-funky-grails-script

  Parameters:
    `clazz` - The class to convert
  Returns:
    The script name representation

### getScriptName

    public static String getScriptName(String name)

  Retrieves the script name representation of the given class name. For example MyFunkyGrailsScript would be my-funky-grails-script.

  Parameters:
    `name` - The class name to convert.
  Returns:
    The script name representation.

### getNameFromScript

    public static String getNameFromScript(String scriptName)

  Calculates the class name from a script name in the form my-funk-grails-script

  Parameters:
    `scriptName` - The script name
  Returns:
    A class name

### getPluginName

    public static String getPluginName(String descriptorName)

  Returns the name of a plugin given the name of the *GrailsPlugin.groovy descriptor file. For example, "DbUtilsGrailsPlugin.groovy" gives "db-utils".

  Parameters:
    `descriptorName` - The simple name of the plugin descriptor.
  Returns:
    The plugin name for the descriptor, or `null` if descriptorName is `null`, or an empty string if descriptorName is an empty string.
  Throws:
    `IllegalArgumentException` - if the given descriptor name is not valid, i.e. if it doesn't end with "GrailsPlugin.groovy".

### getNaturalName

    public static String getNaturalName(String name)

  Converts a property name into its natural language equivalent eg ('firstName' becomes 'First Name')

  Parameters:
    `name` - The property name to convert
  Returns:
    The converted property name

### isBlank

    public static boolean isBlank(String str)

  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.

  Parameters:
    `str` - The string to test.
  Returns:
    `true` if the string is `null`, or blank.

Copyright (c) 2005-2009 The Grails project