Class BytecodeLoader


  • public final class BytecodeLoader
    extends java.lang.Object
    • Field Detail

      • logger

        private static final com.chrisnewland.freelogj.Logger logger
      • PATTERN_BYTECODE_INSTRUCTION

        private static final java.util.regex.Pattern PATTERN_BYTECODE_INSTRUCTION
    • Constructor Detail

      • BytecodeLoader

        private BytecodeLoader()
    • Method Detail

      • buildMetaClassFromClass

        public static MetaClass buildMetaClassFromClass​(java.lang.String fqClassName)
      • fetchBytecodeForClass

        public static ClassBC fetchBytecodeForClass​(java.util.List<java.lang.String> classLocations,
                                                    java.lang.String fqClassName,
                                                    boolean cacheBytecode)
      • fetchBytecodeForClass

        public static ClassBC fetchBytecodeForClass​(java.util.List<java.lang.String> classLocations,
                                                    java.lang.String fqClassName,
                                                    java.nio.file.Path javapPath,
                                                    boolean cacheBytecode)
      • getBytecodeStringViaProcess

        private static java.lang.String getBytecodeStringViaProcess​(java.util.List<java.lang.String> classLocations,
                                                                    java.lang.String fqClassName,
                                                                    java.nio.file.Path javapPath)
                                                             throws java.io.IOException
        Throws:
        java.io.IOException
      • parseByteCodeFromString

        private static ClassBC parseByteCodeFromString​(java.lang.String fqClassName,
                                                       java.lang.String byteCodeString,
                                                       boolean cacheBytecode)
      • parse

        public static ClassBC parse​(java.lang.String fqClassName,
                                    java.lang.String[] bytecodeLines,
                                    boolean cacheBytecode)
      • buildClassGenerics

        public static void buildClassGenerics​(java.lang.String line,
                                              ClassBC classBytecode)
      • isRunTimeVisibleAnnotation

        private static boolean isRunTimeVisibleAnnotation​(java.lang.String line)
      • isLocalVariableLine

        private static boolean isLocalVariableLine​(java.lang.String line)
      • isStackMapTable

        private static boolean isStackMapTable​(java.lang.String line)
      • couldBeMemberSignature

        private static boolean couldBeMemberSignature​(java.lang.String line)
      • getVersionPart

        private static int getVersionPart​(java.lang.String line)
      • getSourceFile

        private static java.lang.String getSourceFile​(java.lang.String line)
      • parseInstructions

        public static java.util.List<BytecodeInstruction> parseInstructions​(java.lang.String bytecode)
      • storeLineNumberTable

        private static void storeLineNumberTable​(java.lang.String fqClassName,
                                                 MemberBytecode memberBytecode,
                                                 java.lang.String tableLines,
                                                 MemberSignatureParts msp)
      • storeExceptionTable

        private static void storeExceptionTable​(java.lang.String fqClassName,
                                                MemberBytecode memberBytecode,
                                                java.lang.String exceptionLines,
                                                MemberSignatureParts msp)
      • processParameters

        private static void processParameters​(java.lang.String paramString,
                                              BytecodeInstruction instruction)