Class ClassFlow


  • public class ClassFlow
    extends org.objectweb.asm.tree.ClassNode
    This class reads a .class file (or stream), wraps each method with a MethodFlow object and optionally analyzes it.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) java.lang.String classDesc  
      byte[] code
      the original bytecode associated with the class
      KilimContext context  
      org.objectweb.asm.ClassReader cr  
      private boolean isPausable
      true if any of the methods contained in the class file is pausable.
      boolean isWoven
      true if the .class being read is already woven.
      (package private) java.util.ArrayList<MethodFlow> methodFlows  
      • Fields inherited from class org.objectweb.asm.tree.ClassNode

        access, attrs, fields, innerClasses, interfaces, invisibleAnnotations, invisibleTypeAnnotations, methods, module, name, nestHostClass, nestMembers, outerClass, outerMethod, outerMethodDesc, permittedSubclasses, recordComponents, signature, sourceDebug, sourceFile, superName, version, visibleAnnotations, visibleTypeAnnotations
      • Fields inherited from class org.objectweb.asm.ClassVisitor

        api, cv
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.ArrayList<MethodFlow> analyze​(boolean forceAnalysis)  
      java.lang.String getClassDescriptor()  
      java.lang.String getClassName()  
      java.util.ArrayList<MethodFlow> getMethodFlows()  
      private MethodFlow getOrigWithSameSig​(MethodFlow bridgeMethod)  
      MethodFlow getSAM()  
      (package private) boolean isInterface()  
      (package private) boolean isJava7()  
      boolean isPausable()  
      org.objectweb.asm.MethodVisitor visitMethod​(int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions)  
      • Methods inherited from class org.objectweb.asm.tree.ClassNode

        accept, check, visit, visitAnnotation, visitAttribute, visitEnd, visitField, visitInnerClass, visitModule, visitNestHost, visitNestMember, visitOuterClass, visitPermittedSubclass, visitRecordComponent, visitSource, visitTypeAnnotation
      • Methods inherited from class org.objectweb.asm.ClassVisitor

        getDelegate
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • methodFlows

        java.util.ArrayList<MethodFlow> methodFlows
      • cr

        public org.objectweb.asm.ClassReader cr
      • classDesc

        java.lang.String classDesc
      • isPausable

        private boolean isPausable
        true if any of the methods contained in the class file is pausable. ClassWeaver uses it later to avoid weaving if isPausable isn't true.
      • isWoven

        public boolean isWoven
        true if the .class being read is already woven.
      • code

        public byte[] code
        the original bytecode associated with the class
    • Constructor Detail

      • ClassFlow

        public ClassFlow​(KilimContext context,
                         java.io.InputStream is)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • ClassFlow

        public ClassFlow​(KilimContext context,
                         java.lang.String aClassName)
                  throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • visitMethod

        public org.objectweb.asm.MethodVisitor visitMethod​(int access,
                                                           java.lang.String name,
                                                           java.lang.String desc,
                                                           java.lang.String signature,
                                                           java.lang.String[] exceptions)
        Overrides:
        visitMethod in class org.objectweb.asm.tree.ClassNode
      • getMethodFlows

        public java.util.ArrayList<MethodFlow> getMethodFlows()
      • getClassDescriptor

        public java.lang.String getClassDescriptor()
      • getClassName

        public java.lang.String getClassName()
      • isPausable

        public boolean isPausable()
      • isInterface

        boolean isInterface()
      • isJava7

        boolean isJava7()