org.springframework.jdbc.core.metadata

## Class CallMetaDataContext

- java.lang.Object
- - org.springframework.jdbc.core.metadata.CallMetaDataContext

-     public class CallMetaDataContext
      extends Object

  Class to manage context metadata used for the configuration and execution of the call.
  Since:
    2.5
  Author:
    Thomas Risberg, Juergen Hoeller

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Log` | `logger` Logger available to subclasses

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CallMetaDataContext()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `createCallString()` Build the call string based on configuration and metadata information.
    `SqlParameter` | `createReturnResultSetParameter(String parameterName, RowMapper rowMapper)` Create a ReturnResultSetParameter/SqlOutParameter depending on the support provided by the JDBC driver used for the database in use.
    `List<SqlParameter>` | `getCallParameters()` Get the List of SqlParameter objects to be used in call execution.
    `String` | `getCatalogName()` Get the name of the catalog.
    `String` | `getFunctionReturnName()` Get the name used for the return value of the function.
    `Set<String>` | `getLimitedInParameterNames()` Get a limited set of in parameters to be used.
    `List<String>` | `getOutParameterNames()` Get a list of the out parameter names.
    `String` | `getProcedureName()` Get the name of the procedure.
    `String` | `getScalarOutParameterName()` Get the name of the single out parameter for this call.
    `String` | `getSchemaName()` Get the name of the schema.
    `void` | `initializeMetaData(DataSource dataSource)` Initialize this class with metadata from the database.
    `boolean` | `isAccessCallParameterMetaData()` Check whether call parameter metadata should be accessed.
    `boolean` | `isFunction()` Check whether this call is a function call.
    `boolean` | `isReturnValueRequired()` Check whether a return value is required.
    `Map<String,?>` | `matchInParameterValuesWithCallParameters(Map<String,?> inParameters)` Match input parameter values with the parameters declared to be used in the call.
    `Map<String,?>` | `matchInParameterValuesWithCallParameters(Object[] parameterValues)`
    `Map<String,Object>` | `matchInParameterValuesWithCallParameters(SqlParameterSource parameterSource)` Match input parameter values with the parameters declared to be used in the call.
    `void` | `processParameters(List<SqlParameter> parameters)` Process the list of parameters provided, and if procedure column metadata is used, the parameters will be matched against the metadata information and any missing ones will be automatically included.
    `protected List<SqlParameter>` | `reconcileParameters(List<SqlParameter> parameters)` Reconcile the provided parameters with available metadata and add new ones where appropriate.
    `void` | `setAccessCallParameterMetaData(boolean accessCallParameterMetaData)` Specify whether call parameter metadata should be accessed.
    `void` | `setCatalogName(String catalogName)` Specify the name of the catalog.
    `void` | `setFunction(boolean function)` Specify whether this call is a function call.
    `void` | `setFunctionReturnName(String functionReturnName)` Specify the name used for the return value of the function.
    `void` | `setLimitedInParameterNames(Set<String> limitedInParameterNames)` Specify a limited set of in parameters to be used.
    `void` | `setOutParameterNames(List<String> outParameterNames)` Specify the names of the out parameters.
    `void` | `setProcedureName(String procedureName)` Specify the name of the procedure.
    `void` | `setReturnValueRequired(boolean returnValueRequired)` Specify whether a return value is required.
    `void` | `setSchemaName(String schemaName)` Secify the name of the schema.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### logger

          protected final Log logger

      Logger available to subclasses

  - ### Constructor Detail

    - #### CallMetaDataContext

          public CallMetaDataContext()

  - ### Method Detail

    - #### setFunctionReturnName

          public void setFunctionReturnName(String functionReturnName)

      Specify the name used for the return value of the function.

    - #### getFunctionReturnName

          public String getFunctionReturnName()

      Get the name used for the return value of the function.

    - #### setLimitedInParameterNames

          public void setLimitedInParameterNames(Set<String> limitedInParameterNames)

      Specify a limited set of in parameters to be used.

    - #### getLimitedInParameterNames

          public Set<String> getLimitedInParameterNames()

      Get a limited set of in parameters to be used.

    - #### setOutParameterNames

          public void setOutParameterNames(List<String> outParameterNames)

      Specify the names of the out parameters.

    - #### getOutParameterNames

          public List<String> getOutParameterNames()

      Get a list of the out parameter names.

    - #### setProcedureName

          public void setProcedureName(String procedureName)

      Specify the name of the procedure.

    - #### getProcedureName

          public String getProcedureName()

      Get the name of the procedure.

    - #### setCatalogName

          public void setCatalogName(String catalogName)

      Specify the name of the catalog.

    - #### getCatalogName

          public String getCatalogName()

      Get the name of the catalog.

    - #### setSchemaName

          public void setSchemaName(String schemaName)

      Secify the name of the schema.

    - #### getSchemaName

          public String getSchemaName()

      Get the name of the schema.

    - #### setFunction

          public void setFunction(boolean function)

      Specify whether this call is a function call.

    - #### isFunction

          public boolean isFunction()

      Check whether this call is a function call.

    - #### setReturnValueRequired

          public void setReturnValueRequired(boolean returnValueRequired)

      Specify whether a return value is required.

    - #### isReturnValueRequired

          public boolean isReturnValueRequired()

      Check whether a return value is required.

    - #### setAccessCallParameterMetaData

          public void setAccessCallParameterMetaData(boolean accessCallParameterMetaData)

      Specify whether call parameter metadata should be accessed.

    - #### isAccessCallParameterMetaData

          public boolean isAccessCallParameterMetaData()

      Check whether call parameter metadata should be accessed.

    - #### createReturnResultSetParameter

          public SqlParameter createReturnResultSetParameter(String parameterName,
                                                    RowMapper rowMapper)

      Create a ReturnResultSetParameter/SqlOutParameter depending on the support provided by the JDBC driver used for the database in use.
      Parameters:
        `parameterName` - the name of the parameter (also used as the name of the List returned in the output)
        `rowMapper` - a RowMapper implementation used to map the data returned in the result set
      Returns:
        the appropriate SqlParameter

    - #### getScalarOutParameterName

          public String getScalarOutParameterName()

      Get the name of the single out parameter for this call. If there are multiple parameters, the name of the first one will be returned.

    - #### getCallParameters

          public List<SqlParameter> getCallParameters()

      Get the List of SqlParameter objects to be used in call execution.

    - #### initializeMetaData

          public void initializeMetaData(DataSource dataSource)

      Initialize this class with metadata from the database.
      Parameters:
        `dataSource` - the DataSource used to retrieve metadata

    - #### processParameters

          public void processParameters(List<SqlParameter> parameters)

      Process the list of parameters provided, and if procedure column metadata is used, the parameters will be matched against the metadata information and any missing ones will be automatically included.
      Parameters:
        `parameters` - the list of parameters to use as a base

    - #### reconcileParameters

          protected List<SqlParameter> reconcileParameters(List<SqlParameter> parameters)

      Reconcile the provided parameters with available metadata and add new ones where appropriate.

    - #### matchInParameterValuesWithCallParameters

          public Map<String,Object> matchInParameterValuesWithCallParameters(SqlParameterSource parameterSource)

      Match input parameter values with the parameters declared to be used in the call.
      Parameters:
        `parameterSource` - the input values
      Returns:
        a Map containing the matched parameter names with the value taken from the input

    - #### matchInParameterValuesWithCallParameters

          public Map<String,?> matchInParameterValuesWithCallParameters(Map<String,?> inParameters)

      Match input parameter values with the parameters declared to be used in the call.
      Parameters:
        `inParameters` - the input values
      Returns:
        a Map containing the matched parameter names with the value taken from the input

    - #### matchInParameterValuesWithCallParameters

          public Map<String,?> matchInParameterValuesWithCallParameters(Object[] parameterValues)

    - #### createCallString

          public String createCallString()

      Build the call string based on configuration and metadata information.
      Returns:
        the call string to be used