## groovy.lang
Class MetaClassImpl

Allows methods to be dynamically added to existing classes at runtime

author:
  James Strachan

author:
  Guillaume Laforge

author:
  Jochen Theodorou

author:
  Graeme Rocher

author:
  Alex Tkachman

version:
  $Revision: 11920 $

see:
  MetaClass

Field Summary
`MetaMethod` | `AMBIGUOUS_LISTENER_METHOD`
`String` | `CLOSURE_CALL_METHOD`
`String` | `CLOSURE_CURRY_METHOD`
`String` | `CLOSURE_DO_CALL_METHOD`
`def` | `EMPTY_ARGUMENTS`
`def` | `EMPTY_CLASS_ARRAY`
`def` | `GETTER_MISSING_ARGS`
`Logger` | `LOG`
`String` | `METHOD_MISSING`
`def` | `METHOD_MISSING_ARGS`
`MetaMethod` | `NULL_METHOD`
`String` | `PROPERTY_MISSING`
`def` | `SETTER_MISSING_ARGS`
`String` | `STATIC_METHOD_MISSING`
`String` | `STATIC_PROPERTY_MISSING`
`List` | `allMethods`
`MetaProperty` | `arrayLengthProperty`
`ClassNode` | `classNode`
`Index` | `classPropertyIndex`
`Index` | `classPropertyIndexForSuper`
`FastArray` | `constructors`
`MetaMethod` | `genericGetMethod`
`MetaMethod` | `genericSetMethod`
`boolean` | `initialized`
`List` | `interfaceMethods`
`boolean` | `isGroovyObject`
`boolean` | `isMap`
`Map` | `listeners`
`def` | `mainClassMethodHeader`
`MetaMethodIndex` | `metaMethodIndex`
`MetaMethod` | `methodMissing`
`Set` | `newGroovyMethodsSet`
`MetaMethod` | `propertyMissingGet`
`MetaMethod` | `propertyMissingSet`
`MetaClassRegistry` | `registry`
`SingleKeyHashMap` | `staticPropertyIndex`
`CachedClass` | `theCachedClass`
`Class` | `theClass`

Constructor Summary
`MetaClassImpl(Class theClass)`
`MetaClassImpl(MetaClassRegistry registry, Class theClass)`

Method Summary
`void` | `addInterfaceMethods(Set interfaces)`
`def` | `castArgumentsToClassArray(def argTypes)`
`void` | `fillMethodIndex()`
`MetaMethod` | `getMetaMethod(String name, def argTypes)`
`MetaProperty` | `getMetaProperty(String name)`
`MetaMethod` | `getStaticMetaMethod(String name, def argTypes)`
`LinkedList` | `getSuperClasses()`
`Class` | `getTheClass()`
`MetaProperty` | `hasProperty(Object obj, String name)`
`boolean` | `isGroovyObject()`
`void` | `populateMethods(LinkedList superClasses, CachedClass firstGroovySuper)`
`void` | `removeMultimethodsOverloadedWithPrivateMethods()`
`void` | `replaceWithMOPCalls(def mopMethods)`
`List` | `respondsTo(Object obj, String name, def argTypes)`
`List` | `respondsTo(Object obj, String name)`

Constructor Detail

### MetaClassImpl

    public MetaClassImpl(Class theClass)

### MetaClassImpl

    public MetaClassImpl(MetaClassRegistry registry, Class theClass)

Method Detail

### addInterfaceMethods

    void addInterfaceMethods(Set interfaces)

### castArgumentsToClassArray

    def castArgumentsToClassArray(def argTypes)

### fillMethodIndex

    void fillMethodIndex()

### getMetaMethod

    public MetaMethod getMetaMethod(String name, def argTypes)

  see:
    MetaObjectProtocol#getMetaMethod(String, Object[])

### getMetaProperty

    public MetaProperty getMetaProperty(String name)

  see:
    MetaObjectProtocol#getMetaProperty(String)

### getStaticMetaMethod

    public MetaMethod getStaticMetaMethod(String name, def argTypes)

  see:
    MetaObjectProtocol#getStaticMetaMethod(String, Object[])

### getSuperClasses

    LinkedList getSuperClasses()

### getTheClass

    public Class getTheClass()

### hasProperty

    public MetaProperty hasProperty(Object obj, String name)

  see:
    MetaObjectProtocol#hasProperty(Object,String)

### isGroovyObject

    public boolean isGroovyObject()

### populateMethods

    void populateMethods(LinkedList superClasses, CachedClass firstGroovySuper)

### removeMultimethodsOverloadedWithPrivateMethods

    void removeMultimethodsOverloadedWithPrivateMethods()

### replaceWithMOPCalls

    void replaceWithMOPCalls(def mopMethods)

### respondsTo

    public List respondsTo(Object obj, String name, def argTypes)

  see:
    MetaObjectProtocol#respondsTo(Object,String, Object[])

### respondsTo

    public List respondsTo(Object obj, String name)

  see:
    MetaObjectProtocol#respondsTo(Object,String, Object[])