com.ibm.wala.dataflow.IFDS
Class ExplodedSupergraphPath<T>

java.lang.Object
  extended by com.ibm.wala.dataflow.IFDS.ExplodedSupergraphPath<T>

public class ExplodedSupergraphPath<T>
extends java.lang.Object

A realizable path in the exploded supergraph


Method Summary
static
<T> ExplodedSupergraphPath<T>
findRealizablePath(ExplodedSupergraphWithSummaryEdges<T> esg, ExplodedSupergraphNode<T> sink)
          Find a realizable path in the exploded supergraph to a sink node, from any exploded supergraph node which represents the universal (0) factoid.
 java.util.Iterator iterator()
           
static
<T> void
pruneBoringCalls(ISupergraph supergraph, ExplodedSupergraphPath<T> path)
          Create a brief(er) summary of a path, which excludes call/return pairs in which no state transitions occur
static
<T> void
pruneForCallReturn(ISupergraph<T,?> supergraph, ExplodedSupergraphPath<T> path)
          Create a brief(er) summary of a path, which includes only call and return nodes
static
<T> java.util.List<ExplodedSupergraphNode<T>>
pruneListForCallReturn(ISupergraph<T,?> supergraph, java.util.List<ExplodedSupergraphNode<T>> L)
          Create a brief(er) summary of a path, which includes only call and return nodes
static
<T> ExplodedSupergraphPath<T>
summarize(ISupergraph<T,?> supergraph, ExplodedSupergraphPath<T> path)
          Create a brief(er) summary of a path, which includes: 1) only call and return nodes, and 2) excludes call/return pairs in which no state transitions occur
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

iterator

public java.util.Iterator iterator()
Returns:
Iterator

findRealizablePath

public static <T> ExplodedSupergraphPath<T> findRealizablePath(ExplodedSupergraphWithSummaryEdges<T> esg,
                                                               ExplodedSupergraphNode<T> sink)
Find a realizable path in the exploded supergraph to a sink node, from any exploded supergraph node which represents the universal (0) factoid.

Returns:
an ExplodedSupergraphPath found, or null if not found.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

summarize

public static <T> ExplodedSupergraphPath<T> summarize(ISupergraph<T,?> supergraph,
                                                      ExplodedSupergraphPath<T> path)
Create a brief(er) summary of a path, which includes: 1) only call and return nodes, and 2) excludes call/return pairs in which no state transitions occur


pruneBoringCalls

public static <T> void pruneBoringCalls(ISupergraph supergraph,
                                        ExplodedSupergraphPath<T> path)
Create a brief(er) summary of a path, which excludes call/return pairs in which no state transitions occur

Throws:
java.lang.IllegalArgumentException - if path is null

pruneForCallReturn

public static <T> void pruneForCallReturn(ISupergraph<T,?> supergraph,
                                          ExplodedSupergraphPath<T> path)
Create a brief(er) summary of a path, which includes only call and return nodes

Throws:
java.lang.IllegalArgumentException - if path is null

pruneListForCallReturn

public static <T> java.util.List<ExplodedSupergraphNode<T>> pruneListForCallReturn(ISupergraph<T,?> supergraph,
                                                                                   java.util.List<ExplodedSupergraphNode<T>> L)
Create a brief(er) summary of a path, which includes only call and return nodes