com.jogamp.gluegen.procaddress

## Class ProcAddressJavaMethodBindingEmitter

- java.lang.Object
- - com.jogamp.gluegen.FunctionEmitter
  - - com.jogamp.gluegen.JavaMethodBindingEmitter
    - - com.jogamp.gluegen.procaddress.ProcAddressJavaMethodBindingEmitter

-     public class ProcAddressJavaMethodBindingEmitter
      extends JavaMethodBindingEmitter

  A specialization of JavaMethodBindingEmitter with knowledge of how to call through a function pointer.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ProcAddressJavaMethodBindingEmitter.WrappedMethodCommentEmitter` This class emits the comment for the wrapper method

    - ### Nested classes/interfaces inherited from class com.jogamp.gluegen.JavaMethodBindingEmitter

      `JavaMethodBindingEmitter.DefaultCommentEmitter, JavaMethodBindingEmitter.InterfaceCommentEmitter`

    - ### Nested classes/interfaces inherited from class com.jogamp.gluegen.FunctionEmitter

      `FunctionEmitter.EmissionModifier`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `callThroughProcAddress`
    `protected boolean` | `changeNameAndArguments`
    `protected ProcAddressEmitter` | `emitter`
    `protected String` | `getProcAddressTableExpr`

    - ### Fields inherited from class com.jogamp.gluegen.JavaMethodBindingEmitter

      `ABSTRACT, binding, defaultInterfaceCommentEmitter, defaultJavaCommentEmitter, emitBody, epilogue, eraseBufferAndArrayTypes, FINAL, forDirectBufferImplementation, forImplementingMethodCall, forIndirectBufferAndArrayImplementation, isUnimplemented, NATIVE, PRIVATE, prologue, PROTECTED, PUBLIC, SYNCHRONIZED, tagNativeBinding, useNIODirectOnly, useNIOOnly`

    - ### Fields inherited from class com.jogamp.gluegen.FunctionEmitter

      `STATIC`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ProcAddressJavaMethodBindingEmitter(JavaMethodBindingEmitter methodToWrap, boolean callThroughProcAddress, String getProcAddressTableExpr, boolean changeNameAndArguments, ProcAddressEmitter emitter)`
    `ProcAddressJavaMethodBindingEmitter(ProcAddressJavaMethodBindingEmitter methodToWrap)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected int` | `emitArguments(PrintWriter writer)` Returns the number of arguments emitted.
    `protected int` | `emitCallArguments(MethodBinding binding, PrintWriter writer)`
    `protected void` | `emitPreCallSetup(MethodBinding binding, PrintWriter writer)`
    `protected String` | `getImplMethodName()`
    `String` | `getName()`

    - ### Methods inherited from class com.jogamp.gluegen.JavaMethodBindingEmitter

      `argumentNameArray, byteOffsetArgName, byteOffsetArgName, byteOffsetArrayArgName, emitArrayLengthAndNIOBufferChecks, emitBody, emitCall, emitCallResultReturn, emitCompoundArrayCopies, emitName, emitPostCallCleanup, emitPrologueOrEpilogue, emitReturnType, emitReturnVariableSetupAndCall, erasedTypeString, getArgumentName, getBaseIndentString, getBinding, getCommentEndString, getCommentStartString, getReturnedArrayLengthComment, getReturnedArrayLengthExpression, getReturnTypeString, getRuntimeExceptionType, getUnsupportedExceptionType, isForDirectBufferImplementation, isForImplementingMethodCall, isForIndirectBufferAndArrayImplementation, isNIOArgName, isNIOArgName, javaThisArgumentName, offsetArgName, setEmitBody, setEpilogue, setEraseBufferAndArrayTypes, setForDirectBufferImplementation, setForImplementingMethodCall, setForIndirectBufferAndArrayImplementation, setPrologue, setReturnedArrayLengthExpression, setReturnedArrayLengthExpression, signatureOnly`

    - ### Methods inherited from class com.jogamp.gluegen.FunctionEmitter

      `addModifier, addModifiers, clearModifiers, emit, emit, emitDocComment, emitModifiers, emitSignature, getCommentEmitter, getDefaultOutput, getModifiers, hasModifier, isBaseTypeConst, isInterface, removeModifier, setCommentEmitter, toString`

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

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

- - ### Field Detail

    - #### callThroughProcAddress

          protected boolean callThroughProcAddress

    - #### changeNameAndArguments

          protected boolean changeNameAndArguments

    - #### getProcAddressTableExpr

          protected String getProcAddressTableExpr

    - #### emitter

          protected ProcAddressEmitter emitter

  - ### Constructor Detail

    - #### ProcAddressJavaMethodBindingEmitter

          public ProcAddressJavaMethodBindingEmitter(JavaMethodBindingEmitter methodToWrap,
                                             boolean callThroughProcAddress,
                                             String getProcAddressTableExpr,
                                             boolean changeNameAndArguments,
                                             ProcAddressEmitter emitter)

    - #### ProcAddressJavaMethodBindingEmitter

          public ProcAddressJavaMethodBindingEmitter(ProcAddressJavaMethodBindingEmitter methodToWrap)

  - ### Method Detail

    - #### getName

          public String getName()

      Overrides:
        `getName` in class `JavaMethodBindingEmitter`

    - #### emitArguments

          protected int emitArguments(PrintWriter writer)

      Description copied from class: `FunctionEmitter`
      Returns the number of arguments emitted.
      Overrides:
        `emitArguments` in class `JavaMethodBindingEmitter`

    - #### getImplMethodName

          protected String getImplMethodName()

      Overrides:
        `getImplMethodName` in class `JavaMethodBindingEmitter`

    - #### emitPreCallSetup

          protected void emitPreCallSetup(MethodBinding binding,
                              PrintWriter writer)

      Overrides:
        `emitPreCallSetup` in class `JavaMethodBindingEmitter`

    - #### emitCallArguments

          protected int emitCallArguments(MethodBinding binding,
                              PrintWriter writer)

      Overrides:
        `emitCallArguments` in class `JavaMethodBindingEmitter`