List of usage examples for org.springframework.jdbc.core SqlInOutParameter SqlInOutParameter
public SqlInOutParameter(String name, int sqlType, RowMapper<?> rm)
From source file:org.codehaus.grepo.procedure.compile.ProcedureCompilationUtils.java
/** * @param inout The annotation.//from w w w .java 2 s.c o m * @param context The procedure execution context. * @return Returns the created descriptor. * @throws ConfigurationException in case of errors. */ public static ProcedureParamDescriptor createParamDescriptor(InOut inout, ProcedureExecutionContext context) throws ConfigurationException { SqlParameter sp = null; if (inout.scale() >= 0) { sp = new SqlInOutParameter(inout.name(), inout.sqlType(), inout.scale()); } else if (StringUtils.isNotEmpty(inout.typeName())) { if (isResultHandlerSpecified(inout.resultHandlerId(), inout.resultHandler())) { // we have a result handler specified... Object resultHandler = retrieveResultHandler(context, inout.resultHandlerId(), inout.resultHandler()); if (ClassUtils.isAssignableFrom(SqlReturnType.class, resultHandler.getClass())) { sp = new SqlInOutParameter(inout.name(), inout.sqlType(), inout.typeName(), (SqlReturnType) resultHandler); } else { // unsupported/invalid result handler... throw new ConfigurationException(String.format(INVALID_RESULTHANDLER_ERROR1, resultHandler.getClass(), SqlReturnType.class)); } } else { sp = new SqlInOutParameter(inout.name(), inout.sqlType(), inout.typeName()); } } else { if (isResultHandlerSpecified(inout.resultHandlerId(), inout.resultHandler())) { // we have a result handler specified... Object resultHandler = retrieveResultHandler(context, inout.resultHandlerId(), inout.resultHandler()); if (ClassUtils.isAssignableFrom(RowMapper.class, resultHandler.getClass())) { sp = new SqlInOutParameter(inout.name(), inout.sqlType(), (RowMapper<?>) resultHandler); } else if (ClassUtils.isAssignableFrom(RowCallbackHandler.class, resultHandler.getClass())) { sp = new SqlInOutParameter(inout.name(), inout.sqlType(), (RowCallbackHandler) resultHandler); } else if (ClassUtils.isAssignableFrom(ResultSetExtractor.class, resultHandler.getClass())) { sp = new SqlInOutParameter(inout.name(), inout.sqlType(), (ResultSetExtractor<?>) resultHandler); } else { // unsupported/invalid result handler... throw new ConfigurationException( String.format(INVALID_RESULTHANDLER_ERROR3, resultHandler.getClass(), RowMapper.class, RowCallbackHandler.class, ResultSetExtractor.class)); } } else { sp = new SqlInOutParameter(inout.name(), inout.sqlType()); } } return new ProcedureParamDescriptor(sp.getName(), ProcedureParamType.INOUT, sp, inout.index()); }