public boolean isCallTargetValid(String className, String methodName, int numArgs) { Class extClass = repository.loadExtension(className); if (extClass != null && extClass.getAnnotation(BTraceExtension.class) != null) { for (Method m : extClass.getMethods()) { if (m.getName().equals(methodName) && m.getParameterTypes().length == numArgs) { return true; } else if (m.getName().equals(methodName) && m.getParameterTypes().length < numArgs && m.isVarArgs()) { return true; } } } return false; }
public boolean isCallTargetValid(String className, String methodName, int numArgs) { Class extClass = repository.loadExtension(className); if (extClass != null && extClass.getAnnotation(BTraceExtension.class) != null) { for (Method m : extClass.getMethods()) { if (m.getName().equals(methodName) && m.getParameterTypes().length == numArgs) { return true; } else if (m.getName().equals(methodName) && m.getParameterTypes().length < numArgs && m.isVarArgs()) { return true; } } } return false; }
public boolean isCallTargetValid(String name, int numArgs) { for(String extName : repository.listExtensions()) { if (hasMethod(repository.loadExtension(extName), name, numArgs)) return true; } return false; }
public boolean isCallTargetValid(String name, int numArgs) { for(String extName : repository.listExtensions()) { if (hasMethod(repository.loadExtension(extName), name, numArgs)) return true; } return false; }