Package grails.util

Class GrailsMetaClassUtils


  • public class GrailsMetaClassUtils
    extends java.lang.Object
    Provides utility methods for working with the Groovy MetaClass API.
    Since:
    0.5
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void copyExpandoMetaClass​(java.lang.Class<?> fromClass, java.lang.Class<?> toClass, boolean removeSource)
      Copies the ExpandoMetaClass dynamic methods and properties from one Class to another.
      static groovy.lang.ExpandoMetaClass getExpandoMetaClass​(java.lang.Class<?> aClass)  
      static groovy.lang.MetaClass getMetaClass​(java.lang.Object instance)  
      static java.lang.Object getPropertyIfExists​(java.lang.Object instance, java.lang.String property)
      Obtains a property of an instance if it exists
      static <T> T getPropertyIfExists​(java.lang.Object instance, java.lang.String property, java.lang.Class<T> requiredType)
      Obtains a property of an instance if it exists
      static groovy.lang.MetaClassRegistry getRegistry()
      Retrieves the MetaClassRegistry instance.
      static java.lang.Object invokeMethodIfExists​(java.lang.Object instance, java.lang.String methodName)
      Invokes a method if it exists otherwise returns null
      static java.lang.Object invokeMethodIfExists​(java.lang.Object instance, java.lang.String methodName, java.lang.Object[] args)
      Invokes a method if it exists otherwise returns null
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • GrailsMetaClassUtils

        public GrailsMetaClassUtils()
    • Method Detail

      • getRegistry

        public static groovy.lang.MetaClassRegistry getRegistry()
        Retrieves the MetaClassRegistry instance.
        Returns:
        The registry
      • copyExpandoMetaClass

        public static void copyExpandoMetaClass​(java.lang.Class<?> fromClass,
                                                java.lang.Class<?> toClass,
                                                boolean removeSource)
        Copies the ExpandoMetaClass dynamic methods and properties from one Class to another.
        Parameters:
        fromClass - The source class
        toClass - The destination class
        removeSource - Whether to remove the source class after completion. True if yes
      • getExpandoMetaClass

        public static groovy.lang.ExpandoMetaClass getExpandoMetaClass​(java.lang.Class<?> aClass)
      • getMetaClass

        public static groovy.lang.MetaClass getMetaClass​(java.lang.Object instance)
      • getPropertyIfExists

        public static java.lang.Object getPropertyIfExists​(java.lang.Object instance,
                                                           java.lang.String property)
        Obtains a property of an instance if it exists
        Parameters:
        instance - The instance
        property - The property
        Returns:
        The value of null if non-exists
      • getPropertyIfExists

        public static <T> T getPropertyIfExists​(java.lang.Object instance,
                                                java.lang.String property,
                                                java.lang.Class<T> requiredType)
        Obtains a property of an instance if it exists
        Parameters:
        instance - The instance
        property - The property
        requiredType - The required type of the property
        Returns:
        The property value
      • invokeMethodIfExists

        public static java.lang.Object invokeMethodIfExists​(java.lang.Object instance,
                                                            java.lang.String methodName)
        Invokes a method if it exists otherwise returns null
        Parameters:
        instance - The instance
        methodName - The method name
        Returns:
        The result of the method call or null
      • invokeMethodIfExists

        public static java.lang.Object invokeMethodIfExists​(java.lang.Object instance,
                                                            java.lang.String methodName,
                                                            java.lang.Object[] args)
        Invokes a method if it exists otherwise returns null
        Parameters:
        instance - The instance
        methodName - The method name
        args - The arguments
        Returns:
        The result of the method call or null