chord.program.reflect
Class DynamicReflectResolver

java.lang.Object
  extended by chord.project.analyses.JavaAnalysis
      extended by chord.project.analyses.BasicDynamicAnalysis
          extended by chord.program.reflect.DynamicReflectResolver
All Implemented Interfaces:
ITask

public class DynamicReflectResolver
extends BasicDynamicAnalysis

Dynamic analysis for resolving reflection.

Author:
Mayur Naik (mhn@cs.stanford.edu)

Field Summary
 
Fields inherited from class chord.project.analyses.BasicDynamicAnalysis
DEBUG, eventHandlerArgs, instrumentorArgs, runIDs
 
Fields inherited from class chord.project.analyses.JavaAnalysis
consumes, controls, name, produces
 
Constructor Summary
DynamicReflectResolver()
           
 
Method Summary
 java.lang.Class getEventHandlerClass()
          The class of the event handler to be used.
 java.lang.String getInstrKind()
          Subclasses can override this method.
 java.lang.Class getInstrumentorClass()
          The class of the instrumentor to be used.
 java.util.List<Pair<java.lang.String,java.util.List<java.lang.String>>> getResolvedAryNewInstSites()
           
 java.util.List<Pair<java.lang.String,java.util.List<java.lang.String>>> getResolvedClsForNameSites()
           
 java.util.List<Pair<java.lang.String,java.util.List<java.lang.String>>> getResolvedConNewInstSites()
           
 java.util.List<Pair<java.lang.String,java.util.List<java.lang.String>>> getResolvedObjNewInstSites()
           
 void handleEvent(ByteBufferedFile buffer)
           
 
Methods inherited from class chord.project.analyses.BasicDynamicAnalysis
canReuseTraces, doneAllPasses, donePass, getEventHandlerArgs, getInstrumentorArgs, getTimeout, getTraceBlockSize, getTraceFileName, getTraceFileName, getTraceFileName, getTraceFileName, getTraceKind, getTraceTransformers, haltOnErr, initAllPasses, initPass, processTrace, reuseTraces, run, useJvmti
 
Methods inherited from class chord.project.analyses.JavaAnalysis
getName, run, setName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DynamicReflectResolver

public DynamicReflectResolver()
Method Detail

getResolvedClsForNameSites

public java.util.List<Pair<java.lang.String,java.util.List<java.lang.String>>> getResolvedClsForNameSites()

getResolvedObjNewInstSites

public java.util.List<Pair<java.lang.String,java.util.List<java.lang.String>>> getResolvedObjNewInstSites()

getResolvedConNewInstSites

public java.util.List<Pair<java.lang.String,java.util.List<java.lang.String>>> getResolvedConNewInstSites()

getResolvedAryNewInstSites

public java.util.List<Pair<java.lang.String,java.util.List<java.lang.String>>> getResolvedAryNewInstSites()

getInstrKind

public java.lang.String getInstrKind()
Description copied from class: BasicDynamicAnalysis
Subclasses can override this method.

Overrides:
getInstrKind in class BasicDynamicAnalysis

getInstrumentorClass

public java.lang.Class getInstrumentorClass()
Description copied from class: BasicDynamicAnalysis
The class of the instrumentor to be used. Subclasses can override this method but must return a class which is a subclass of BasicInstrumentor.

Overrides:
getInstrumentorClass in class BasicDynamicAnalysis

getEventHandlerClass

public java.lang.Class getEventHandlerClass()
Description copied from class: BasicDynamicAnalysis
The class of the event handler to be used. Subclasses can override this method but must return a class which extends BasicEventHandler. Additionally, if the dynamic analysis implemented by the subclass is multi-JVM (uses separate JVMs for generating and handling events), then this method must return a class which extends TraceEventHandler.

Overrides:
getEventHandlerClass in class BasicDynamicAnalysis

handleEvent

public void handleEvent(ByteBufferedFile buffer)
                 throws java.io.IOException,
                        ReadException
Overrides:
handleEvent in class BasicDynamicAnalysis
Throws:
java.io.IOException
ReadException