org.springframework.jca.cci.core

## Interface RecordExtractor<T>

- All Known Implementing Classes:
    MappingRecordOperation.RecordExtractorImpl

      public interface RecordExtractor<T>

  Callback interface for extracting a result object from a CCI Record instance.

  Used for output object creation in CciTemplate. Alternatively, output Records can also be returned to client code as-is. In case of a CCI ResultSet as execution result, you will almost always want to implement a RecordExtractor, to be able to read the ResultSet in a managed fashion, with the CCI Connection still open while reading the ResultSet.

  Implementations of this interface perform the actual work of extracting results, but don't need to worry about exception handling. ResourceExceptions will be caught and handled correctly by the CciTemplate class.

  Since:
    1.2
  Author:
    Thierry Templier, Juergen Hoeller
  See Also:
    `CciTemplate.execute(javax.resource.cci.InteractionSpec, Record, RecordExtractor)`, `CciTemplate.execute(javax.resource.cci.InteractionSpec, RecordCreator, RecordExtractor)`, `ResultSet`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `extractData(Record record)` Process the data in the given Record, creating a corresponding result object.

- - ### Method Detail

    - #### extractData

          T extractData(Record record)
                        throws ResourceException,
                               SQLException,
                               DataAccessException

      Process the data in the given Record, creating a corresponding result object.
      Parameters:
        `record` - the Record to extract data from (possibly a CCI ResultSet)
      Returns:
        an arbitrary result object, or `null` if none (the extractor will typically be stateful in the latter case)
      Throws:
        `ResourceException` - if thrown by a CCI method, to be auto-converted to a DataAccessException
        `SQLException` - if thrown by a ResultSet method, to be auto-converted to a DataAccessException
        `DataAccessException` - in case of custom exceptions
      See Also:
        `ResultSet`