类 JvmCfaNode
- java.lang.Object
-
- proguard.analysis.cpa.jvm.cfa.nodes.JvmCfaNode
-
- 所有已实现的接口:
CfaNode<JvmCfaEdge,MethodSignature>
- 直接已知子类:
JvmCatchCfaNode,JvmUnknownCfaNode
public class JvmCfaNode extends java.lang.Object implements CfaNode<JvmCfaEdge,MethodSignature>
A node representing a code location of a JVM method identified by aMethodSignatureand an offset.
-
-
字段概要
-
从接口继承的字段 proguard.analysis.cpa.interfaces.CfaNode
EXCEPTION_EXIT_NODE_OFFSET, EXIT_NODES_OFFSET, RETURN_EXIT_NODE_OFFSET
-
-
构造器概要
构造器 构造器 说明 JvmCfaNode(java.util.List<JvmCfaEdge> leavingEdges, java.util.List<JvmCfaEdge> enteringEdges, MethodSignature signature, int offset, Clazz clazz)Create JVM CFA node with the specified entering and exiting edges.JvmCfaNode(MethodSignature signature, int offset, Clazz clazz)Create a JVM CFA node without edges.
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 voidaddEnteringEdge(JvmCfaEdge edge)Adds an edge entering the node.voidaddLeavingEdge(JvmCfaEdge edge)Adds an edge leaving the node.ClazzgetClazz()Returns the class the node belongs to.java.util.List<JvmCfaEdge>getEnteringEdges()Returns a list of entering edges.java.util.Collection<JvmCfaEdge>getEnteringIntraproceduralEdges()Returns the edges entering the node that do not come from another method.java.util.Optional<JvmCfaEdge>getEnteringInvokeEdge()If the node is the location after a method invocation, returns the enteringJvmInstructionCfaEdgefor the method invocation, empty otherwise.java.util.Collection<JvmCallCfaEdge>getKnownMethodCallEdges()Returns all the interprocedural call edges leaving the node with target method the code of which is known.java.util.List<JvmCfaEdge>getLeavingEdges()Returns a list of leaving edges.java.util.Collection<JvmCallCfaEdge>getLeavingInterproceduralEdges()Returns the edges entering the node that come from another method.java.util.Collection<JvmCfaEdge>getLeavingIntraproceduralEdges()Returns the edges leaving the node that do not come from another method.java.util.Optional<JvmCfaEdge>getLeavingInvokeEdge()If the node is the location before a method invocation, returns the leavingJvmInstructionCfaEdgefor the method invocation, empty otherwise.intgetOffset()Returns the instruction offset.MethodSignaturegetSignature()Returns the function signature it belongs to.inthashCode()booleanisEntryNode()Checks whether the node is a function entry.booleanisExitNode()Checks whether the node is a function exit.java.lang.StringtoString()-
从接口继承的方法 proguard.analysis.cpa.interfaces.CfaNode
isExceptionExitNode, isReturnExitNode, isUnknownNode
-
-
-
-
构造器详细资料
-
JvmCfaNode
public JvmCfaNode(MethodSignature signature, int offset, Clazz clazz)
Create a JVM CFA node without edges. Since in most cases we expect to have just one element in the lists of leaving and entering edges the lists are initialized with size 1.- 参数:
signature- the signature of the method the node belongs tooffset- a number indicating the program location offset of the nodeclazz- the class of the method the node belongs to
-
JvmCfaNode
public JvmCfaNode(java.util.List<JvmCfaEdge> leavingEdges, java.util.List<JvmCfaEdge> enteringEdges, MethodSignature signature, int offset, Clazz clazz)
Create JVM CFA node with the specified entering and exiting edges.- 参数:
leavingEdges- a list of edges leaving the nodeenteringEdges- a list of edges entering the nodesignature- the signature of the method the node belongs tooffset- a number indicating the program location offset of the nodeclazz- the class of the method the node belongs to
-
-
方法详细资料
-
getLeavingEdges
public java.util.List<JvmCfaEdge> getLeavingEdges()
从接口复制的说明:CfaNodeReturns a list of leaving edges.- 指定者:
getLeavingEdges在接口中CfaNode<JvmCfaEdge,MethodSignature>
-
getEnteringEdges
public java.util.List<JvmCfaEdge> getEnteringEdges()
从接口复制的说明:CfaNodeReturns a list of entering edges.- 指定者:
getEnteringEdges在接口中CfaNode<JvmCfaEdge,MethodSignature>
-
isEntryNode
public boolean isEntryNode()
从接口复制的说明:CfaNodeChecks whether the node is a function entry.- 指定者:
isEntryNode在接口中CfaNode<JvmCfaEdge,MethodSignature>
-
isExitNode
public boolean isExitNode()
从接口复制的说明:CfaNodeChecks whether the node is a function exit.- 指定者:
isExitNode在接口中CfaNode<JvmCfaEdge,MethodSignature>
-
getSignature
public MethodSignature getSignature()
从接口复制的说明:CfaNodeReturns the function signature it belongs to.- 指定者:
getSignature在接口中CfaNode<JvmCfaEdge,MethodSignature>
-
getOffset
public int getOffset()
从接口复制的说明:CfaNodeReturns the instruction offset.- 指定者:
getOffset在接口中CfaNode<JvmCfaEdge,MethodSignature>
-
hashCode
public int hashCode()
- 覆盖:
hashCode在类中java.lang.Object
-
getClazz
public Clazz getClazz()
Returns the class the node belongs to.
-
addLeavingEdge
public void addLeavingEdge(JvmCfaEdge edge)
Adds an edge leaving the node.
-
addEnteringEdge
public void addEnteringEdge(JvmCfaEdge edge)
Adds an edge entering the node.
-
getEnteringInvokeEdge
public java.util.Optional<JvmCfaEdge> getEnteringInvokeEdge()
If the node is the location after a method invocation, returns the enteringJvmInstructionCfaEdgefor the method invocation, empty otherwise.
-
getLeavingInvokeEdge
public java.util.Optional<JvmCfaEdge> getLeavingInvokeEdge()
If the node is the location before a method invocation, returns the leavingJvmInstructionCfaEdgefor the method invocation, empty otherwise.
-
getEnteringIntraproceduralEdges
public java.util.Collection<JvmCfaEdge> getEnteringIntraproceduralEdges()
Returns the edges entering the node that do not come from another method.
-
getLeavingIntraproceduralEdges
public java.util.Collection<JvmCfaEdge> getLeavingIntraproceduralEdges()
Returns the edges leaving the node that do not come from another method.
-
getLeavingInterproceduralEdges
public java.util.Collection<JvmCallCfaEdge> getLeavingInterproceduralEdges()
Returns the edges entering the node that come from another method.
-
getKnownMethodCallEdges
public java.util.Collection<JvmCallCfaEdge> getKnownMethodCallEdges()
Returns all the interprocedural call edges leaving the node with target method the code of which is known.
-
toString
public java.lang.String toString()
- 覆盖:
toString在类中java.lang.Object
-
-