if (parametersClasses.length >= arguments.length) {
for (int i = 0; i < arguments.length; i++) {
Object argument = arguments[i];
Class<?> parameterClass = parametersClasses[i];
if (argument instanceof String && !(parameterClass == String.class || parameterClass == File.class)) {
final TestData tempTestData = new TestDataImpl(testData.getRowId(), new LinkedHashMap<String, String>());
final String tempDataName = "TEMP_DATA";
tempTestData.setValue(tempDataName, (String) argument);
if (parameterClass == int.class || parameterClass == Integer.class) {
arguments[i] = tempTestData.getIntValue(tempDataName);
} else if (parameterClass == double.class || parameterClass == Double.class || parameterClass == float.class || parameterClass == Float.class) {
arguments[i] = tempTestData.getDoubleValue(tempDataName);
} else if (parameterClass == boolean.class || parameterClass == Boolean.class) {
arguments[i] = tempTestData.getBooleanValue(tempDataName);
} else if (parameterClass == DoubleWithPrecision.class) {
arguments[i] = tempTestData.getDoubleWithPrecisionValue(tempDataName);
} else {
logger.error("Unsupported method argument type " + parameterClass.getName());
throw new QTasteDataException("Invalid argument used for method " + method.getName() + " with parameter:" + argument.toString());
}
}