Package: org.codehaus.groovy.classgen.asm

## [Java] Class BinaryLongExpressionHelper

- org.codehaus.groovy.classgen.asm.BinaryLongExpressionHelper

-     public class BinaryLongExpressionHelper
      extends BinaryExpressionWriter

  Binary expression helper specialized for `long` operations.

- - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class BinaryExpressionWriter` | `stdCompareCodes`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `BinaryLongExpressionHelper(WriterController controller, MethodCaller arraySet, MethodCaller arrayGet)` Since: 2.5.0
    `BinaryLongExpressionHelper(WriterController controller)` Creates a `long`-specialized binary expression helper.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `protected void` | `doubleTwoOperands(org.objectweb.asm.MethodVisitor mv)` * Duplicates the two operands already on the operand stack. * * Parameters: `mv` - the current method visitor
    `` | `protected int` | `getBitwiseOperationBytecode(int type)` * Returns the bitwise opcode for the supplied token. * * Parameters: `type` - the normalized token index * Returns: the ASM opcode
    `` | `protected int` | `getCompareCode()` * Returns: the ASM compare opcode used by this primitive type
    `` | `protected ClassNode` | `getDevisionOpResultType()` * Returns: the result type for division operations
    `` | `protected ClassNode` | `getNormalOpResultType()` * Returns: the result type for normal arithmetic operations
    `` | `protected int` | `getShiftOperationBytecode(int type)` * Returns the shift opcode for the supplied token. * * Parameters: `type` - the normalized token index * Returns: the ASM opcode
    `` | `protected int` | `getStandardOperationBytecode(int type)` * Returns the arithmetic opcode for the supplied token. * * Parameters: `type` - the normalized token index * Returns: the ASM opcode
    `` | `protected void` | `removeTwoOperands(org.objectweb.asm.MethodVisitor mv)` * Removes the two operands already on the operand stack. * * Parameters: `mv` - the current method visitor
    `` | `protected boolean` | `supportsDivision()` * Returns: whether this primitive helper supports division bytecode directly
    `` | `protected void` | `writeMinusMinus(org.objectweb.asm.MethodVisitor mv)` * Emits a prefix/postfix decrement. * * Parameters: `mv` - the current method visitor
    `` | `protected void` | `writePlusPlus(org.objectweb.asm.MethodVisitor mv)` * Emits a prefix/postfix increment. * * Parameters: `mv` - the current method visitor

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class BinaryExpressionWriter` | `arrayGet, arraySet, doubleTwoOperands, getArrayGetCaller, getArrayGetResultType, getArraySetCaller, getBitwiseOperationBytecode, getCompareCode, getController, getDevisionOpResultType, getNormalOpResultType, getShiftOperationBytecode, getStandardOperationBytecode, removeTwoOperands, setArraySetAndGet, supportsDivision, write, writeBitwiseOp, writeDivision, writeMinusMinus, writePlusPlus, writePostOrPrefixMethod, writeShiftOp, writeSpaceship, writeStdCompare, writeStdOperators`

- - ### Constructor Detail

    - #### public BinaryLongExpressionHelper(WriterController controller, MethodCaller arraySet, MethodCaller arrayGet)

      Since:
        2.5.0

    - #### public BinaryLongExpressionHelper(WriterController controller)

      Creates a `long`-specialized binary expression helper.

      Parameters:
        `controller` - the active writer controller

  - ### Method Detail

    - #### protected void doubleTwoOperands(org.objectweb.asm.MethodVisitor mv)

      * Duplicates the two operands already on the operand stack. * *

      Parameters:
        `mv` - the current method visitor

    - #### protected int getBitwiseOperationBytecode(int type)

      * Returns the bitwise opcode for the supplied token. * *

      Parameters:
        `type` - the normalized token index *
      Returns:
        the ASM opcode

    - #### protected int getCompareCode()

      *

      Returns:
        the ASM compare opcode used by this primitive type

    - #### protected ClassNode getDevisionOpResultType()

      *

      Returns:
        the result type for division operations

    - #### protected ClassNode getNormalOpResultType()

      *

      Returns:
        the result type for normal arithmetic operations

    - #### protected int getShiftOperationBytecode(int type)

      * Returns the shift opcode for the supplied token. * *

      Parameters:
        `type` - the normalized token index *
      Returns:
        the ASM opcode

    - #### protected int getStandardOperationBytecode(int type)

      * Returns the arithmetic opcode for the supplied token. * *

      Parameters:
        `type` - the normalized token index *
      Returns:
        the ASM opcode

    - #### protected void removeTwoOperands(org.objectweb.asm.MethodVisitor mv)

      * Removes the two operands already on the operand stack. * *

      Parameters:
        `mv` - the current method visitor

    - #### protected boolean supportsDivision()

      *

      Returns:
        whether this primitive helper supports division bytecode directly

    - #### protected void writeMinusMinus(org.objectweb.asm.MethodVisitor mv)

      * Emits a prefix/postfix decrement. * *

      Parameters:
        `mv` - the current method visitor

    - #### protected void writePlusPlus(org.objectweb.asm.MethodVisitor mv)

      * Emits a prefix/postfix increment. * *

      Parameters:
        `mv` - the current method visitor