joeq.Compiler.Analysis.FlowInsensitive
Class ReflectionInformationProvider

java.lang.Object
  extended by joeq.Compiler.Analysis.FlowInsensitive.ReflectionInformationProvider
Direct Known Subclasses:
ReflectionInformationProvider.CribSheetReflectionInformationProvider

public abstract class ReflectionInformationProvider
extends java.lang.Object

Version:
$Id: ReflectionInformationProvider.java,v 1.17 2005/04/29 07:38:58 joewhaley Exp $ This class declares methods for resolving reflective calls.
Author:
V.Benjamin Livshits

Nested Class Summary
static class ReflectionInformationProvider.CribSheetReflectionInformationProvider
          This implementation of ReflectionInformationProvider reads answers from a file.
 class ReflectionInformationProvider.NewInstanceTargets
           
 
Constructor Summary
ReflectionInformationProvider()
           
 
Method Summary
abstract  java.util.Collection getNewInstanceTargets(jq_Method n)
          Resolves constructors being pointed to by a newInstance() calls within method n.
abstract  java.util.Collection getNewInstanceTargets(ProgramLocation.QuadProgramLocation mc)
          Resolves constructors being pointed to by a newInstance() call mc.
static boolean isForName(jq_Method target)
           
static boolean isNewInstance(jq_Method target)
          Checks if target is a newInstance method.
static boolean isNewInstance(ProgramLocation.QuadProgramLocation mc)
          Checks if mc corresponds to a newInstance call.
static boolean isReflective(jq_Method method)
          Checks if method is reflective.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReflectionInformationProvider

public ReflectionInformationProvider()
Method Detail

isReflective

public static boolean isReflective(jq_Method method)
Checks if method is reflective.

Parameters:
method -

isNewInstance

public static boolean isNewInstance(ProgramLocation.QuadProgramLocation mc)
Checks if mc corresponds to a newInstance call.


isNewInstance

public static boolean isNewInstance(jq_Method target)
Checks if target is a newInstance method.


isForName

public static boolean isForName(jq_Method target)

getNewInstanceTargets

public abstract java.util.Collection getNewInstanceTargets(ProgramLocation.QuadProgramLocation mc)
Resolves constructors being pointed to by a newInstance() call mc.


getNewInstanceTargets

public abstract java.util.Collection getNewInstanceTargets(jq_Method n)
Resolves constructors being pointed to by a newInstance() calls within method n. Notice that information may be imprecise because we only have one piece of data per method.