org.codehaus.groovy.reflection

## Class ClassInfo

- java.lang.Object
- - org.codehaus.groovy.util.ManagedReference<K>
  - - org.codehaus.groovy.util.ManagedConcurrentMap.Entry<Class,ClassInfo>
    - - org.codehaus.groovy.reflection.ClassInfo

- All Implemented Interfaces:
    AbstractConcurrentMap.Entry<Class,ClassInfo>, AbstractConcurrentMapBase.Entry<ClassInfo>, Finalizable

      public class ClassInfo
      extends ManagedConcurrentMap.Entry<Class,ClassInfo>

  Handle for all information we want to keep about the class
  Author:
    Alex.Tkachman

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ClassInfo.ClassInfoSet`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `int` | `hash`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `clearModifiedExpandos()`
    `void` | `finalizeRef()`
    `static int` | `fullSize()`
    `ClassLoaderForClassArtifacts` | `getArtifactClassLoader()`
    `CachedClass` | `getCachedClass()`
    `static ClassInfo` | `getClassInfo(Class cls)`
    `MetaClass` | `getMetaClass()`
    `MetaClass` | `getMetaClass(Object obj)`
    `MetaClass` | `getMetaClassForClass()`
    `ExpandoMetaClass` | `getModifiedExpando()`
    `MetaClass` | `getPerInstanceMetaClass(Object obj)`
    `MetaClass` | `getStrongMetaClass()`
    `int` | `getVersion()`
    `MetaClass` | `getWeakMetaClass()`
    `boolean` | `hasPerInstanceMetaClasses()`
    `void` | `incVersion()`
    `void` | `lock()`
    `void` | `setPerInstanceMetaClass(Object obj, MetaClass metaClass)`
    `void` | `setStrongMetaClass(MetaClass answer)`
    `void` | `setWeakMetaClass(MetaClass answer)`
    `static int` | `size()`
    `void` | `unlock()`

    - ### Methods inherited from class org.codehaus.groovy.util.ManagedConcurrentMap.Entry

      `getHash, getValue, isEqual, isValid, setValue`

    - ### Methods inherited from class org.codehaus.groovy.util.ManagedReference

      `clear, finalizeReference, get`

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

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

- - ### Field Detail

    - #### hash

          public final int hash

  - ### Method Detail

    - #### getVersion

          public int getVersion()

    - #### incVersion

          public void incVersion()

    - #### getModifiedExpando

          public ExpandoMetaClass getModifiedExpando()

    - #### clearModifiedExpandos

          public static void clearModifiedExpandos()

    - #### getCachedClass

          public CachedClass getCachedClass()

    - #### getArtifactClassLoader

          public ClassLoaderForClassArtifacts getArtifactClassLoader()

    - #### getClassInfo

          public static ClassInfo getClassInfo(Class cls)

    - #### getStrongMetaClass

          public MetaClass getStrongMetaClass()

    - #### setStrongMetaClass

          public void setStrongMetaClass(MetaClass answer)

    - #### getWeakMetaClass

          public MetaClass getWeakMetaClass()

    - #### setWeakMetaClass

          public void setWeakMetaClass(MetaClass answer)

    - #### getMetaClassForClass

          public MetaClass getMetaClassForClass()

    - #### getMetaClass

          public final MetaClass getMetaClass()

    - #### getMetaClass

          public MetaClass getMetaClass(Object obj)

    - #### size

          public static int size()

    - #### fullSize

          public static int fullSize()

    - #### finalizeRef

          public void finalizeRef()

      Overrides:
        `finalizeRef` in class `ManagedConcurrentMap.Entry<Class,ClassInfo>`

    - #### lock

          public void lock()

    - #### unlock

          public void unlock()

    - #### getPerInstanceMetaClass

          public MetaClass getPerInstanceMetaClass(Object obj)

    - #### setPerInstanceMetaClass

          public void setPerInstanceMetaClass(Object obj,
                                     MetaClass metaClass)

    - #### hasPerInstanceMetaClasses

          public boolean hasPerInstanceMetaClasses()