soot
Class BodyTransformer
java.lang.Object
soot.Transformer
soot.BodyTransformer
- Direct Known Subclasses:
- AddJSRs, AddSwitches, Aggregator, ArithmeticTransformer, ArrayBoundsChecker, AvailExprTagger, BAFCounter, BafLineNumberer, BAFPrintout, BusyCodeMotion, CallGraphTagger, CastCheckEliminatorDumper, CFGViewer, ClinitElimTransformer, CollectJimpleLocals, CommonSubexpressionEliminator, ConditionalBranchFolder, CondTransformer, ConstantPropagatorAndFolder, ConstructorConfuser, ConstructorFolder, CopyPropagator, Counter, CriticalEdgeRemover, DeadAssignmentEliminator, DominatorsTagger, ExceptionChecker, FieldRWTagger, FieldTagger, FindDuplicateSequences, FixUndefinedLocals, GotoInstrumenter, IfNullToTryCatch, IndirectIfJumpsToCaughtGotos, Jimple2BafLocalBuilder, JimpleConstructorFolder, LazyCodeMotion, LiveVarsTagger, LoadStoreOptimizer, LocalNameStandardizer, LocalPacker, LocalSplitter, LocalsToBitField, LockAllocationBodyTransformer, LoopConditionUnroller, LoopFinder, LoopInvariantFinder, MoveLoadsAboveIfs, NopEliminator, NullCheckEliminator, NullPointerChecker, NullPointerColorer, ParameterAliasTagger, ParityTagger, PartialConstructorFolder, PeepholeOptimizer, ProfilingGenerator, ReachingDefsTagger, RemoveRedundantPushStores, SConstantPropagatorAndFolder, SideEffectTagger, TagAggregator, ThisInliner, TrapTightener, TryCatchCombiner, TypeAssigner, UnconditionalBranchFolder, UnreachableCodeEliminator, UnreachableMethodTransformer, UnusedLocalEliminator, UpdateConstantsToFields, WrapSwitchesInTrys
public abstract class BodyTransformer
- extends Transformer
An abstract class which acts on a Body. This class provides a harness and acts as an
interface for classes that wish to transform a Body. Subclasses
provide the actual Body transformation implementation.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BodyTransformer
public BodyTransformer()
transform
public final void transform(Body b,
String phaseName,
Map options)
- Called by clients of the transformation. Acts as a generic interface
for BodyTransformers.
Calls internalTransform with the optionsString properly set up.
That is, the options in optionsString override those in the Scene.
- Parameters:
b
- the body on which to apply the transformationphaseName
- phaseName for the transform. Used to retrieve options from the Scene.
transform
public final void transform(Body b,
String phaseName)
transform
public final void transform(Body b)
internalTransform
protected abstract void internalTransform(Body b,
String phaseName,
Map options)
- This 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.
- Parameters:
b
- 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.