public static SourceMethodNode findSourceMethodNodeWithCallers(Map<String,Map<String,Set<JsonElement>>> callerMap,IMethod jdtMethod,String jdtClassName,String srcClassName,int srcLine){
  String jdtMethodName=jdtMethod.getElementName();
  String[] jdtParamTypes=jdtMethod.getParameterTypes();
  for (  String sig : callerMap.keySet()) {
    String sootMethodName=Utils.signatureMethodName(sig);
    if (sootMethodName.equals(jdtMethodName)) {
      String sootClassName=Utils.signatureClass(sig);
      if (classNamesMatch(sootClassName,jdtClassName)) {
        String[] sootParamTypes=Utils.signatureParameterTypes(sig);
        if (typesMatch(sootParamTypes,jdtParamTypes)) {
          SourceMethodNode methodNode=SourceMethodNode.get(sig);
          methodNode.sourceClass=srcClassName;
          methodNode.line=srcLine;
          return methodNode;
        }
      }
    }
  }
  return null;
}

public static SourceMethodNode findSourceMethodNodeWithCallers ( Map < String , Map < String , Set < JsonElement > > > callerMap , IMethod jdtMethod , String jdtClassName , String srcClassName , int srcLine ) { String jdtMethodName = jdtMethod . getElementName ( ) ; String [ ] jdtParamTypes = jdtMethod . getParameterTypes ( ) ; for ( String sig : callerMap . keySet ( ) ) { String sootMethodName = Utils . signatureMethodName ( sig ) ; if ( sootMethodName . equals ( jdtMethodName ) ) { String sootClassName = Utils . signatureClass ( sig ) ; if ( classNamesMatch ( sootClassName , jdtClassName ) ) { String [ ] sootParamTypes = Utils . signatureParameterTypes ( sig ) ; if ( typesMatch ( sootParamTypes , jdtParamTypes ) ) { SourceMethodNode methodNode = SourceMethodNode . get ( sig ) ; methodNode . sourceClass = srcClassName ; methodNode . line = srcLine ; return methodNode ; } } } } return null ; }
searches the key set in the given callermap ( a map from callee signatures to caller signatures to sets of method calls ) for a source method node that matches to the given parameter values .
