public void simulateMethod(SootMethod method,ReferenceVariable thisVar,ReferenceVariable returnVar,ReferenceVariable params[]){
  String subSignature=method.getSubSignature();
  if (subSignature.equals("java.lang.Object doPrivileged(java.security.PrivilegedAction)")) {
    java_security_AccessController_doPrivileged(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("java.lang.Object doPrivileged(java.security.PrivilegedExceptionAction)")) {
    java_security_AccessController_doPrivileged(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("java.lang.Object doPrivileged(java.security.PrivilegedAction,java.security.AccessControlContext)")) {
    java_security_AccessController_doPrivileged(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("java.lang.Object doPrivileged(java.security.PrivilegedExceptionAction,java.security.AccessControlContext)")) {
    java_security_AccessController_doPrivileged(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("java.security.AccessControlContext getStackAccessControlContext()")) {
    java_security_AccessController_getStackAccessControlContext(method,thisVar,returnVar,params);
    return;
  }
 else   if (subSignature.equals("java.security.AccessControlContext getInheritedAccessControlContext()")) {
    java_security_AccessController_getInheritedAccessControlContext(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 ( "java.lang.Object doPrivileged(java.security.PrivilegedAction)" ) ) { java_security_AccessController_doPrivileged ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "java.lang.Object doPrivileged(java.security.PrivilegedExceptionAction)" ) ) { java_security_AccessController_doPrivileged ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "java.lang.Object doPrivileged(java.security.PrivilegedAction,java.security.AccessControlContext)" ) ) { java_security_AccessController_doPrivileged ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "java.lang.Object doPrivileged(java.security.PrivilegedExceptionAction,java.security.AccessControlContext)" ) ) { java_security_AccessController_doPrivileged ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "java.security.AccessControlContext getStackAccessControlContext()" ) ) { java_security_AccessController_getStackAccessControlContext ( method , thisVar , returnVar , params ) ; return ; } else if ( subSignature . equals ( "java.security.AccessControlContext getInheritedAccessControlContext()" ) ) { java_security_AccessController_getInheritedAccessControlContext ( 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 .
