AbstractGrailsClass (Grails 4.0.0)
Date: 2019-07-11

Package: org.grails.core

## [Java] Class AbstractGrailsClass

- org.grails.core.AbstractGrailsClass

- All Implemented Interfaces and Traits:
    GrailsClass

      public abstract class AbstractGrailsClass
      extends java.lang.Object

  Abstract base class for Grails types that provides common functionality for evaluating conventions within classes.

  Authors:
    Steven Devijver
    Graeme Rocher
  Since:
    0.1

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `protected GrailsApplication` | `grailsApplication` |

  - ### Constructor Summary

    Constructors
    Constructor and description
    `AbstractGrailsClass (java.lang.Class<?> clazz, java.lang.String trailingName)` Used by all child classes to create a new instance and get the name right.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `GrailsApplication` | `getApplication()`
    `` | `java.lang.Class<?>` | `getClazz()`
    `` | `java.lang.String` | `getFullName()`
    `` | `java.lang.String` | `getLogicalPropertyName()`
    `` | `groovy.lang.MetaClass` | `getMetaClass()` @return the metaClass
    `` | `java.util.List<groovy.lang.MetaProperty>` | `getMetaProperties()`
    `` | `java.lang.String` | `getName()`
    `` | `java.lang.String` | `getNaturalName()`
    `` | `java.lang.String` | `getPackageName()`
    `` | `java.lang.String` | `getPluginName()`
    `` | `java.beans.PropertyDescriptor[]` | `getPropertyDescriptors()` @deprecated Use getMetaProperties() instead
    `` | `java.lang.String` | `getPropertyName()`
    `<T>` | `protected T` | `getPropertyOrStaticPropertyOrFieldValue(java.lang.String name, java.lang.Class<T> type)`
    `` | `java.lang.Class<?>` | `getPropertyType(java.lang.String typeName)`
    `<T>` | `T` | `getPropertyValue(java.lang.String propName, java.lang.Class<T> type)` Get the value of the named property, with support for static properties in both Java and Groovy classes (which as of Groovy JSR 1.0 RC 01 only have getters in the metaClass)
    `` | `java.lang.Object` | `getPropertyValue(java.lang.String propName)`
    `` | `java.lang.Object` | `getPropertyValueObject(java.lang.String propertyNAme)`
    `` | `java.lang.Object` | `getReferenceInstance()`
    `` | `java.lang.String` | `getShortName()`
    `<T>` | `T` | `getStaticPropertyValue(java.lang.String propName, java.lang.Class<T> type)` Get the value of the named static property.
    `` | `boolean` | `hasMetaMethod(java.lang.String methodName)`
    `` | `boolean` | `hasMetaMethod(java.lang.String methodName, java.lang.Object[] args)`
    `` | `boolean` | `hasMetaProperty(java.lang.String propName)`
    `` | `boolean` | `hasProperty(java.lang.String propName)`
    `` | `boolean` | `isAbstract()`
    `` | `boolean` | `isActionMethod(java.lang.String methodName)`
    `` | `boolean` | `isReadableProperty(java.lang.String propName)`
    `` | `java.lang.Object` | `newInstance()`
    `` | `void` | `setGrailsApplication(GrailsApplication grailsApplication)`
    `` | `java.lang.String` | `toString()`

  - ### Inherited Methods Summary

    Inherited Methods
    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()`

- - ### Field Detail

    - #### protected GrailsApplication grailsApplication

  - ### Constructor Detail

    - #### public AbstractGrailsClass(java.lang.Class<?> clazz, java.lang.String trailingName)

      Used by all child classes to create a new instance and get the name right.

      Parameters:
        `clazz` - the Grails class
        `trailingName` - the trailing part of the name for this class type

  - ### Method Detail

    - #### @java.lang.Override public GrailsApplication getApplication()

    - #### public java.lang.Class<?> getClazz()

    - #### public java.lang.String getFullName()

    - #### public java.lang.String getLogicalPropertyName()

    - #### public groovy.lang.MetaClass getMetaClass()

      Returns:
        the metaClass

    - #### public java.util.List<groovy.lang.MetaProperty> getMetaProperties()

    - #### public java.lang.String getName()

    - #### public java.lang.String getNaturalName()

    - #### public java.lang.String getPackageName()

    - #### @java.lang.Override public java.lang.String getPluginName()

    - #### @java.lang.Deprecated public java.beans.PropertyDescriptor[] getPropertyDescriptors()

      deprecated:
        Use getMetaProperties() instead

    - #### public java.lang.String getPropertyName()

    - #### <T> protected T getPropertyOrStaticPropertyOrFieldValue(java.lang.String name, java.lang.Class<T> type)

      Looks for a property of the reference instance with a given name and type.

      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:

      1. Public static field
      2. Public static property with getter method
      3. Standard public bean property (with getter or just public field, using normal introspection)
      Returns:
        property value or null if no property or static field was found

    - #### public java.lang.Class<?> getPropertyType(java.lang.String typeName)

    - #### <T> public T getPropertyValue(java.lang.String propName, java.lang.Class<T> type)

      Get the value of the named property, with support for static properties in both Java and Groovy classes (which as of Groovy JSR 1.0 RC 01 only have getters in the metaClass)

      Parameters:
        propName
        type
      Returns:
        The property value or null

    - #### public java.lang.Object getPropertyValue(java.lang.String propName)

    - #### public java.lang.Object getPropertyValueObject(java.lang.String propertyNAme)

    - #### public java.lang.Object getReferenceInstance()

    - #### public java.lang.String getShortName()

    - #### <T> public T getStaticPropertyValue(java.lang.String propName, java.lang.Class<T> type)

      Get the value of the named static property.

      Parameters:
        propName
        type
      Returns:
        The property value or null

    - #### public boolean hasMetaMethod(java.lang.String methodName)

    - #### public boolean hasMetaMethod(java.lang.String methodName, java.lang.Object[] args)

    - #### public boolean hasMetaProperty(java.lang.String propName)

    - #### public boolean hasProperty(java.lang.String propName)

    - #### public boolean isAbstract()

    - #### public boolean isActionMethod(java.lang.String methodName)

    - #### public boolean isReadableProperty(java.lang.String propName)

    - #### public java.lang.Object newInstance()

    - #### public void setGrailsApplication(GrailsApplication grailsApplication)

    - #### @java.lang.Override public java.lang.String toString()