Package soot.jbco.jimpleTransformations
Class GotoInstrumenter
- java.lang.Object
-
- soot.Transformer
-
- soot.BodyTransformer
-
- soot.jbco.jimpleTransformations.GotoInstrumenter
-
- All Implemented Interfaces:
IJbcoTransform
public class GotoInstrumenter extends BodyTransformer implements IJbcoTransform
Changes the sequence of statements in which they appear in methods, preserving the sequence they are executed usinggotocommands andlabels. Also if possible addstry-catchblock in random position.- Since:
- 15-Feb-2006
- Author:
- Michael Batchelder
-
-
Field Summary
Fields Modifier and Type Field Description static String[]dependenciesstatic Stringname-
Fields inherited from interface soot.jbco.IJbcoTransform
debug, out, output
-
-
Constructor Summary
Constructors Constructor Description GotoInstrumenter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String[]getDependencies()Gets array ofjbco transformercode names on which current transformer depends on.StringgetName()Gets the code name ofjbco transformerimplementation.protected voidinternalTransform(Body body, String phaseName, Map<String,String> options)This method is called to perform the transformation itself.voidoutputSummary()Prints summary of the produced changes.-
Methods inherited from class soot.BodyTransformer
transform, transform, transform
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface soot.jbco.IJbcoTransform
isDebugEnabled, isVerbose
-
-
-
-
Field Detail
-
name
public static final String name
- See Also:
- Constant Field Values
-
dependencies
public static final String[] dependencies
-
-
Method Detail
-
getName
public String getName()
Description copied from interface:IJbcoTransformGets the code name ofjbco transformerimplementation.- Specified by:
getNamein interfaceIJbcoTransform- Returns:
- the code name of
jbco transformer
-
getDependencies
public String[] getDependencies()
Description copied from interface:IJbcoTransformGets array ofjbco transformercode names on which current transformer depends on.- Specified by:
getDependenciesin interfaceIJbcoTransform- Returns:
- array of code names
-
outputSummary
public void outputSummary()
Description copied from interface:IJbcoTransformPrints summary of the produced changes.- Specified by:
outputSummaryin interfaceIJbcoTransform
-
internalTransform
protected void internalTransform(Body body, String phaseName, Map<String,String> options)
Description copied from class:BodyTransformerThis method is called to perform the transformation itself. It is declared abstract; subclasses must implement this method by making it the entry point to their actual Body transformation.- Specified by:
internalTransformin classBodyTransformer- Parameters:
body- the body on which to apply the transformationphaseName- the phasename for this transform; not typically used by implementations.options- the actual computed options; a combination of default options and Scene specified options.
-
-