soot.jimple.parser
Class BodyExtractorWalker

java.lang.Object
  extended by soot.jimple.parser.analysis.AnalysisAdapter
      extended by soot.jimple.parser.analysis.DepthFirstAdapter
          extended by soot.jimple.parser.Walker
              extended by soot.jimple.parser.BodyExtractorWalker
All Implemented Interfaces:
Analysis, Switch

public class BodyExtractorWalker
extends Walker

Walks a jimple AST and constructs the method bodies for all the methods of the SootClass associated with this walker (see constructor). note: Contrary to the plain "Walker", this walker does not create a SootClass, or interact with the scene. It merely adds method bodies for each of the methods of the SootClass it was initialized with.


Field Summary
 
Fields inherited from class soot.jimple.parser.Walker
mResolver
 
Constructor Summary
BodyExtractorWalker(SootClass sc, SootResolver resolver, Map<SootMethod,JimpleBody> methodToParsedBodyMap)
          Constructs a walker, and attaches it to the given SootClass, sending bodies to the given methodToParsedBodyMap.
 
Method Summary
 void caseAFile(AFile node)
           
 void outAFieldMember(AFieldMember node)
           
 void outAFile(AFile node)
           
 void outAMethodMember(AMethodMember node)
           
 
Methods inherited from class soot.jimple.parser.Walker
defaultCase, getSootClass, inAFile, inAFullMethodBody, outAAndBinop, outAArrayNewExpr, outAArrayReference, outAAssignStatement, outABaseNonvoidType, outABinopBoolExpr, outABinopExpr, outABooleanBaseType, outABooleanBaseTypeNoName, outABreakpointStatement, outAByteBaseType, outAByteBaseTypeNoName, outACaseStmt, outACastExpression, outACatchClause, outACharBaseType, outACharBaseTypeNoName, outAClassFileType, outAClassNameBaseType, outAClassNameMultiClassNameList, outAClassNameSingleClassNameList, outAClzzConstant, outACmpBinop, outACmpeqBinop, outACmpgBinop, outACmpgeBinop, outACmpgtBinop, outACmplBinop, outACmpleBinop, outACmpltBinop, outACmpneBinop, outAConstantCaseLabel, outADeclaration, outADivBinop, outADoubleBaseType, outADoubleBaseTypeNoName, outADynamicInvokeExpr, outAEntermonitorStatement, outAExitmonitorStatement, outAFieldSignature, outAFloatBaseType, outAFloatBaseTypeNoName, outAFloatConstant, outAFullIdentNonvoidType, outAFullMethodBody, outAGotoStatement, outAIdentityNoTypeStatement, outAIdentityStatement, outAIdentNonvoidType, outAIfStatement, outAInstanceofExpression, outAIntBaseType, outAIntBaseTypeNoName, outAIntegerConstant, outAInterfaceFileType, outAInvokeStatement, outALabelStatement, outALengthofUnop, outALocalFieldRef, outALocalImmediate, outALocalVariable, outALongBaseType, outALongBaseTypeNoName, outALookupswitchStatement, outAMethodSignature, outAMinusBinop, outAModBinop, outAMultBinop, outAMultiArgList, outAMultiLocalNameList, outAMultiNewExpr, outAMultiParameterList, outANegUnop, outANonstaticInvokeExpr, outANopStatement, outANovoidType, outANullBaseType, outANullBaseTypeNoName, outANullConstant, outAOrBinop, outAPlusBinop, outAQuotedNonvoidType, outARetStatement, outAReturnStatement, outAShlBinop, outAShortBaseType, outAShortBaseTypeNoName, outAShrBinop, outASigFieldRef, outASimpleNewExpr, outASingleArgList, outASingleLocalNameList, outASingleParameterList, outAStaticInvokeExpr, outAStringConstant, outATableswitchStatement, outAThrowsClause, outAThrowStatement, outAUnknownJimpleType, outAUnnamedMethodSignature, outAUnopExpr, outAUnopExpression, outAUshrBinop, outAVoidType, outAXorBinop, outStart, processModifiers
 
