if (meta.getParameterName() != null)
parNameToCheck = metaDataProvider.parameterNameToUse(meta.getParameterName()).toLowerCase();
String parNameToUse = metaDataProvider.parameterNameToUse(meta.getParameterName());
if (declaredParameters.containsKey(parNameToCheck) ||
(meta.getParameterType() == DatabaseMetaData.procedureColumnReturn && returnDeclared)) {
SqlParameter parameter;
if (meta.getParameterType() == DatabaseMetaData.procedureColumnReturn) {
parameter = declaredParameters.get(this.getFunctionReturnName());
if (parameter == null && this.getOutParameterNames().size() > 0) {
parameter = declaredParameters.get(this.getOutParameterNames().get(0).toLowerCase());
}
if (parameter == null) {
throw new InvalidDataAccessApiUsageException(
"Unable to locate declared parameter for function return value - " +
" add an SqlOutParameter with name \"" + this.getFunctionReturnName() +"\"");
}
else {
this.setFunctionReturnName(parameter.getName());
}
}
else {
parameter = declaredParameters.get(parNameToCheck);
}