All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mockit.asm.constantPool.DynamicItem Maven / Gradle / Ivy

package mockit.asm.constantPool;

import javax.annotation.*;

import mockit.asm.jvmConstants.ConstantPoolTypes;

public final class DynamicItem extends TypeOrMemberItem
{
   @Nonnegative private int bsmIndex;

   public DynamicItem(@Nonnegative int index) { super(index); }

   DynamicItem(@Nonnegative int index, @Nonnull DynamicItem item) {
      super(index, item);
      bsmIndex = item.bsmIndex;
   }

   /**
    * Sets the type, name, desc, and index of the constant or invoke dynamic item.
    *
    * @param type  one of {@link ConstantPoolTypes#INDY} or {@link ConstantPoolTypes#CONDY}, for invoke or constant dynamic, respectively
    * @param name  the item name
    * @param desc  the item type descriptor
    * @param index zero based index into the class attribute "BootstrapMethods".
    */
   public void set(int type, @Nonnull String name, @Nonnull String desc, @Nonnegative int index) {
      super.type = type;
      bsmIndex = index;
      setValuesAndHashcode(name, desc, index);
   }

   @Override
   boolean isEqualTo(@Nonnull Item item) {
      DynamicItem other = (DynamicItem) item;
      return other.bsmIndex == bsmIndex && isEqualTo(other);
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy