org.codehaus.groovy.runtime.callsite

## Class AbstractCallSite

- java.lang.Object
- - org.codehaus.groovy.runtime.callsite.AbstractCallSite

- All Implemented Interfaces:
    CallSite
  Direct Known Subclasses:
    DummyCallSite, GetEffectivePogoFieldSite, GetEffectivePojoPropertySite, MetaClassSite, NullCallSite, PerInstancePojoMetaClassSite, PogoGetPropertySite, PogoInterceptableSite, PogoMetaClassGetPropertySite, PojoMetaClassGetPropertySite

      public class AbstractCallSite
      extends java.lang.Object
      implements CallSite

  Base class for all call sites
  Author:
    Alex Tkachman

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected CallSiteArray` | `array`
    `protected int` | `index`
    `protected java.lang.String` | `name`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractCallSite(CallSite prev)`
    `AbstractCallSite(CallSiteArray array, int index, java.lang.String name)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `CallSite` | `acceptGetProperty(java.lang.Object receiver)`
    `CallSite` | `acceptGroovyObjectGetProperty(java.lang.Object receiver)`
    `java.lang.Object` | `call(java.lang.Object receiver)`
    `java.lang.Object` | `call(java.lang.Object receiver, java.lang.Object arg1)`
    `java.lang.Object` | `call(java.lang.Object receiver, java.lang.Object[] args)`
    `java.lang.Object` | `call(java.lang.Object receiver, java.lang.Object arg1, java.lang.Object arg2)`
    `java.lang.Object` | `call(java.lang.Object receiver, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)`
    `java.lang.Object` | `call(java.lang.Object receiver, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)`
    `java.lang.Object` | `callConstructor(java.lang.Object receiver)`
    `java.lang.Object` | `callConstructor(java.lang.Object receiver, java.lang.Object arg1)`
    `java.lang.Object` | `callConstructor(java.lang.Object receiver, java.lang.Object[] args)`
    `java.lang.Object` | `callConstructor(java.lang.Object receiver, java.lang.Object arg1, java.lang.Object arg2)`
    `java.lang.Object` | `callConstructor(java.lang.Object receiver, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)`
    `java.lang.Object` | `callConstructor(java.lang.Object receiver, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)`
    `java.lang.Object` | `callCurrent(GroovyObject receiver)`
    `java.lang.Object` | `callCurrent(GroovyObject receiver, java.lang.Object arg1)`
    `java.lang.Object` | `callCurrent(GroovyObject receiver, java.lang.Object[] args)`
    `java.lang.Object` | `callCurrent(GroovyObject receiver, java.lang.Object arg1, java.lang.Object arg2)`
    `java.lang.Object` | `callCurrent(GroovyObject receiver, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)`
    `java.lang.Object` | `callCurrent(GroovyObject receiver, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)`
    `java.lang.Object` | `callGetProperty(java.lang.Object receiver)`
    `java.lang.Object` | `callGetPropertySafe(java.lang.Object receiver)`
    `java.lang.Object` | `callGroovyObjectGetProperty(java.lang.Object receiver)`
    `java.lang.Object` | `callGroovyObjectGetPropertySafe(java.lang.Object receiver)`
    `java.lang.Object` | `callSafe(java.lang.Object receiver)`
    `java.lang.Object` | `callSafe(java.lang.Object receiver, java.lang.Object arg1)`
    `java.lang.Object` | `callSafe(java.lang.Object receiver, java.lang.Object[] args)`
    `java.lang.Object` | `callSafe(java.lang.Object receiver, java.lang.Object arg1, java.lang.Object arg2)`
    `java.lang.Object` | `callSafe(java.lang.Object receiver, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)`
    `java.lang.Object` | `callSafe(java.lang.Object receiver, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)`
    `java.lang.Object` | `callStatic(java.lang.Class receiver)`
    `java.lang.Object` | `callStatic(java.lang.Class receiver, java.lang.Object arg1)`
    `java.lang.Object` | `callStatic(java.lang.Class receiver, java.lang.Object[] args)`
    `java.lang.Object` | `callStatic(java.lang.Class receiver, java.lang.Object arg1, java.lang.Object arg2)`
    `java.lang.Object` | `callStatic(java.lang.Class receiver, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)`
    `java.lang.Object` | `callStatic(java.lang.Class receiver, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)`
    `protected CallSite` | `createGetPropertySite(java.lang.Object receiver)`
    `protected CallSite` | `createGroovyObjectGetPropertySite(java.lang.Object receiver)`
    `CallSiteArray` | `getArray()`
    `int` | `getIndex()`
    `java.lang.String` | `getName()`
    `java.lang.Object` | `getProperty(java.lang.Object receiver)`

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

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

- - ### Field Detail

    - #### index

          protected final int index

    - #### name

          protected final java.lang.String name

    - #### array

          protected final CallSiteArray array

  - ### Constructor Detail

    - #### AbstractCallSite

          public AbstractCallSite(CallSiteArray array,
                                  int index,
                                  java.lang.String name)

    - #### AbstractCallSite

          public AbstractCallSite(CallSite prev)

  - ### Method Detail

    - #### getIndex

          public int getIndex()

      Specified by:
        `getIndex` in interface `CallSite`

    - #### getArray

          public CallSiteArray getArray()

      Specified by:
        `getArray` in interface `CallSite`

    - #### getName

          public java.lang.String getName()

      Specified by:
        `getName` in interface `CallSite`

    - #### callSafe

          public final java.lang.Object callSafe(java.lang.Object receiver,
                                                 java.lang.Object[] args)
                                          throws java.lang.Throwable

      Specified by:
        `callSafe` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callSafe

          public final java.lang.Object callSafe(java.lang.Object receiver)
                                          throws java.lang.Throwable

      Specified by:
        `callSafe` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callSafe

          public final java.lang.Object callSafe(java.lang.Object receiver,
                                                 java.lang.Object arg1)
                                          throws java.lang.Throwable

      Specified by:
        `callSafe` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callSafe

          public final java.lang.Object callSafe(java.lang.Object receiver,
                                                 java.lang.Object arg1,
                                                 java.lang.Object arg2)
                                          throws java.lang.Throwable

      Specified by:
        `callSafe` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callSafe

          public final java.lang.Object callSafe(java.lang.Object receiver,
                                                 java.lang.Object arg1,
                                                 java.lang.Object arg2,
                                                 java.lang.Object arg3)
                                          throws java.lang.Throwable

      Specified by:
        `callSafe` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callSafe

          public java.lang.Object callSafe(java.lang.Object receiver,
                                           java.lang.Object arg1,
                                           java.lang.Object arg2,
                                           java.lang.Object arg3,
                                           java.lang.Object arg4)
                                    throws java.lang.Throwable

      Specified by:
        `callSafe` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### call

          public java.lang.Object call(java.lang.Object receiver,
                                       java.lang.Object[] args)
                                throws java.lang.Throwable

      Specified by:
        `call` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### call

          public java.lang.Object call(java.lang.Object receiver)
                                throws java.lang.Throwable

      Specified by:
        `call` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### call

          public java.lang.Object call(java.lang.Object receiver,
                                       java.lang.Object arg1)
                                throws java.lang.Throwable

      Specified by:
        `call` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### call

          public java.lang.Object call(java.lang.Object receiver,
                                       java.lang.Object arg1,
                                       java.lang.Object arg2)
                                throws java.lang.Throwable

      Specified by:
        `call` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### call

          public java.lang.Object call(java.lang.Object receiver,
                                       java.lang.Object arg1,
                                       java.lang.Object arg2,
                                       java.lang.Object arg3)
                                throws java.lang.Throwable

      Specified by:
        `call` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### call

          public java.lang.Object call(java.lang.Object receiver,
                                       java.lang.Object arg1,
                                       java.lang.Object arg2,
                                       java.lang.Object arg3,
                                       java.lang.Object arg4)
                                throws java.lang.Throwable

      Specified by:
        `call` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callCurrent

          public java.lang.Object callCurrent(GroovyObject receiver,
                                              java.lang.Object[] args)
                                       throws java.lang.Throwable

      Specified by:
        `callCurrent` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callCurrent

          public java.lang.Object callCurrent(GroovyObject receiver)
                                       throws java.lang.Throwable

      Specified by:
        `callCurrent` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callCurrent

          public java.lang.Object callCurrent(GroovyObject receiver,
                                              java.lang.Object arg1)
                                       throws java.lang.Throwable

      Specified by:
        `callCurrent` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callCurrent

          public java.lang.Object callCurrent(GroovyObject receiver,
                                              java.lang.Object arg1,
                                              java.lang.Object arg2)
                                       throws java.lang.Throwable

      Specified by:
        `callCurrent` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callCurrent

          public java.lang.Object callCurrent(GroovyObject receiver,
                                              java.lang.Object arg1,
                                              java.lang.Object arg2,
                                              java.lang.Object arg3)
                                       throws java.lang.Throwable

      Specified by:
        `callCurrent` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callCurrent

          public java.lang.Object callCurrent(GroovyObject receiver,
                                              java.lang.Object arg1,
                                              java.lang.Object arg2,
                                              java.lang.Object arg3,
                                              java.lang.Object arg4)
                                       throws java.lang.Throwable

      Specified by:
        `callCurrent` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callStatic

          public java.lang.Object callStatic(java.lang.Class receiver,
                                             java.lang.Object[] args)
                                      throws java.lang.Throwable

      Specified by:
        `callStatic` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callStatic

          public java.lang.Object callStatic(java.lang.Class receiver)
                                      throws java.lang.Throwable

      Specified by:
        `callStatic` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callStatic

          public java.lang.Object callStatic(java.lang.Class receiver,
                                             java.lang.Object arg1)
                                      throws java.lang.Throwable

      Specified by:
        `callStatic` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callStatic

          public java.lang.Object callStatic(java.lang.Class receiver,
                                             java.lang.Object arg1,
                                             java.lang.Object arg2)
                                      throws java.lang.Throwable

      Specified by:
        `callStatic` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callStatic

          public java.lang.Object callStatic(java.lang.Class receiver,
                                             java.lang.Object arg1,
                                             java.lang.Object arg2,
                                             java.lang.Object arg3)
                                      throws java.lang.Throwable

      Specified by:
        `callStatic` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callStatic

          public java.lang.Object callStatic(java.lang.Class receiver,
                                             java.lang.Object arg1,
                                             java.lang.Object arg2,
                                             java.lang.Object arg3,
                                             java.lang.Object arg4)
                                      throws java.lang.Throwable

      Specified by:
        `callStatic` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callConstructor

          public java.lang.Object callConstructor(java.lang.Object receiver,
                                                  java.lang.Object[] args)
                                           throws java.lang.Throwable

      Specified by:
        `callConstructor` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callConstructor

          public java.lang.Object callConstructor(java.lang.Object receiver)
                                           throws java.lang.Throwable

      Specified by:
        `callConstructor` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callConstructor

          public java.lang.Object callConstructor(java.lang.Object receiver,
                                                  java.lang.Object arg1)
                                           throws java.lang.Throwable

      Specified by:
        `callConstructor` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callConstructor

          public java.lang.Object callConstructor(java.lang.Object receiver,
                                                  java.lang.Object arg1,
                                                  java.lang.Object arg2)
                                           throws java.lang.Throwable

      Specified by:
        `callConstructor` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callConstructor

          public java.lang.Object callConstructor(java.lang.Object receiver,
                                                  java.lang.Object arg1,
                                                  java.lang.Object arg2,
                                                  java.lang.Object arg3)
                                           throws java.lang.Throwable

      Specified by:
        `callConstructor` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callConstructor

          public java.lang.Object callConstructor(java.lang.Object receiver,
                                                  java.lang.Object arg1,
                                                  java.lang.Object arg2,
                                                  java.lang.Object arg3,
                                                  java.lang.Object arg4)
                                           throws java.lang.Throwable

      Specified by:
        `callConstructor` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callGetProperty

          public java.lang.Object callGetProperty(java.lang.Object receiver)
                                           throws java.lang.Throwable

      Specified by:
        `callGetProperty` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callGroovyObjectGetProperty

          public java.lang.Object callGroovyObjectGetProperty(java.lang.Object receiver)
                                                       throws java.lang.Throwable

      Specified by:
        `callGroovyObjectGetProperty` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### acceptGetProperty

          public CallSite acceptGetProperty(java.lang.Object receiver)

    - #### acceptGroovyObjectGetProperty

          public CallSite acceptGroovyObjectGetProperty(java.lang.Object receiver)

    - #### createGetPropertySite

          protected final CallSite createGetPropertySite(java.lang.Object receiver)

    - #### createGroovyObjectGetPropertySite

          protected final CallSite createGroovyObjectGetPropertySite(java.lang.Object receiver)

    - #### getProperty

          public java.lang.Object getProperty(java.lang.Object receiver)
                                       throws java.lang.Throwable

      Specified by:
        `getProperty` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callGetPropertySafe

          public final java.lang.Object callGetPropertySafe(java.lang.Object receiver)
                                                     throws java.lang.Throwable

      Specified by:
        `callGetPropertySafe` in interface `CallSite`
      Throws:
        `java.lang.Throwable`

    - #### callGroovyObjectGetPropertySafe

          public final java.lang.Object callGroovyObjectGetPropertySafe(java.lang.Object receiver)
                                                                 throws java.lang.Throwable

      Specified by:
        `callGroovyObjectGetPropertySafe` in interface `CallSite`
      Throws:
        `java.lang.Throwable`