Package groovy.lang

## Class MetaClassRegistry.MetaClassCreationHandle

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

- Direct Known Subclasses:
    `ExpandoMetaClassCreationHandle`
  Enclosing interface:
    MetaClassRegistry

      public static class MetaClassRegistry.MetaClassCreationHandle
      extends java.lang.Object

  Class used as base for the creation of MetaClass implementations. The Class defaults to MetaClassImpl, if the class loading fails to find a special meta class. The name for such a meta class would be the class name it is created for with the prefix "groovy.runtime.metaclass." By replacing the handle in the registry you can have any control over the creation of what MetaClass is used for a class that you want to have. WARNING: experimental code, likely to change soon

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MetaClassCreationHandle()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `MetaClass` | `create​(java.lang.Class theClass, MetaClassRegistry registry)` | Creates a metaclass implementation for theClass.
    `protected MetaClass` | `createNormalMetaClass​(java.lang.Class theClass, MetaClassRegistry registry)` |
    `boolean` | `isDisableCustomMetaClassLookup()` | Returns whether custom meta classes are disabled.
    `void` | `setDisableCustomMetaClassLookup​(boolean disableCustomMetaClassLookup)` | Set flag saying to disable lookup of custom meta classes It's enough to call this method only once in your application for handle which was set in to registry as every new handle will inherit this property

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

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

- - ### Constructor Detail

    - #### MetaClassCreationHandle

          public MetaClassCreationHandle()

  - ### Method Detail

    - #### create

          public final MetaClass create​(java.lang.Class theClass,
                                        MetaClassRegistry registry)

      Creates a metaclass implementation for theClass.
      Parameters:
        `theClass` - The class to create a metaclass for
        `registry` - The metaclass registry the metaclass we be registered in.

    - #### createNormalMetaClass

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

    - #### isDisableCustomMetaClassLookup

          public boolean isDisableCustomMetaClassLookup()

      Returns whether custom meta classes are disabled.

    - #### setDisableCustomMetaClassLookup

          public void setDisableCustomMetaClassLookup​(boolean disableCustomMetaClassLookup)

      Set flag saying to disable lookup of custom meta classes It's enough to call this method only once in your application for handle which was set in to registry as every new handle will inherit this property
      Parameters:
        `disableCustomMetaClassLookup` - flag saying to disable lookup of custom meta classes