Package org.codehaus.groovy.classgen.asm
Class BinaryExpressionWriter
java.lang.Object
org.codehaus.groovy.classgen.asm.BinaryExpressionWriter
- Direct Known Subclasses:
- BinaryFloatExpressionHelper,- BinaryIntExpressionHelper,- BinaryLongExpressionHelper,- BinaryObjectExpressionHelper
Base class for writing primitive typed operations
- 
Field SummaryFields
- 
Constructor SummaryConstructorsConstructorDescriptionBinaryExpressionWriter(WriterController controller, MethodCaller arraySet, MethodCaller arrayGet) 
- 
Method SummaryModifier and TypeMethodDescriptionbooleanarrayGet(int operation, boolean simulate) booleanarraySet(boolean simulate) protected abstract voiddoubleTwoOperands(org.objectweb.asm.MethodVisitor mv) protected MethodCallerprotected ClassNodeprotected MethodCallerprotected abstract intgetBitwiseOperationBytecode(int type) protected abstract intreturn writer controllerprotected abstract ClassNodeprotected abstract ClassNodeprotected abstract intgetShiftOperationBytecode(int type) protected abstract intgetStandardOperationBytecode(int type) protected abstract voidremoveTwoOperands(org.objectweb.asm.MethodVisitor mv) voidsetArraySetAndGet(MethodCaller arraySet, MethodCaller arrayGet) protected booleanbooleanwrite(int operation, boolean simulate) protected booleanwriteBitwiseOp(int type, boolean simulate) writes some the bitwise operations.protected booleanwriteDivision(boolean simulate) protected abstract voidwriteMinusMinus(org.objectweb.asm.MethodVisitor mv) protected abstract voidwritePlusPlus(org.objectweb.asm.MethodVisitor mv) booleanwritePostOrPrefixMethod(int operation, boolean simulate) protected booleanwriteShiftOp(int type, boolean simulate) Write shifting operations.protected booleanwriteSpaceship(int type, boolean simulate) protected booleanwriteStdCompare(int type, boolean simulate) writes some int standard operations for comparesprotected booleanwriteStdOperators(int type, boolean simulate) 
- 
Field Details- 
stdCompareCodesprotected static final int[] stdCompareCodes
 
- 
- 
Constructor Details- 
BinaryExpressionWriterpublic BinaryExpressionWriter(WriterController controller, MethodCaller arraySet, MethodCaller arrayGet) 
 
- 
- 
Method Details- 
getControllerreturn writer controller- Since:
- 2.5.0
 
- 
getCompareCodeprotected abstract int getCompareCode()
- 
writeStdCompareprotected boolean writeStdCompare(int type, boolean simulate) writes some int standard operations for compares- Parameters:
- type- the token type
- Returns:
- true if a successful std operator write
 
- 
doubleTwoOperandsprotected abstract void doubleTwoOperands(org.objectweb.asm.MethodVisitor mv) 
- 
removeTwoOperandsprotected abstract void removeTwoOperands(org.objectweb.asm.MethodVisitor mv) 
- 
writeSpaceshipprotected boolean writeSpaceship(int type, boolean simulate) 
- 
getNormalOpResultType
- 
getStandardOperationBytecodeprotected abstract int getStandardOperationBytecode(int type) 
- 
writeStdOperatorsprotected boolean writeStdOperators(int type, boolean simulate) 
- 
writeDivisionprotected boolean writeDivision(boolean simulate) 
- 
supportsDivisionprotected boolean supportsDivision()
- 
getDevisionOpResultType
- 
getBitwiseOperationBytecodeprotected abstract int getBitwiseOperationBytecode(int type) 
- 
writeBitwiseOpprotected boolean writeBitwiseOp(int type, boolean simulate) writes some the bitwise operations. type is one of BITWISE_OR, BITWISE_AND, BITWISE_XOR- Parameters:
- type- the token type
- Returns:
- true if a successful bitwise operation write
 
- 
getShiftOperationBytecodeprotected abstract int getShiftOperationBytecode(int type) 
- 
writeShiftOpprotected boolean writeShiftOp(int type, boolean simulate) Write shifting operations. Type is one of LEFT_SHIFT, RIGHT_SHIFT, or RIGHT_SHIFT_UNSIGNED- Parameters:
- type- the token type
- Returns:
- true on a successful shift operation write
 
- 
writepublic boolean write(int operation, boolean simulate) 
- 
getArrayGetCaller
- 
getArrayGetResultType
- 
getArraySetCaller
- 
setArraySetAndGet
- 
arrayGetpublic boolean arrayGet(int operation, boolean simulate) 
- 
arraySetpublic boolean arraySet(boolean simulate) 
- 
writePostOrPrefixMethodpublic boolean writePostOrPrefixMethod(int operation, boolean simulate) 
- 
writePlusPlusprotected abstract void writePlusPlus(org.objectweb.asm.MethodVisitor mv) 
- 
writeMinusMinusprotected abstract void writeMinusMinus(org.objectweb.asm.MethodVisitor mv) 
 
-