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");
}

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" ) ; }
turns a field access or method call into a call to an accessor method . reuses existing accessors based on name mangling ( see createaccessorname )
