Class Kind

java.lang.Object
qilin.core.builder.callgraph.Kind
All Implemented Interfaces:
Numberable

public final class Kind extends Object implements Numberable
Enumeration type representing the kind of a call graph edge.
Author:
Ondrej Lhotak
  • Field Details

    • INVALID

      public static final Kind INVALID
    • STATIC

      public static final Kind STATIC
      Due to explicit invokestatic instruction.
    • VIRTUAL

      public static final Kind VIRTUAL
      Due to explicit invokevirtual instruction.
    • INTERFACE

      public static final Kind INTERFACE
      Due to explicit invokeinterface instruction.
    • SPECIAL

      public static final Kind SPECIAL
      Due to explicit invokespecial instruction.
    • CLINIT

      public static final Kind CLINIT
      Implicit call to static initializer.
    • GENERIC_FAKE

      public static final Kind GENERIC_FAKE
      Fake edges from our generic callback model.
    • THREAD

      public static final Kind THREAD
      Implicit call to Thread.run() due to Thread.start() call.
    • EXECUTOR

      public static final Kind EXECUTOR
      Implicit call to java.lang.Runnable.run() due to Executor.execute() call.
    • ASYNCTASK

      public static final Kind ASYNCTASK
      Implicit call to AsyncTask.doInBackground() due to AsyncTask.execute() call.
    • FINALIZE

      public static final Kind FINALIZE
      Implicit call to java.lang.ref.Finalizer.register from new bytecode.
    • HANDLER

      public static final Kind HANDLER
      Implicit call to Handler.handleMessage(android.os.Message) due to Handler.sendxxxxMessagexxxx() call.
    • INVOKE_FINALIZE

      public static final Kind INVOKE_FINALIZE
      Implicit call to finalize() from java.lang.ref.Finalizer.invokeFinalizeMethod().
    • PRIVILEGED

      public static final Kind PRIVILEGED
      Implicit call to run() through AccessController.doPrivileged().
    • NEWINSTANCE

      public static final Kind NEWINSTANCE
      Implicit call to constructor from java.lang.Class.newInstance().
    • REFL_INVOKE

      public static final Kind REFL_INVOKE
      Due to call to Method.invoke(..).
    • REFL_CONSTR_NEWINSTANCE

      public static final Kind REFL_CONSTR_NEWINSTANCE
      Due to call to Constructor.newInstance(..).
    • REFL_CLASS_NEWINSTANCE

      public static final Kind REFL_CLASS_NEWINSTANCE
      Due to call to Class.newInstance(..) when reflection log is enabled.
  • Method Details

    • name

      public String name()
    • getNumber

      public int getNumber()
      Specified by:
      getNumber in interface Numberable
    • setNumber

      public void setNumber(int num)
      Specified by:
      setNumber in interface Numberable
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • passesParameters

      public boolean passesParameters()
    • isFake

      public boolean isFake()
    • isExplicit

      public boolean isExplicit()
      Returns true if the call is due to an explicit invoke statement.
    • isInstance

      public boolean isInstance()
      Returns true if the call is due to an explicit instance invoke statement.
    • isVirtual

      public boolean isVirtual()
      Returns true if the call is due to an explicit virtual invoke statement.
    • isSpecial

      public boolean isSpecial()
    • isClinit

      public boolean isClinit()
      Returns true if the call is to static initializer.
    • isStatic

      public boolean isStatic()
      Returns true if the call is due to an explicit static invoke statement.
    • isThread

      public boolean isThread()
    • isExecutor

      public boolean isExecutor()
    • isAsyncTask

      public boolean isAsyncTask()
    • isPrivileged

      public boolean isPrivileged()
    • isReflection

      public boolean isReflection()
    • isReflInvoke

      public boolean isReflInvoke()
    • isHandler

      public boolean isHandler()
    • passesParameters

      public static boolean passesParameters(Kind k)
    • isFake

      public static boolean isFake(Kind k)
    • isExplicit

      public static boolean isExplicit(Kind k)
      Returns true if the call is due to an explicit invoke statement.
    • isInstance

      public static boolean isInstance(Kind k)
      Returns true if the call is due to an explicit instance invoke statement.
    • isVirtual

      public static boolean isVirtual(Kind k)
      Returns true if the call is due to an explicit virtual invoke statement.
    • isSpecial

      public static boolean isSpecial(Kind k)
    • isClinit

      public static boolean isClinit(Kind k)
      Returns true if the call is to static initializer.
    • isStatic

      public static boolean isStatic(Kind k)
      Returns true if the call is due to an explicit static invoke statement.
    • isThread

      public static boolean isThread(Kind k)
    • isExecutor

      public static boolean isExecutor(Kind k)
    • isAsyncTask

      public static boolean isAsyncTask(Kind k)
    • isPrivileged

      public static boolean isPrivileged(Kind k)
    • isReflection

      public static boolean isReflection(Kind k)
    • isReflInvoke

      public static boolean isReflInvoke(Kind k)
    • isHandler

      public static boolean isHandler(Kind k)