Package org.codehaus.groovy.classgen.asm.indy

# Class InvokeDynamicWriter

java.lang.Object
org.codehaus.groovy.classgen.asm.InvocationWriter
org.codehaus.groovy.classgen.asm.indy.InvokeDynamicWriter

public class InvokeDynamicWriter extends InvocationWriter
This Writer is used to generate the call invocation byte codes for usage by invokedynamic.

Author:
  Jochen "blackdrag" Theodorou

## Field Summary

### Fields inherited from class org.codehaus.groovy.classgen.asm.InvocationWriter

`castToVargsArray, invokeClosureMethod, invokeMethod, invokeMethodOnCurrent, invokeMethodOnSuper, invokeStaticMethod`

## Constructor Summary

Constructors
Constructor
Description
`InvokeDynamicWriter(WriterController wc)`

## Method Summary

Modifier and Type
Method
Description
`void`
`castNonPrimitiveToBool(ClassNode sourceType)`
`void`
`castToNonPrimitiveIfNecessary(ClassNode sourceType, ClassNode targetType)`
This converts sourceType to a non primitive by using Groovy casting.
`void`
`coerce(ClassNode from, ClassNode target)`
`protected boolean`
`makeCachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)`
`void`
`makeSingleArgumentCall(Expression receiver, String message, Expression arguments)`
`protected void`
`writeGetProperty(Expression receiver, String propertyName, boolean safe, boolean implicitThis, boolean groovyObject)`
`protected void`
`writeNormalConstructorCall(ConstructorCallExpression call)`

### Methods inherited from class org.codehaus.groovy.classgen.asm.InvocationWriter

`finnishConstructorCall, getMethodName, loadArguments, makeArgumentList, makeCall, makeCall, makeClassForNameCall, makeDirectCall, makeUncachedCall, prepareConstructorCall, writeAICCall, writeDirectMethodCall, writeInvokeConstructor, writeInvokeMethod, writeInvokeStaticMethod, writeSpecialConstructorCall`

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

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

## Constructor Details

### InvokeDynamicWriter

public InvokeDynamicWriter(WriterController wc)

## Method Details

### makeCachedCall

protected boolean makeCachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)

Overrides:
  `makeCachedCall` in class `InvocationWriter`

### makeSingleArgumentCall

public void makeSingleArgumentCall(Expression receiver, String message, Expression arguments)

Overrides:
  `makeSingleArgumentCall` in class `InvocationWriter`

### writeGetProperty

protected void writeGetProperty(Expression receiver, String propertyName, boolean safe, boolean implicitThis, boolean groovyObject)

### writeNormalConstructorCall

protected void writeNormalConstructorCall(ConstructorCallExpression call)

Overrides:
  `writeNormalConstructorCall` in class `InvocationWriter`

### coerce

public void coerce(ClassNode from, ClassNode target)

Overrides:
  `coerce` in class `InvocationWriter`

### castToNonPrimitiveIfNecessary

public void castToNonPrimitiveIfNecessary(ClassNode sourceType, ClassNode targetType)
Description copied from class: `InvocationWriter`
This converts sourceType to a non primitive by using Groovy casting. sourceType might be a primitive This might be done using SBA#castToType

Overrides:
  `castToNonPrimitiveIfNecessary` in class `InvocationWriter`

### castNonPrimitiveToBool

public void castNonPrimitiveToBool(ClassNode sourceType)

Overrides:
  `castNonPrimitiveToBool` in class `InvocationWriter`