groovy.lang

## Class ExpandoMetaClassCreationHandle

- java.lang.Object
- - groovy.lang.MetaClassRegistry.MetaClassCreationHandle
  - - groovy.lang.ExpandoMetaClassCreationHandle

-     public class ExpandoMetaClassCreationHandle
      extends MetaClassRegistry.MetaClassCreationHandle

  A handle for the MetaClassRegistry that changes all classes loaded into the Grails VM to use ExpandoMetaClass instances

  The handle should be registered with the Groovy runtime before Groovy loads, for example in your main method. `GroovySystem.metaClassRegistry.metaClassCreationHandle = new ExpandoMetaClassCreationHandle()`

  Since:
    1.5
  Author:
    Graeme Rocher
  See Also:
    `MetaClassRegistry`, `MetaClassRegistry.MetaClassCreationHandle`, `MetaClassRegistryImpl.setMetaClassCreationHandle(groovy.lang.MetaClassRegistry.MetaClassCreationHandle)`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static ExpandoMetaClassCreationHandle` | `instance`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExpandoMetaClassCreationHandle()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected MetaClass` | `createNormalMetaClass(java.lang.Class theClass, MetaClassRegistry registry)`
    `static void` | `disable()`
    `static void` | `enable()` Enables the ExpandoMetaClassCreationHandle with the registry `ExpandoMetaClassCreationHandle.enable();`
    `boolean` | `hasModifiedMetaClass(ExpandoMetaClass emc)`
    `void` | `registerModifiedMetaClass(ExpandoMetaClass emc)` Registers a modified ExpandoMetaClass with the creation handle

    - ### Methods inherited from class groovy.lang.MetaClassRegistry.MetaClassCreationHandle

      `create, isDisableCustomMetaClassLookup, setDisableCustomMetaClassLookup`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### instance

          public static final ExpandoMetaClassCreationHandle instance

  - ### Constructor Detail

    - #### ExpandoMetaClassCreationHandle

          public ExpandoMetaClassCreationHandle()

  - ### Method Detail

    - #### createNormalMetaClass

          protected MetaClass createNormalMetaClass(java.lang.Class theClass,
                                                    MetaClassRegistry registry)

      Overrides:
        `createNormalMetaClass` in class `MetaClassRegistry.MetaClassCreationHandle`

    - #### registerModifiedMetaClass

          public void registerModifiedMetaClass(ExpandoMetaClass emc)

      Registers a modified ExpandoMetaClass with the creation handle
      Parameters:
        `emc` - The EMC

    - #### hasModifiedMetaClass

          public boolean hasModifiedMetaClass(ExpandoMetaClass emc)

    - #### enable

          public static void enable()

      Enables the ExpandoMetaClassCreationHandle with the registry `ExpandoMetaClassCreationHandle.enable();`

    - #### disable

          public static void disable()