# Package org.codehaus.groovy.runtime.callsite

## Package org.codehaus.groovy.runtime.callsite Description

Classic (non-`invokedynamic`) call-site caching.

Primary purpose (GROOVY-11158): preserve runtime binary compatibility for classes compiled by Groovy 4 and Groovy 5 (and by earlier releases that always used classic call sites). Those classes link against CallSiteArray and CallSite; with this optional module on the classpath they must still load and execute on Groovy 6. The public linkage surface of those types is stable for that reason.

The same types also support compiling with `indy` disabled. Groovy 6 core uses invokedynamic for new compilation by default and does not depend on this package. Add `groovy-callsite` only when classic bytecode must still be produced or executed.

Prefer invokedynamic call sites for new code. This entire package is planned for deprecation/removal in a future Groovy version.

since:
  1.5 (relocated to the `groovy-callsite` module in 6.0)

- Interface Summary
  Interface | Description
  --- | ---
  CallSite | Classic (non-`invokedynamic`) call site.

- Class Summary
  Class | Description
  --- | ---
  AbstractCallSite | Base class for all classic (non-`invokedynamic`) call sites.
  BooleanClosureForMapPredicate | deprecated: Use BooleanClosureForMapPredicate instead.
  BooleanClosurePredicate | deprecated: Use BooleanClosurePredicate instead.
  BooleanClosureWrapper | Helper class for internal use only.
  BooleanReturningMethodInvoker | Helper class for internal use only.
  CachedMethodCallSites | Creates optimized call sites for CachedMethod instances.
  CallSiteArray | Array of classic (non-`invokedynamic`) call sites for a compiled class.
  CallSiteClassLoader | Class loader used when generating specialized classic call-site classes.
  CallSiteGenerator | Generates specialized call-site classes for the classic (non-indy) call-site cache.
  ConstructorMetaClassSite |
  ConstructorMetaMethodSite | Call site for invoking static methods metaclass - cached method - not cached
  ConstructorSite |
  ConstructorSite.ConstructorSiteNoUnwrap | Call site where we know there is no need to unwrap arguments
  ConstructorSite.ConstructorSiteNoUnwrapNoCoerce | Call site where we know there is no need neither unwrap nor coerce arguments
  ConstructorSite.NoParamSite |
  ConstructorSite.NoParamSiteInnerClass |
  GetEffectivePogoFieldSite |
  GetEffectivePojoPropertySite |
  MetaClassCallSites | Builds classic (non-indy) call sites for a MetaClassImpl.
  MetaClassConstructorSite | Call site for constructor metaclass - cached method - not cached
  MetaClassSite | Call site which holds reference to metaclass.
  MetaMethodSite | Call site which caches meta method
  NullCallSite |
  PerInstancePojoMetaClassSite |
  PlainObjectMetaMethodSite | Plain ordinary object call site metaclass - cached method - cached
  PogoGetPropertySite |
  PogoInterceptableSite | Call site for GroovyInterceptable
  PogoMetaClassGetPropertySite |
  PogoMetaClassSite |
  PogoMetaMethodSite | POGO call site metaclass - cached method - cached
  PogoMetaMethodSite.PogoCachedMethodSite |
  PogoMetaMethodSite.PogoCachedMethodSiteNoUnwrap |
  PogoMetaMethodSite.PogoCachedMethodSiteNoUnwrapNoCoerce |
  PogoMetaMethodSite.PogoMetaMethodSiteNoUnwrap | Call site where we know there is no need to unwrap arguments
  PogoMetaMethodSite.PogoMetaMethodSiteNoUnwrapNoCoerce | Call site where we know there is no need neither unwrap nor coerce arguments
  PojoMetaClassGetPropertySite |
  PojoMetaClassSite | POJO call site metaclass - cached method - not cached
  PojoMetaMethodSite | POJO call site metaclass - cached method - cached
  PojoMetaMethodSite.PojoCachedMethodSite |
  PojoMetaMethodSite.PojoCachedMethodSiteNoUnwrap |
  PojoMetaMethodSite.PojoCachedMethodSiteNoUnwrapNoCoerce |
  PojoMetaMethodSite.PojoMetaMethodSiteNoUnwrap | Call site where we know there is no need to unwrap arguments
  PojoMetaMethodSite.PojoMetaMethodSiteNoUnwrapNoCoerce | Call site where we know there is no need neither unwrap nor coerce arguments
  StaticMetaClassSite | Call site for invoking static methods metaclass - cached method - not cached
  StaticMetaMethodSite | POJO call site metaclass - cached method - cached
  StaticMetaMethodSite.StaticMetaMethodSiteNoUnwrap | Call site where we know there is no need to unwrap arguments
  StaticMetaMethodSite.StaticMetaMethodSiteNoUnwrapNoCoerce | Call site where we know there is no need neither unwrap nor coerce arguments