Class MappingRecordOperation
- java.lang.Object
- org.springframework.jca.cci.object.EisOperation
- org.springframework.jca.cci.object.MappingRecordOperation
- All Implemented Interfaces:
InitializingBean
- Direct Known Subclasses:
MappingCommAreaOperation
public abstract class MappingRecordOperation extends EisOperation
EIS operation object that expects mapped input and output objects, converting to and from CCI Records.Concrete subclasses must implement the abstract
createInputRecord(RecordFactory, Object)
andextractOutputData(Record)
methods, to create an input Record from an object and to convert an output Record into an object, respectively.- Since:
- 1.2
- Author:
- Thierry Templier, Juergen Hoeller
- See Also:
createInputRecord(javax.resource.cci.RecordFactory, Object)
,extractOutputData(javax.resource.cci.Record)
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
MappingRecordOperation.RecordCreatorImpl
Implementation of RecordCreator that calls the enclosing class'screateInputRecord
method.protected class
MappingRecordOperation.RecordExtractorImpl
Implementation of RecordExtractor that calls the enclosing class'sextractOutputData
method.
Constructor Summary
Constructors Constructor Description MappingRecordOperation()
Constructor that allows use as a JavaBean.MappingRecordOperation(ConnectionFactory connectionFactory, InteractionSpec interactionSpec)
Convenient constructor with ConnectionFactory and specifications (connection and interaction).
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract Record
createInputRecord(RecordFactory recordFactory, Object inputObject)
Subclasses must implement this method to generate an input Record from an input object passed into theexecute
method.Object
execute(Object inputObject)
Execute the interaction encapsulated by this operation object.protected abstract Object
extractOutputData(Record outputRecord)
Subclasses must implement this method to convert the Record returned by CCI execution into a result object for theexecute
method.void
setOutputRecordCreator(RecordCreator creator)
Set a RecordCreator that should be used for creating default output Records.Methods inherited from class org.springframework.jca.cci.object.EisOperation
afterPropertiesSet, getCciTemplate, getInteractionSpec, setCciTemplate, setConnectionFactory, setInteractionSpec
Constructor Detail
MappingRecordOperation
public MappingRecordOperation()
Constructor that allows use as a JavaBean.
MappingRecordOperation
public MappingRecordOperation(ConnectionFactory connectionFactory, InteractionSpec interactionSpec)
Convenient constructor with ConnectionFactory and specifications (connection and interaction).- Parameters:
connectionFactory
- ConnectionFactory to use to obtain connections
Method Detail
setOutputRecordCreator
public void setOutputRecordCreator(RecordCreator creator)
Set a RecordCreator that should be used for creating default output Records.Default is none: 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. This RecordCreator will then be invoked to create a default output Record instance.
execute
public Object execute(Object inputObject) throws DataAccessException
Execute the interaction encapsulated by this operation object.- Parameters:
inputObject
- the input data, to be converted to a Record by thecreateInputRecord
method- Returns:
- the output data extracted with the
extractOutputData
method - Throws:
DataAccessException
- if there is any problem- See Also:
createInputRecord(javax.resource.cci.RecordFactory, java.lang.Object)
,extractOutputData(javax.resource.cci.Record)
createInputRecord
protected abstract Record createInputRecord(RecordFactory recordFactory, Object inputObject) throws ResourceException, DataAccessException
Subclasses must implement this method to generate an input Record from an input object passed into theexecute
method.- Parameters:
inputObject
- the passed-in input object- Returns:
- the CCI input Record
- Throws:
ResourceException
- if thrown by a CCI method, to be auto-converted to a DataAccessExceptionDataAccessException
- See Also:
execute(Object)
extractOutputData
protected abstract Object extractOutputData(Record outputRecord) throws ResourceException, SQLException, DataAccessException
Subclasses must implement this method to convert the Record returned by CCI execution into a result object for theexecute
method.- Parameters:
outputRecord
- the Record returned by CCI execution- Returns:
- the result object
- Throws:
ResourceException
- if thrown by a CCI method, to be auto-converted to a DataAccessExceptionSQLException
DataAccessException
- See Also:
execute(Object)