|
||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||
public interface IntermediateFactory
This is a Facade pattern, used by StatementTranslatorImpl and MethodCallTranslator.
It is designed to minimize the amount of code required in these classes.
addStatement(dk.brics.string.intermediate.Statement) itself determines where to place a statement,
and canBeNull(soot.Local) itself knows which statement is currently being translated.
It is likely that more methods will be added during development.
| Method Summary | |
|---|---|
void |
addHotspot(Variable var,
ValueBox box)
Registers the specified value box as a hotspot. |
void |
addStatement(Statement stm)
Adds a statement to the intermediate program. |
boolean |
canBeNull(Local local)
Returns whether the specified local might be null at the current program point. |
Variable |
createVariable(VariableType type)
Creates a new variable with the specified type. |
void |
endBranch()
Ends the current branch, by removing the position stored by the previous call to startBranch(),
and restores the position marked by the startBranch before that. |
VariableType |
fromSootType(Type type)
|
Field |
getField(SootField field)
Returns the intermediate field corresponding to the specified field; |
Automaton |
getFieldType(SootField field)
Returns the static string type of the specified field, or null if the field has no static string type. |
Variable |
getLocal(Local local)
Returns the intermediate variable corresponding to the specified local. |
Method |
getMethod(SootMethod method)
Returns the intermediate method definition corresponding to the specified Soot method, or null if the method is external. |
Automaton |
getMethodReturnType(SootMethod method)
Returns the static string type of the specified method's return value, or null if the return value has no static string type. |
Variable |
getNothing()
Returns a variable representing everything we don't care about in the analysis. |
Variable |
getParameter(ParameterRef ref)
Returns the variable corresponding to a soot parameter reference |
Automaton |
getParameterType(ParameterRef ref)
Returns the static string type of the nth parameter to the specified method, or null if the parameter has no static string type. |
List<SootMethod> |
getTargetsOf(InstanceInvokeExpr invocation)
Gets a list of possible targets for the specified invocation. |
Method |
getToStringMethod(SootClass clazz)
Returns the intermediate method representing the specified non-interface class's toString method. |
boolean |
isHotspot(ValueBox box)
Returns true if the specified value is marked as a hotspot. |
boolean |
isSubtypeOf(SootClass a,
SootClass b)
Returns true if the first argument is a type that extends, implements, or equals the second argument. |
void |
setExpressionVariable(ValueBox value,
Variable variable)
Reports that the specified expression was evaluated and stored in the specified intermediate variable. |
void |
startBranch()
Remembers the current position in the program, so successive calls to useBranch() jumps back here. |
void |
useBranch()
Jumps back to the statement added before the previous call to startBranch(),
so statements added with addStatement(Statement) are added from there. |
| Method Detail |
|---|
void addHotspot(Variable var,
ValueBox box)
isHotspot(ValueBox) returned true for
the specified value box.
var - variable holding the result of the hotspto expressionbox - value box containing the expression marked as a hotspotvoid addStatement(Statement stm)
stm - statement to add.boolean canBeNull(Local local)
local - a soot local variable
Variable createVariable(VariableType type)
type - type of the variable to create.
void endBranch()
startBranch(),
and restores the position marked by the startBranch before that.
VariableType fromSootType(Type type)
Field getField(SootField field)
Automaton getFieldType(SootField field)
field - a field
Variable getLocal(Local local)
Method getMethod(SootMethod method)
Automaton getMethodReturnType(SootMethod method)
method - a soot method
Variable getNothing()
Variable getParameter(ParameterRef ref)
Automaton getParameterType(ParameterRef ref)
ref - a parameter
List<SootMethod> getTargetsOf(InstanceInvokeExpr invocation)
Method getToStringMethod(SootClass clazz)
clazz - an application class that is not an interface.
boolean isHotspot(ValueBox box)
boolean isSubtypeOf(SootClass a,
SootClass b)
void setExpressionVariable(ValueBox value,
Variable variable)
value - a jimple expressionvariable - an intermediate variablevoid startBranch()
useBranch() jumps back here.
void useBranch()
startBranch(),
so statements added with addStatement(Statement) are added from there.
|
||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||