UseMode getMethodUsage(String mthd) { MethodCountData mcd = method_data.get(mthd); if (mcd == null) { int idx0 = mthd.indexOf("("); if (idx0 < 0) return UseMode.NONE; String mthd0 = mthd.substring(0, idx0); String mthd1 = mthd.substring(idx0); for (Map.Entry<String, MethodCountData> ent : method_data.entrySet()) { String nm = ent.getKey(); nm = nm.replace('/', '.'); int idx = nm.indexOf("("); if (idx < 0) continue; if (mthd0.equals(nm.substring(0, idx))) { if (BumpLocation.compareParameters(mthd1, nm.substring(idx))) { mcd = ent.getValue(); method_data.put(mthd, mcd); break; } } } } if (mcd != null) { if (mcd.getTopCount() > 0) return UseMode.DIRECT; if (mcd.getCalledCount() > 0) return UseMode.INDIRECT; } return UseMode.NONE; }