Methods inherited from class soot.jimple.parser.analysis.DepthFirstAdapter
caseAAbstractModifier, caseAAndBinop, caseAAnnotationModifier, caseAArrayBrackets, caseAArrayDescriptor, caseAArrayNewExpr, caseAArrayReference, caseAAssignStatement, caseABaseNonvoidType, caseABinopBoolExpr, caseABinopExpr, caseABinopExpression, caseABooleanBaseType, caseABooleanBaseTypeNoName, caseABreakpointStatement, caseAByteBaseType, caseAByteBaseTypeNoName, caseACaseStmt, caseACastExpression, caseACatchClause, caseACharBaseType, caseACharBaseTypeNoName, caseAClassFileType, caseAClassNameBaseType, caseAClassNameMultiClassNameList, caseAClassNameSingleClassNameList, caseAClzzConstant, caseACmpBinop, caseACmpeqBinop, caseACmpgBinop, caseACmpgeBinop, caseACmpgtBinop, caseACmplBinop, caseACmpleBinop, caseACmpltBinop, caseACmpneBinop, caseAConstantCaseLabel, caseAConstantImmediate, caseADeclaration, caseADefaultCaseLabel, caseADivBinop, caseADoubleBaseType, caseADoubleBaseTypeNoName, caseADynamicInvokeExpr, caseAEmptyMethodBody, caseAEntermonitorStatement, caseAEnumModifier, caseAExitmonitorStatement, caseAExtendsClause, caseAFieldMember, caseAFieldReference, caseAFieldSignature, caseAFileBody, caseAFinalModifier, caseAFixedArrayDescriptor, caseAFloatBaseType, caseAFloatBaseTypeNoName, caseAFloatConstant, caseAFullIdentClassName, caseAFullIdentNonvoidType, caseAFullMethodBody, caseAGotoStatement, caseAGotoStmt, caseAIdentArrayRef, caseAIdentClassName, caseAIdentityNoTypeStatement, caseAIdentityStatement, caseAIdentName, caseAIdentNonvoidType, caseAIfStatement, caseAImmediateExpression, caseAImplementsClause, caseAInstanceofExpression, caseAIntBaseType, caseAIntBaseTypeNoName, caseAIntegerConstant, caseAInterfaceFileType, caseAInterfaceNonstaticInvoke, caseAInvokeExpression, caseAInvokeStatement, caseALabelName, caseALabelStatement, caseALengthofUnop, caseALocalFieldRef, caseALocalImmediate, caseALocalName, caseALocalVariable, caseALongBaseType, caseALongBaseTypeNoName, caseALookupswitchStatement, caseAMethodMember, caseAMethodSignature, caseAMinusBinop, caseAModBinop, caseAMultBinop, caseAMultiArgList, caseAMultiLocalNameList, caseAMultiNameList, caseAMultiNewExpr, caseAMultiParameterList, caseANativeModifier, caseANegUnop, caseANewExpression, caseANonstaticInvokeExpr, caseANonvoidJimpleType, caseANopStatement, caseANovoidType, caseANullBaseType, caseANullBaseTypeNoName, caseANullConstant, caseAOrBinop, caseAParameter, caseAPlusBinop, caseAPrivateModifier, caseAProtectedModifier, caseAPublicModifier, caseAQuotedArrayRef, caseAQuotedClassName, caseAQuotedName, caseAQuotedNonvoidType, caseAReferenceExpression, caseAReferenceVariable, caseARetStatement, caseAReturnStatement, caseAShlBinop, caseAShortBaseType, caseAShortBaseTypeNoName, caseAShrBinop, caseASigFieldRef, caseASimpleNewExpr, caseASingleArgList, caseASingleLocalNameList, caseASingleNameList, caseASingleParameterList, caseASpecialNonstaticInvoke, caseAStaticInvokeExpr, caseAStaticModifier, caseAStrictfpModifier, caseAStringConstant, caseASynchronizedModifier, caseATableswitchStatement, caseAThrowsClause, caseAThrowStatement, caseATransientModifier, caseAUnknownJimpleType, caseAUnnamedMethodSignature, caseAUnopBoolExpr, caseAUnopExpr, caseAUnopExpression, caseAUshrBinop, caseAVirtualNonstaticInvoke, caseAVoidType, caseAVolatileModifier, caseAXorBinop, caseStart, defaultIn, defaultOut, inAAbstractModifier, inAAndBinop, inAAnnotationModifier, inAArrayBrackets, inAArrayDescriptor, inAArrayNewExpr, inAArrayReference, inAAssignStatement, inABaseNonvoidType, inABinopBoolExpr, inABinopExpr, inABinopExpression, inABooleanBaseType, inABooleanBaseTypeNoName, inABreakpointStatement, inAByteBaseType, inAByteBaseTypeNoName, inACaseStmt, inACastExpression, inACatchClause, inACharBaseType, inACharBaseTypeNoName, inAClassFileType, inAClassNameBaseType, inAClassNameMultiClassNameList, inAClassNameSingleClassNameList, inAClzzConstant, inACmpBinop, inACmpeqBinop, inACmpgBinop, inACmpgeBinop, inACmpgtBinop, inACmplBinop, inACmpleBinop, inACmpltBinop, inACmpneBinop, inAConstantCaseLabel, inAConstantImmediate, inADeclaration, inADefaultCaseLabel, inADivBinop, inADoubleBaseType, inADoubleBaseTypeNoName, inADynamicInvokeExpr, inAEmptyMethodBody, inAEntermonitorStatement, inAEnumModifier, inAExitmonitorStatement, inAExtendsClause, inAFieldMember, inAFieldReference, inAFieldSignature, inAFileBody, inAFinalModifier, inAFixedArrayDescriptor, inAFloatBaseType, inAFloatBaseTypeNoName, inAFloatConstant, inAFullIdentClassName, inAFullIdentNonvoidType, inAGotoStatement, inAGotoStmt, inAIdentArrayRef, inAIdentClassName, inAIdentityNoTypeStatement, inAIdentityStatement, inAIdentName, inAIdentNonvoidType, inAIfStatement, inAImmediateExpression, inAImplementsClause, inAInstanceofExpression, inAIntBaseType, inAIntBaseTypeNoName, inAIntegerConstant, inAInterfaceFileType, inAInterfaceNonstaticInvoke, inAInvokeExpression, inAInvokeStatement, inALabelName, inALabelStatement, inALengthofUnop, inALocalFieldRef, inALocalImmediate, inALocalName, inALocalVariable, inALongBaseType, inALongBaseTypeNoName, inALookupswitchStatement, inAMethodMember, inAMethodSignature, inAMinusBinop, inAModBinop, inAMultBinop, inAMultiArgList, inAMultiLocalNameList, inAMultiNameList, inAMultiNewExpr, inAMultiParameterList, inANativeModifier, inANegUnop, inANewExpression, inANonstaticInvokeExpr, inANonvoidJimpleType, inANopStatement, inANovoidType, inANullBaseType, inANullBaseTypeNoName, inANullConstant, inAOrBinop, inAParameter, inAPlusBinop, inAPrivateModifier, inAProtectedModifier, inAPublicModifier, inAQuotedArrayRef, inAQuotedClassName, inAQuotedName, inAQuotedNonvoidType, inAReferenceExpression, inAReferenceVariable, inARetStatement, inAReturnStatement, inAShlBinop, inAShortBaseType, inAShortBaseTypeNoName, inAShrBinop, inASigFieldRef, inASimpleNewExpr, inASingleArgList, inASingleLocalNameList, inASingleNameList, inASingleParameterList, inASpecialNonstaticInvoke, inAStaticInvokeExpr, inAStaticModifier, inAStrictfpModifier, inAStringConstant, inASynchronizedModifier, inATableswitchStatement, inAThrowsClause, inAThrowStatement, inATransientModifier, inAUnknownJimpleType, inAUnnamedMethodSignature, inAUnopBoolExpr, inAUnopExpr, inAUnopExpression, inAUshrBinop, inAVirtualNonstaticInvoke, inAVoidType, inAVolatileModifier, inAXorBinop, inStart, outAAbstractModifier, outAAnnotationModifier, outAArrayBrackets, outAArrayDescriptor, outABinopExpression, outAConstantImmediate, outADefaultCaseLabel, outAEmptyMethodBody, outAEnumModifier, outAExtendsClause, outAFieldReference, outAFileBody, outAFinalModifier, outAFixedArrayDescriptor, outAFullIdentClassName, outAGotoStmt, outAIdentArrayRef, outAIdentClassName, outAIdentName, outAImmediateExpression, outAImplementsClause, outAInterfaceNonstaticInvoke, outAInvokeExpression, outALabelName, outALocalName, outAMultiNameList, outANativeModifier, outANewExpression, outANonvoidJimpleType, outAParameter, outAPrivateModifier, outAProtectedModifier, outAPublicModifier, outAQuotedArrayRef, outAQuotedClassName, outAQuotedName, outAReferenceExpression, outAReferenceVariable, outASingleNameList, outASpecialNonstaticInvoke, outAStaticModifier, outAStrictfpModifier, outASynchronizedModifier, outATransientModifier, outAUnopBoolExpr, outAVirtualNonstaticInvoke, outAVolatileModifier
 
