Packages

  • package root
    Definition Classes
    root
  • package org
    Definition Classes
    root
  • package opalj
    Definition Classes
    org
  • package br

    In this representation of Java bytecode references to a Java class file's constant pool and to attributes are replaced by direct references to the corresponding constant pool entries.

    In this representation of Java bytecode references to a Java class file's constant pool and to attributes are replaced by direct references to the corresponding constant pool entries. This facilitates developing analyses and fosters comprehension.

    Based on the fact that indirect references to constant pool entries are resolved and replaced by direct references this representation is called the resolved representation.

    This representation of Java bytecode is considered as OPAL's standard representation for writing Scala based analyses. This representation is engineered such that it facilitates writing analyses that use pattern matching.

    Definition Classes
    opalj
  • package cfg
    Definition Classes
    br
  • BasicBlock
  • CFG
  • CFGFactory
  • CFGNode
  • CatchNode
  • ExitNode
o

org.opalj.br.cfg

CFGFactory

object CFGFactory

A factory for computing control flow graphs for methods.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CFGFactory
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply(implicit code: Code, classHierarchy: ClassHierarchy = ...): CFG[Instruction, Code]

    Constructs the control flow graph for a given method.

    Constructs the control flow graph for a given method.

    The constructed CFG basically consists of the code's basic blocks. Additionally, two artifical exit nodes are added. One artificial exit node is added to facilitate the navigation to all normal return instructions. A second artificial node is added that enables the navigation to all instructions that led to an abnormal return. Exception handlers are directly added to the graph using CatchNodes. Each exception handler is associated with exactly one CatchNode and all instructions that may throw a corresponding exception will have the respective CatchNode as a successor.

    code

    A method's body (i.e., the code.)

    classHierarchy

    The class hierarchy that will be used to determine if a certain exception is potentially handled by an exception handler.

    Note

    The algorithm supports all Java bytecode instructions - in particular JSR/RET.

    ,

    The code is parsed linearly and the graph is therefore constructed implicitly. Hence, it is possible that the graph contains nodes that cannot be reached from the start node.

  5. def apply(method: Method, classHierarchy: ClassHierarchy): Option[CFG[Instruction, Code]]
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped