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

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

Go to download

JMockit is a Java toolkit for automated developer testing. It contains mocking/faking APIs and a code coverage tool, supporting both JUnit and TestNG. The mocking APIs allow all kinds of Java code, without testability restrictions, to be tested in isolation from selected dependencies.

There is a newer version: 1.49
Show newest version
package mockit.asm.classes;

import javax.annotation.*;

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

final class InnerClassesWriter extends AttributeWriter
{
   @Nonnull private final ByteVector innerClasses;
   @Nonnegative private int innerClassesCount;

   InnerClassesWriter(@Nonnull ConstantPoolGeneration cp) {
      super(cp, "InnerClasses");
      innerClasses = new ByteVector();
   }

   void add(@Nonnull String name, @Nullable String outerName, @Nullable String innerName, int access) {
      innerClasses.putShort(cp.newClass(name));
      innerClasses.putShort(outerName == null ? 0 : cp.newClass(outerName));
      innerClasses.putShort(innerName == null ? 0 : cp.newUTF8(innerName));
      innerClasses.putShort(access);
      innerClassesCount++;
   }

   @Nonnegative @Override
   public int getSize() { return 8 + innerClasses.getLength(); }

   @Override
   public void put(@Nonnull ByteVector out) {
      put(out, 2 + innerClasses.getLength());
      out.putShort(innerClassesCount);
      out.putByteVector(innerClasses);
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy