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

mockit.asm.classes.NestMembersWriter Maven / Gradle / Ivy

package mockit.asm.classes;

import javax.annotation.*;

import mockit.asm.constantPool.*;
import mockit.asm.util.*;

final class NestMembersWriter extends AttributeWriter
{
   @Nonnegative private final int[] memberClassNameIndices;

   NestMembersWriter(@Nonnull ConstantPoolGeneration cp, @Nonnull String[] memberClassNames) {
      super(cp, "NestMembers");

      memberClassNameIndices = new int[memberClassNames.length];

      for (int i = 0; i < memberClassNames.length; i++) {
         memberClassNameIndices[i] = cp.newClass(memberClassNames[i]);
      }
   }

   @Nonnegative @Override
   public int getSize() { return 8 + 2 * memberClassNameIndices.length; }

   @Override
   public void put(@Nonnull ByteVector out) {
      int numberOfMembers = memberClassNameIndices.length;
      put(out, 2 + 2 * numberOfMembers);
      out.putShort(numberOfMembers);

      for (int memberClassNameIndex : memberClassNameIndices) {
         out.putShort(memberClassNameIndex);
      }
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy