Class FilteredCallGraph

  extended by java.util.AbstractMap
      extended by jwutil.collections.UnmodifiableMultiMap
          extended by joeq.Compiler.Quad.CallGraph
              extended by joeq.Compiler.Quad.FilteredCallGraph
All Implemented Interfaces:
Map, jwutil.collections.BinaryRelation, jwutil.collections.MultiMap, jwutil.graphs.Graph

public class FilteredCallGraph
extends CallGraph

$Id: 2482 2007-10-30 05:17:36Z cunkel $ Filtered call graph. Useful for excluding joeq, jwutil, etc. from a call graph when performing analysis in hosted VM mode.
Chris Unkel

Nested Class Summary
static interface FilteredCallGraph.Filter
static class FilteredCallGraph.PackageFilter
Nested classes/interfaces inherited from class joeq.Compiler.Quad.CallGraph
CallGraph.CallGraphCSNavigator, CallGraph.CallGraphMap, CallGraph.CallGraphMethodNavigator, CallGraph.CallSiteMap, CallGraph.CallTargetMap
Nested classes/interfaces inherited from interface java.util.Map
Field Summary
Fields inherited from class jwutil.collections.UnmodifiableMultiMap
Constructor Summary
FilteredCallGraph(CallGraph base, FilteredCallGraph.Filter filter)
Method Summary
 Collection getRoots()
          Returns the collection of root methods for this call graph.
 Collection getTargetMethods(Object context, ProgramLocation callSite)
          Returns the possible target methods of the given call site under the given context.
 void setRoots(Collection roots)
          Sets up the root methods to be the given set.
Methods inherited from class joeq.Compiler.Quad.CallGraph
calculateCallerRelation, calculateEdgeRelation, calculateReachableMethods, contains, entrySet, findDepths, getAllCallSites, getAllMethods, getCallees, getCallees, getCallerMethods, getCallers, getCallGraphMap, getCallSiteMap, getCallSiteNavigator, getCallSites, getCallSites, getCallSites0, getCallSites0, getCallSites1, getMethodNavigator, getNavigator, getTargetMethod, getTargetMethods, getValues, makeCallGraph, numberOfTargetMethods, numberOfTargetMethods, toString
Methods inherited from class jwutil.collections.UnmodifiableMultiMap
add, addAll, addAll, clear, computeHistogram, computeHistogram, entrySetHelper, proxy, put, putAll, remove, remove, removeAll, retainAll
Methods inherited from class java.util.AbstractMap
clone, containsKey, containsValue, equals, get, hashCode, isEmpty, keySet, size, values
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface jwutil.collections.MultiMap
get, size
Methods inherited from interface java.util.Map
containsKey, containsValue, equals, hashCode, isEmpty, keySet, values

Constructor Detail


public FilteredCallGraph(CallGraph base,
                         FilteredCallGraph.Filter filter)
Method Detail


public Collection getRoots()
Description copied from class: CallGraph
Returns the collection of root methods for this call graph.

Specified by:
getRoots in interface jwutil.graphs.Graph
Specified by:
getRoots in class CallGraph


public void setRoots(Collection roots)
Description copied from class: CallGraph
Sets up the root methods to be the given set. Later call graph queries use the value that you pass in here. Implementing this method is optional -- it is only necessary if you use methods that require a root set, like getReachableMethods().

Specified by:
setRoots in class CallGraph
roots - collection of root methods


public Collection getTargetMethods(Object context,
                                   ProgramLocation callSite)
Description copied from class: CallGraph
Returns the possible target methods of the given call site under the given context. The interpretation of the context object is specific to the type of call graph.

Specified by:
getTargetMethods in class CallGraph
Collection of jq_Methods that are the possible targets

Copyright © 2001-2008 John Whaley. All Rights Reserved.