public void simulateMethod(SootMethod method,ReferenceVariable thisVar,ReferenceVariable returnVar,ReferenceVariable params[]){
  String subSignature=method.getSubSignature();
  if (subSignature.equals("void arraycopy(java.lang.Object,int,java.lang.Object,int,int)")) {
    java_lang_System_arraycopy(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("void setIn0(java.io.InputStream)")) {
    java_lang_System_setIn0(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("void setOut0(java.io.PrintStream)")) {
    java_lang_System_setOut0(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("void setErr0(java.io.PrintStream)")) {
    java_lang_System_setErr0(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("java.util.Properties initProperties(java.util.Properties)")) {
    java_lang_System_initProperties(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("java.lang.String mapLibraryName(java.lang.String)")) {
    java_lang_System_mapLibraryName(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("java.lang.Class getCallerClass()")) {
    java_lang_System_getCallerClass(method,thisVar,returnVar,params);
    return;
  }
 else {
    defaultMethod(method,thisVar,returnVar,params);
    return;
  }
}

public void simulateMethod ( SootMethod method , ReferenceVariable thisVar , ReferenceVariable returnVar , ReferenceVariable params [ ] ) { String subSignature = method . getSubSignature ( ) ; if ( subSignature . equals ( "void arraycopy(java.lang.Object,int,java.lang.Object,int,int)" ) ) { java_lang_System_arraycopy ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "void setIn0(java.io.InputStream)" ) ) { java_lang_System_setIn0 ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "void setOut0(java.io.PrintStream)" ) ) { java_lang_System_setOut0 ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "void setErr0(java.io.PrintStream)" ) ) { java_lang_System_setErr0 ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "java.util.Properties initProperties(java.util.Properties)" ) ) { java_lang_System_initProperties ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "java.lang.String mapLibraryName(java.lang.String)" ) ) { java_lang_System_mapLibraryName ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "java.lang.Class getCallerClass()" ) ) { java_lang_System_getCallerClass ( method , thisVar , returnVar , params ) ; return ; } else { defaultMethod ( method , thisVar , returnVar , params ) ; return ; } }
implements the abstract method simulatemethod . it distributes the request to the corresponding methods by signatures .
