question: public static void createAccessorMethod ( SootMethod container , Stmt stmt ) { Body containerBody = container . getActiveBody ( ) ; soot . util . Chain containerStmts = containerBody . getUnits ( ) ; if ( ! containerStmts . contains ( stmt ) ) throw new RuntimeException ( ) ; if ( stmt . containsInvokeExpr ( ) ) { createInvokeAccessor ( container , stmt ) ; } else if ( stmt instanceof AssignStmt ) { AssignStmt as = ( AssignStmt ) stmt ; FieldRef ref ; if ( as . getLeftOp ( ) instanceof FieldRef ) { ref = ( FieldRef ) as . getLeftOp ( ) ; createSetAccessor ( container , as , ref ) ; } else if ( as . getRightOp ( ) instanceof FieldRef ) { ref = ( FieldRef ) as . getRightOp ( ) ; createGetAccessor ( container , as , ref ) ; } else { throw new RuntimeException ( "Expected class member access" ) ; } } else throw new RuntimeException ( "Expected class member access" ) ; }
target:  Turns a field access or method call into a call to an accessor method. Reuses existing accessors based on name mangling (see createAccessorName) 