java.lang.Object
org.eclipse.persistence.internal.libraries.asm.ConstantDynamic

public final class ConstantDynamic extends Object
A constant whose value is computed at runtime, with a bootstrap method.
  • Constructor Details

    • ConstantDynamic

      public ConstantDynamic(String name, String descriptor, Handle bootstrapMethod, Object... bootstrapMethodArguments)
      Constructs a new ConstantDynamic.
      Parameters:
      name - the constant name (can be arbitrary).
      descriptor - the constant type (must be a field descriptor).
      bootstrapMethod - the bootstrap method to use to compute the constant value at runtime.
      bootstrapMethodArguments - the arguments to pass to the bootstrap method, in order to compute the constant value at runtime.
  • Method Details

    • getName

      public String getName()
      Returns the name of this constant.
      Returns:
      the name of this constant.
    • getDescriptor

      public String getDescriptor()
      Returns the type of this constant.
      Returns:
      the type of this constant, as a field descriptor.
    • getBootstrapMethod

      public Handle getBootstrapMethod()
      Returns the bootstrap method used to compute the value of this constant.
      Returns:
      the bootstrap method used to compute the value of this constant.
    • getBootstrapMethodArgumentCount

      public int getBootstrapMethodArgumentCount()
      Returns the number of arguments passed to the bootstrap method, in order to compute the value of this constant.
      Returns:
      the number of arguments passed to the bootstrap method, in order to compute the value of this constant.
    • getBootstrapMethodArgument

      public Object getBootstrapMethodArgument(int index)
      Returns an argument passed to the bootstrap method, in order to compute the value of this constant.
      Parameters:
      index - an argument index, between 0 and getBootstrapMethodArgumentCount() (exclusive).
      Returns:
      the argument passed to the bootstrap method, with the given index.
    • getSize

      public int getSize()
      Returns the size of this constant.
      Returns:
      the size of this constant, i.e., 2 for long and double, 1 otherwise.
    • equals

      public boolean equals(Object object)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object