| java.lang.Object org.springframework.jca.cci.core.CciTemplate
CciTemplate | public class CciTemplate implements CciOperations(Code) | | This is the central class in the CCI core package.
It simplifies the use of CCI and helps to avoid common errors.
It executes core CCI workflow, leaving application code to provide parameters
to CCI and extract results. This class executes EIS queries or updates,
catching ResourceExceptions and translating them to the generic exception
hierarchy defined in the org.springframework.dao package.
Code using this class can pass in and receive
javax.resource.cci.Record instances, or alternatively implement callback interfaces for creating input
Records and extracting result objects from output Records (or CCI ResultSets).
Can be used within a service implementation via direct instantiation
with a ConnectionFactory reference, or get prepared in an application context
and given to services as bean reference. Note: The ConnectionFactory should
always be configured as a bean in the application context, in the first case
given to the service directly, in the second case to the prepared template.
author: Thierry Templier author: Juergen Hoeller since: 1.2 See Also: RecordCreator See Also: RecordExtractor See Also: org.springframework.dao See Also: org.springframework.jca.cci.connection See Also: org.springframework.jca.cci.object |
Constructor Summary | |
public | CciTemplate() Construct a new CciTemplate for bean usage. | public | CciTemplate(ConnectionFactory connectionFactory) Construct a new CciTemplate, given a ConnectionFactory to obtain Connections from. | public | CciTemplate(ConnectionFactory connectionFactory, ConnectionSpec connectionSpec) Construct a new CciTemplate, given a ConnectionFactory to obtain Connections from. |
Method Summary | |
public void | afterPropertiesSet() | public IndexedRecord | createIndexedRecord(String name) Create an indexed Record through the ConnectionFactory's RecordFactory. | public MappedRecord | createMappedRecord(String name) Create a mapped Record from the ConnectionFactory's RecordFactory. | protected Record | createRecord(RecordCreator recordCreator) Invoke the given RecordCreator, converting JCA ResourceExceptions
to Spring's DataAccessException hierarchy. | protected Object | doExecute(InteractionSpec spec, Record inputRecord, Record outputRecord, RecordExtractor outputExtractor) Execute the specified interaction on an EIS with CCI. | public Object | execute(ConnectionCallback action) | public Object | execute(InteractionCallback action) | public Record | execute(InteractionSpec spec, Record inputRecord) | public void | execute(InteractionSpec spec, Record inputRecord, Record outputRecord) | public Record | execute(InteractionSpec spec, RecordCreator inputCreator) | public Object | execute(InteractionSpec spec, Record inputRecord, RecordExtractor outputExtractor) | public Object | execute(InteractionSpec spec, RecordCreator inputCreator, RecordExtractor outputExtractor) | public ConnectionFactory | getConnectionFactory() Return the CCI ConnectionFactory used by this template. | public ConnectionSpec | getConnectionSpec() Return the CCI ConnectionSpec used by this template, if any. | public CciTemplate | getDerivedTemplate(ConnectionSpec connectionSpec) Create a template derived from this template instance,
inheriting the ConnectionFactory and other settings but
overriding the ConnectionSpec used for obtaining Connections. | public RecordCreator | getOutputRecordCreator() Return a RecordCreator that should be used for creating default output Records. | protected RecordFactory | getRecordFactory(ConnectionFactory connectionFactory) Return a RecordFactory for the given ConnectionFactory. | public void | setConnectionFactory(ConnectionFactory connectionFactory) Set the CCI ConnectionFactory to obtain Connections from. | public void | setConnectionSpec(ConnectionSpec connectionSpec) Set the CCI ConnectionSpec that this template instance is
supposed to obtain Connections for. | public void | setOutputRecordCreator(RecordCreator creator) Set a RecordCreator that should be used for creating default output Records. |
CciTemplate | public CciTemplate()(Code) | | Construct a new CciTemplate for bean usage.
Note: The ConnectionFactory has to be set before using the instance.
See Also: CciTemplate.setConnectionFactory |
CciTemplate | public CciTemplate(ConnectionFactory connectionFactory)(Code) | | Construct a new CciTemplate, given a ConnectionFactory to obtain Connections from.
Note: This will trigger eager initialization of the exception translator.
Parameters: connectionFactory - JCA ConnectionFactory to obtain Connections from |
CciTemplate | public CciTemplate(ConnectionFactory connectionFactory, ConnectionSpec connectionSpec)(Code) | | Construct a new CciTemplate, given a ConnectionFactory to obtain Connections from.
Note: This will trigger eager initialization of the exception translator.
Parameters: connectionFactory - JCA ConnectionFactory to obtain Connections from Parameters: connectionSpec - the CCI ConnectionSpec to obtain Connections for(may be null ) |
afterPropertiesSet | public void afterPropertiesSet()(Code) | | |
doExecute | protected Object doExecute(InteractionSpec spec, Record inputRecord, Record outputRecord, RecordExtractor outputExtractor) throws DataAccessException(Code) | | Execute the specified interaction on an EIS with CCI.
All other interaction execution methods go through this.
Parameters: spec - the CCI InteractionSpec instance that definesthe interaction (connector-specific) Parameters: inputRecord - the input record Parameters: outputRecord - output record (can be null ) Parameters: outputExtractor - object to convert the output record to a result object the output data extracted with the RecordExtractor object throws: DataAccessException - if there is any problem |
getConnectionFactory | public ConnectionFactory getConnectionFactory()(Code) | | Return the CCI ConnectionFactory used by this template.
|
getConnectionSpec | public ConnectionSpec getConnectionSpec()(Code) | | Return the CCI ConnectionSpec used by this template, if any.
|
getDerivedTemplate | public CciTemplate getDerivedTemplate(ConnectionSpec connectionSpec)(Code) | | Create a template derived from this template instance,
inheriting the ConnectionFactory and other settings but
overriding the ConnectionSpec used for obtaining Connections.
Parameters: connectionSpec - the CCI ConnectionSpec that the derived templateinstance is supposed to obtain Connections for the derived template instance See Also: CciTemplate.setConnectionSpec |
getOutputRecordCreator | public RecordCreator getOutputRecordCreator()(Code) | | Return a RecordCreator that should be used for creating default output Records.
|
getRecordFactory | protected RecordFactory getRecordFactory(ConnectionFactory connectionFactory) throws ResourceException(Code) | | Return a RecordFactory for the given ConnectionFactory.
Default implementation returns the connector's RecordFactory if
available, falling back to a NotSupportedRecordFactory placeholder.
This allows to invoke a RecordCreator callback with a non-null
RecordFactory reference in any case.
Parameters: connectionFactory - the CCI ConnectionFactory the CCI RecordFactory for the ConnectionFactory throws: ResourceException - if thrown by CCI methods See Also: org.springframework.jca.cci.connection.NotSupportedRecordFactory |
setConnectionFactory | public void setConnectionFactory(ConnectionFactory connectionFactory)(Code) | | Set the CCI ConnectionFactory to obtain Connections from.
|
setConnectionSpec | public void setConnectionSpec(ConnectionSpec connectionSpec)(Code) | | Set the CCI ConnectionSpec that this template instance is
supposed to obtain Connections for.
|
setOutputRecordCreator | public void setOutputRecordCreator(RecordCreator creator)(Code) | | Set a RecordCreator that should be used for creating default output Records.
Default is none: When no explicit output Record gets passed into an
execute method, CCI's Interaction.execute variant
that returns an output Record will be called.
Specify a RecordCreator here if you always need to call CCI's
Interaction.execute variant with a passed-in output Record.
Unless there is an explicitly specified output Record, CciTemplate will
then invoke this RecordCreator to create a default output Record instance.
See Also: javax.resource.cci.Interaction.execute(javax.resource.cci.InteractionSpecRecord) See Also: javax.resource.cci.Interaction.execute(javax.resource.cci.InteractionSpecRecordRecord) |
|
|