Package one.nio.gen
Class BytecodeGenerator
- java.lang.Object
-
- java.lang.ClassLoader
-
- one.nio.gen.BytecodeGenerator
-
- All Implemented Interfaces:
BytecodeGeneratorMXBean,org.objectweb.asm.Opcodes
- Direct Known Subclasses:
DateFormatGenerator,DelegateGenerator,RequestHandlerGenerator,StubGenerator
public class BytecodeGenerator extends ClassLoader implements BytecodeGeneratorMXBean, org.objectweb.asm.Opcodes
-
-
Field Summary
Fields Modifier and Type Field Description protected StringdumpPathstatic BytecodeGeneratorINSTANCEprotected AtomicIntegertotalBytesprotected AtomicIntegertotalClasses-
Fields inherited from interface org.objectweb.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V9
-
-
Constructor Summary
Constructors Constructor Description BytecodeGenerator()BytecodeGenerator(ClassLoader parent)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Class<?>defineClass(byte[] classData)Class<?>defineClassIfNotExists(String className, byte[] classData)voiddumpClass(byte[] classData, String className)static voidemitBoxing(org.objectweb.asm.MethodVisitor mv, Class type)static voidemitDouble(org.objectweb.asm.MethodVisitor mv, double c)static voidemitFloat(org.objectweb.asm.MethodVisitor mv, float c)static voidemitGetField(org.objectweb.asm.MethodVisitor mv, Field f)static voidemitInt(org.objectweb.asm.MethodVisitor mv, int c)static voidemitInvoke(org.objectweb.asm.MethodVisitor mv, MethodHandleInfo m)static voidemitInvoke(org.objectweb.asm.MethodVisitor mv, Constructor c)static voidemitInvoke(org.objectweb.asm.MethodVisitor mv, Method m)static voidemitLong(org.objectweb.asm.MethodVisitor mv, long c)static voidemitPutField(org.objectweb.asm.MethodVisitor mv, Field f)static voidemitThrow(org.objectweb.asm.MethodVisitor mv, String exceptionClass, String message)static voidemitUnboxing(org.objectweb.asm.MethodVisitor mv, Class type)StringgetDumpPath()intgetTotalBytes()intgetTotalClasses()<T> Tinstantiate(byte[] classData, Class<T> iface)voidsetDumpPath(String dumpPath)-
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
-
-
-
Field Detail
-
INSTANCE
public static final BytecodeGenerator INSTANCE
-
totalClasses
protected final AtomicInteger totalClasses
-
totalBytes
protected final AtomicInteger totalBytes
-
dumpPath
protected String dumpPath
-
-
Constructor Detail
-
BytecodeGenerator
public BytecodeGenerator()
-
BytecodeGenerator
public BytecodeGenerator(ClassLoader parent)
-
-
Method Detail
-
defineClass
public Class<?> defineClass(byte[] classData)
-
instantiate
public <T> T instantiate(byte[] classData, Class<T> iface)
-
dumpClass
public void dumpClass(byte[] classData, String className)
-
emitGetField
public static void emitGetField(org.objectweb.asm.MethodVisitor mv, Field f)
-
emitPutField
public static void emitPutField(org.objectweb.asm.MethodVisitor mv, Field f)
-
emitInvoke
public static void emitInvoke(org.objectweb.asm.MethodVisitor mv, Method m)
-
emitInvoke
public static void emitInvoke(org.objectweb.asm.MethodVisitor mv, MethodHandleInfo m)
-
emitInvoke
public static void emitInvoke(org.objectweb.asm.MethodVisitor mv, Constructor c)
-
emitThrow
public static void emitThrow(org.objectweb.asm.MethodVisitor mv, String exceptionClass, String message)
-
emitInt
public static void emitInt(org.objectweb.asm.MethodVisitor mv, int c)
-
emitLong
public static void emitLong(org.objectweb.asm.MethodVisitor mv, long c)
-
emitFloat
public static void emitFloat(org.objectweb.asm.MethodVisitor mv, float c)
-
emitDouble
public static void emitDouble(org.objectweb.asm.MethodVisitor mv, double c)
-
emitBoxing
public static void emitBoxing(org.objectweb.asm.MethodVisitor mv, Class type)
-
emitUnboxing
public static void emitUnboxing(org.objectweb.asm.MethodVisitor mv, Class type)
-
getDumpPath
public String getDumpPath()
- Specified by:
getDumpPathin interfaceBytecodeGeneratorMXBean
-
setDumpPath
public void setDumpPath(String dumpPath)
- Specified by:
setDumpPathin interfaceBytecodeGeneratorMXBean
-
getTotalClasses
public int getTotalClasses()
- Specified by:
getTotalClassesin interfaceBytecodeGeneratorMXBean
-
getTotalBytes
public int getTotalBytes()
- Specified by:
getTotalBytesin interfaceBytecodeGeneratorMXBean
-
-