public abstract class MappingRecordOperation extends EisOperation
Concrete subclasses must implement the abstract
createInputRecord(RecordFactory, Object)
and
extractOutputData(Record)
methods, to create an input
Record from an object and to convert an output Record into an object,
respectively.
createInputRecord(javax.resource.cci.RecordFactory, Object)
,
extractOutputData(javax.resource.cci.Record)
Modifier and Type | Class and Description |
---|---|
protected class |
MappingRecordOperation.RecordCreatorImpl
Implementation of RecordCreator that calls the enclosing
class's
createInputRecord method. |
protected class |
MappingRecordOperation.RecordExtractorImpl
Implementation of RecordExtractor that calls the enclosing
class's
extractOutputData method. |
Constructor and Description |
---|
MappingRecordOperation()
Constructor that allows use as a JavaBean.
|
MappingRecordOperation(ConnectionFactory connectionFactory,
InteractionSpec interactionSpec)
Convenient constructor with ConnectionFactory and specifications
(connection and interaction).
|
Modifier and Type | Method and 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 the
execute 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 the
execute method. |
void |
setOutputRecordCreator(RecordCreator creator)
Set a RecordCreator that should be used for creating default output Records.
|
afterPropertiesSet, getCciTemplate, getInteractionSpec, setCciTemplate, setConnectionFactory, setInteractionSpec
public MappingRecordOperation()
public MappingRecordOperation(ConnectionFactory connectionFactory, InteractionSpec interactionSpec)
connectionFactory
- ConnectionFactory to use to obtain connectionspublic void setOutputRecordCreator(RecordCreator creator)
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.
public Object execute(Object inputObject) throws DataAccessException
inputObject
- the input data, to be converted to a Record
by the createInputRecord
methodextractOutputData
methodDataAccessException
- if there is any problemcreateInputRecord(javax.resource.cci.RecordFactory, java.lang.Object)
,
extractOutputData(javax.resource.cci.Record)
protected abstract Record createInputRecord(RecordFactory recordFactory, Object inputObject) throws ResourceException, DataAccessException
execute
method.inputObject
- the passed-in input objectResourceException
- if thrown by a CCI method, to be auto-converted
to a DataAccessExceptionDataAccessException
execute(Object)
protected abstract Object extractOutputData(Record outputRecord) throws ResourceException, SQLException, DataAccessException
execute
method.outputRecord
- the Record returned by CCI executionResourceException
- if thrown by a CCI method, to be auto-converted
to a DataAccessExceptionSQLException
DataAccessException
execute(Object)