question: public void simulateMethod ( SootMethod method , ReferenceVariable thisVar , ReferenceVariable returnVar , ReferenceVariable params [ ] ) { String subSignature = method . getSubSignature ( ) ; if ( subSignature . equals ( "java.lang.ClassLoader latestUserDefinedLoader()" ) ) { java_io_ObjectInputStream_latestUserDefinedLoader ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "java.lang.Object allocateNewObject(java.lang.Class,java.lang.Class)" ) ) { java_io_ObjectInputStream_allocateNewObject ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "java.lang.Object allocateNewArray(java.lang.Class,int)" ) ) { java_io_ObjectInputStream_allocateNewArray ( method , thisVar , returnVar , params ) ; return ; } else { defaultMethod ( method , thisVar , returnVar , params ) ; return ; } }
target:  Implements the abstract method simulateMethod. It distributes the request to the corresponding methods  by signatures.