* @since Java Persistence 2.0
*/
public <T> Parameter<T> getParameter(int position, Class<T> type) {
//don't rollback transaction on error
entityManager.verifyOpen();
Parameter param = (Parameter) getInternalParameters().get(String.valueOf(position));
if (param == null) {
throw new IllegalArgumentException(ExceptionLocalization.buildMessage("NO_PARAMETER_WITH_INDEX", new Object[] { position, this.databaseQuery }));
} else if (param.getParameterType() != null && type != null && !type.isAssignableFrom(param.getParameterType())){
throw new IllegalArgumentException(ExceptionLocalization.buildMessage("INCORRECT_PARAMETER_TYPE", new Object[] { position, type }));
}
return param;
}