org.springframework.jdbc.core.metadata
Class CallMetaDataContext

java.lang.Object
  extended by 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
protected  Log logger
          Logger available to subclasses
 
Constructor Summary
CallMetaDataContext()
           
 
Method Summary
 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