Class BodyTransformer

  extended by soot.Transformer
      extended by 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.

Constructor Summary
Method Summary
protected abstract  void internalTransform(Body b, String phaseName, Map options)
          This method is called to perform the transformation itself.
 void transform(Body b)
 void transform(Body b, String phaseName)
 void transform(Body b, String phaseName, Map options)
          Called by clients of the transformation.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public BodyTransformer()
Method Detail


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.

b - the body on which to apply the transformation
phaseName - phaseName for the transform. Used to retrieve options from the Scene.


public final void transform(Body b,
                            String phaseName)


public final void transform(Body b)


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.

b - the body on which to apply the transformation
phaseName - the phasename for this transform; not typically used by implementations.
options - the actual computed options; a combination of default options and Scene specified options.