Methods inherited from class soot.jimple.parser.analysis.AnalysisAdapter
caseEOF, caseTAbstract, caseTAnd, caseTAnnotation, caseTAtIdentifier, caseTBoolConstant, caseTBoolean, caseTBreakpoint, caseTByte, caseTCase, caseTCatch, caseTChar, caseTClass, caseTCls, caseTCmp, caseTCmpeq, caseTCmpg, caseTCmpge, caseTCmpgt, caseTCmpl, caseTCmple, caseTCmplt, caseTCmpne, caseTColon, caseTColonEquals, caseTComma, caseTDefault, caseTDiv, caseTDot, caseTDouble, caseTDynamicinvoke, caseTEntermonitor, caseTEnum, caseTEquals, caseTExitmonitor, caseTExtends, caseTFinal, caseTFloat, caseTFloatConstant, caseTFrom, caseTFullIdentifier, caseTGoto, caseTIdentifier, caseTIf, caseTIgnored, caseTImplements, caseTInstanceof, caseTInt, caseTIntegerConstant, caseTInterface, caseTInterfaceinvoke, caseTLBrace, caseTLBracket, caseTLengthof, caseTLong, caseTLookupswitch, caseTLParen, caseTMinus, caseTMod, caseTMult, caseTNative, caseTNeg, caseTNew, caseTNewarray, caseTNewmultiarray, caseTNop, caseTNull, caseTNullType, caseTOr, caseTPlus, caseTPrivate, caseTProtected, caseTPublic, caseTQuote, caseTQuotedName, caseTRBrace, caseTRBracket, caseTRet, caseTReturn, caseTRParen, caseTSemicolon, caseTShl, caseTShort, caseTShr, caseTSpecialinvoke, caseTStatic, caseTStaticinvoke, caseTStrictfp, caseTStringConstant, caseTSynchronized, caseTTableswitch, caseTThrow, caseTThrows, caseTTo, caseTTransient, caseTUnknown, caseTUshr, caseTVirtualinvoke, caseTVoid, caseTVolatile, caseTWith, caseTXor, getIn, getOut, setIn, setOut
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BodyExtractorWalker

public BodyExtractorWalker(SootClass sc,
                           SootResolver resolver,
                           Map<SootMethod,JimpleBody> methodToParsedBodyMap)
Constructs a walker, and attaches it to the given SootClass, sending bodies to the given methodToParsedBodyMap.

Method Detail

caseAFile

public void caseAFile(AFile node)
Specified by:
caseAFile in interface Analysis
Overrides:
caseAFile in class Walker

outAFile

public void outAFile(AFile node)
Overrides:
outAFile in class Walker

outAFieldMember

public void outAFieldMember(AFieldMember node)
Overrides:
outAFieldMember in class Walker

outAMethodMember

public void outAMethodMember(AMethodMember node)
Overrides:
outAMethodMember in class Walker