harpoon.Analysis.PointerAnalysis
Class EdgesNCallees

java.lang.Object
  |
  +--harpoon.Analysis.PointerAnalysis.EdgesNCallees
All Implemented Interfaces:
Serializable

public class EdgesNCallees
extends Object
implements Serializable

EdgesNCallees models a precedence relation between (inside or outside) edges and call sites skipped by an on demand analysis. This precedence relation may be strict or not.

See Also:
Serialized Form

Field Summary
static boolean DEBUG
           
 Map edges
           
 
Constructor Summary
EdgesNCallees()
          Creates a EdgesNCallees coding a strict precedence relation.
EdgesNCallees(boolean strictness)
          Creates a EdgesNCallees coding a strict precedence relation iff the argument is true.
 
Method Summary
 void add(PANode head, String f, PANode tail, Set callees)
          Add the callees to the precedence relation of the edge from head to tail via the field f, according to the precedence policy (strict or not).
 void add(PANode head, String f, Set tails, Set callees)
          Add the callees to the precedence relation of all the edges from head to a node in tails via the field f, according to the precedence policy (strict or not).
 void add(Set heads, String f, PANode tail, Set callees)
          Add the callees to the precedence relation of the edge from a node in heads to tail via the field f, according to the precedence policy (strict or not).
 void add(Set heads, String f, Set tails, Set callees)
          Add the callees to the precedence relation of the edge from a node in heads to a node in tails via the field f, according to the precedence policy (strict or not).
 Set callees(PANode head, String f, PANode tail)
          Return the set of callees in relation with the edges from head to tail via the field f.
 Object clone()
          Simply clone an EdgesNCallees object.
 EdgesNCallees clone(Map hole_conversion)
          clone the EdgesNCallees while transposing the callees using the map.
 EdgesNCallees clone(Map hole_conversion, Map node_conversion)
          clone the EdgesNCallees while transposing the callees using the first map, and the nodes using the second one.
 void join(EdgesNCallees second, Map holeConversion, Set firstholes, Set secondholes, Set control)
          Conservative implementation
 void join(Set firstHoles, EdgesNCallees second, Set secondHoles)
          Conservative implementation
 void joinbis(EdgesNCallees second)
          Conservative implementation
 Set project(Set holes, Map projection)
           
 void remove(MethodHole hole)
          Removes the MethodHole hole from all the sets of callees that may contain it.
 void set(PANode head, String f, PANode tail, Set callees)
          Set the callees to the precedence relation of the edge from head to tail via the field f.
 boolean strict()
          Return the type of the precedence relation.
 String toString()
          Pretty-print debug function.
 String toString(String s)
          Pretty-print debug function.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEBUG

public static final boolean DEBUG
See Also:
Constant Field Values

edges

public Map edges
Constructor Detail

EdgesNCallees

public EdgesNCallees()
Creates a EdgesNCallees coding a strict precedence relation.


EdgesNCallees

public EdgesNCallees(boolean strictness)
Creates a EdgesNCallees coding a strict precedence relation iff the argument is true.

Method Detail

strict

public boolean strict()
Return the type of the precedence relation. true means "always precedes".


add

public void add(Set heads,
                String f,
                Set tails,
                Set callees)
Add the callees to the precedence relation of the edge from a node in heads to a node in tails via the field f, according to the precedence policy (strict or not).


add

public void add(Set heads,
                String f,
                PANode tail,
                Set callees)
Add the callees to the precedence relation of the edge from a node in heads to tail via the field f, according to the precedence policy (strict or not).


add

public void add(PANode head,
                String f,
                PANode tail,
                Set callees)
Add the callees to the precedence relation of the edge from head to tail via the field f, according to the precedence policy (strict or not).


add

public void add(PANode head,
                String f,
                Set tails,
                Set callees)
Add the callees to the precedence relation of all the edges from head to a node in tails via the field f, according to the precedence policy (strict or not).


set

public void set(PANode head,
                String f,
                PANode tail,
                Set callees)
Set the callees to the precedence relation of the edge from head to tail via the field f.


callees

public Set callees(PANode head,
                   String f,
                   PANode tail)
Return the set of callees in relation with the edges from head to tail via the field f.


remove

public void remove(MethodHole hole)
Removes the MethodHole hole from all the sets of callees that may contain it.


join

public void join(Set firstHoles,
                 EdgesNCallees second,
                 Set secondHoles)
Conservative implementation


joinbis

public void joinbis(EdgesNCallees second)
Conservative implementation


join

public void join(EdgesNCallees second,
                 Map holeConversion,
                 Set firstholes,
                 Set secondholes,
                 Set control)
Conservative implementation


clone

public Object clone()
Simply clone an EdgesNCallees object.

Overrides:
clone in class Object

clone

public EdgesNCallees clone(Map hole_conversion)
clone the EdgesNCallees while transposing the callees using the map.


clone

public EdgesNCallees clone(Map hole_conversion,
                           Map node_conversion)
clone the EdgesNCallees while transposing the callees using the first map, and the nodes using the second one.


toString

public String toString()
Pretty-print debug function.

Overrides:
toString in class Object

toString

public String toString(String s)
Pretty-print debug function.


project

public Set project(Set holes,
                   Map projection)