Package soot
Class BodyTransformer
- java.lang.Object
-
- soot.Transformer
-
- soot.BodyTransformer
-
- Direct Known Subclasses:
AbstractStaticnessCorrector,AddJSRs,AddSwitches,Aggregator,ArithmeticTransformer,ArrayBoundsChecker,AvailExprTagger,BAFCounter,BafLineNumberer,BAFPrintout,BusyCodeMotion,CallGraphTagger,CastAndReturnInliner,CastCheckEliminatorDumper,CFGViewer,ClinitElimTransformer,CollectJimpleLocals,CommonSubexpressionEliminator,ConditionalBranchFolder,CondTransformer,ConstantCastEliminator,ConstantPropagatorAndFolder,ConstructorConfuser,ConstructorFolder,CopyPropagator,Counter,CriticalEdgeRemover,DeadAssignmentEliminator,DexArrayInitReducer,DexFillArrayDataTransformer,DexJumpChainShortener,DexNullArrayRefTransformer,DexNullIfTransformer,DexNullInstanceofTransformer,DexNullThrowTransformer,DexReturnPacker,DexReturnValuePropagator,DexTransformer,DexTrapStackFixer,DominatorsTagger,DuplicateCatchAllTrapRemover,EmptySwitchEliminator,ExceptionChecker,FastDexTrapTightener,FieldRWTagger,FieldTagger,FindDuplicateSequences,FixUndefinedLocals,FlowSensitiveConstantPropagator,GotoInstrumenter,IdentityCastEliminator,IdentityOperationEliminator,IfNullToTryCatch,IndirectIfJumpsToCaughtGotos,Jimple2BafLocalBuilder,JimpleConstructorFolder,LazyCodeMotion,LineNumberGenerator.BafLineNumberer,LiveVarsTagger,LoadStoreOptimizer,LocalNameStandardizer,LocalPacker,LocalSplitter,LocalsToBitField,LockAllocationBodyTransformer,LoopConditionUnroller,LoopFinder,LoopInvariantFinder,MoveLoadsAboveIfs,NopEliminator,NullCheckEliminator,NullPointerChecker,NullPointerColorer,ParameterAliasTagger,ParityTagger,PartialConstructorFolder,PeepholeOptimizer,ProfilingGenerator,ReachingDefsTagger,RemoveRedundantPushStores,SConstantPropagatorAndFolder,SharedInitializationLocalSplitter,SideEffectTagger,StoreChainOptimizer,SynchronizedMethodTransformer,TagAggregator,ThisInliner,TransformIntsToBooleans,TrapSplitter,TrapTransformer,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
Constructors Constructor Description BodyTransformer()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract voidinternalTransform(Body b, String phaseName, Map<String,String> options)This method is called to perform the transformation itself.voidtransform(Body b)voidtransform(Body b, String phaseName)voidtransform(Body b, String phaseName, Map<String,String> options)Called by clients of the transformation.
-
-
-
Method Detail
-
transform
public final void transform(Body b, String phaseName, Map<String,String> 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)
-
internalTransform
protected abstract void internalTransform(Body b, String phaseName, Map<String,String> 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.
-
-