Example usage for org.springframework.jdbc.core SqlInOutParameter SqlInOutParameter

List of usage examples for org.springframework.jdbc.core SqlInOutParameter SqlInOutParameter

Introduction

In this page you can find the example usage for org.springframework.jdbc.core SqlInOutParameter SqlInOutParameter.

Prototype

public SqlInOutParameter(String name, int sqlType, RowMapper<?> rm) 

Source Link

Document

Create a new SqlInOutParameter.

Usage

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());
}