
org.opalj.br.cp.CONSTANT_InvokeDynamic_info.scala Maven / Gradle / Ivy
The newest version!
/* BSD 2-Clause License - see OPAL/LICENSE for details. */
package org.opalj
package br
package cp
import org.opalj.bi.ConstantPoolTags
/**
* Is used by the invokedynamic instruction to specify a bootstrap method, the dynamic
* invocation name, the argument and return types of the call, and optionally, a
* sequence of additional constants called static arguments to the bootstrap method.
*
* @param bootstrapMethodAttributeIndex This is an index into the bootstrap table.
* Since the bootstrap table is a class level attribute it is only possible
* to resolve this reference after loading the entire class file (class level
* attributes are loaded last).
*
* @author Michael Eichberg
* @author Andre Pacak
*/
case class CONSTANT_InvokeDynamic_info(
bootstrapMethodAttributeIndex: Int,
nameAndTypeIndex: Constant_Pool_Index
) extends Constant_Pool_Entry {
override def asInvokeDynamic: this.type = this
override def tag: Int = ConstantPoolTags.CONSTANT_InvokeDynamic_ID
def methodName(cp: Constant_Pool): String = cp(nameAndTypeIndex).asNameAndType.name(cp)
def methodDescriptor(cp: Constant_Pool): MethodDescriptor = {
cp(nameAndTypeIndex).asNameAndType.methodDescriptor(cp)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy