org.springframework.jca.cci.core

## Interface CciOperations

- All Known Implementing Classes:
    CciTemplate

      public interface CciOperations

  Interface that specifies a basic set of CCI operations on an EIS. Implemented by CciTemplate. Not often used, but a useful option to enhance testability, as it can easily be mocked or stubbed.

  Alternatively, the standard CCI infrastructure can be mocked. However, mocking this interface constitutes significantly less work.

  Since:
    1.2
  Author:
    Juergen Hoeller
  See Also:
    `CciTemplate`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> T` | `execute(ConnectionCallback<T> action)` Execute a request on an EIS with CCI, implemented as callback action working on a CCI Connection.
    `<T> T` | `execute(InteractionCallback<T> action)` Execute a request on an EIS with CCI, implemented as callback action working on a CCI Interaction.
    `Record` | `execute(InteractionSpec spec, Record inputRecord)` Execute the specified interaction on an EIS with CCI.
    `Record` | `execute(InteractionSpec spec, RecordCreator inputCreator)` Execute the specified interaction on an EIS with CCI.
    `<T> T` | `execute(InteractionSpec spec, RecordCreator inputCreator, RecordExtractor<T> outputExtractor)` Execute the specified interaction on an EIS with CCI.
    `void` | `execute(InteractionSpec spec, Record inputRecord, Record outputRecord)` Execute the specified interaction on an EIS with CCI.
    `<T> T` | `execute(InteractionSpec spec, Record inputRecord, RecordExtractor<T> outputExtractor)` Execute the specified interaction on an EIS with CCI.

- - ### Method Detail

    - #### execute

          <T> T execute(ConnectionCallback<T> action)
                    throws DataAccessException

      Execute a request on an EIS with CCI, implemented as callback action working on a CCI Connection. This allows for implementing arbitrary data access operations, within Spring's managed CCI environment: that is, participating in Spring-managed transactions and converting JCA ResourceExceptions into Spring's DataAccessException hierarchy.

      The callback action can return a result object, for example a domain object or a collection of domain objects.

      Parameters:
        `action` - the callback object that specifies the action
      Returns:
        the result object returned by the action, if any
      Throws:
        `DataAccessException` - if there is any problem

    - #### execute

          <T> T execute(InteractionCallback<T> action)
                    throws DataAccessException

      Execute a request on an EIS with CCI, implemented as callback action working on a CCI Interaction. This allows for implementing arbitrary data access operations on a single Interaction, within Spring's managed CCI environment: that is, participating in Spring-managed transactions and converting JCA ResourceExceptions into Spring's DataAccessException hierarchy.

      The callback action can return a result object, for example a domain object or a collection of domain objects.

      Parameters:
        `action` - the callback object that specifies the action
      Returns:
        the result object returned by the action, if any
      Throws:
        `DataAccessException` - if there is any problem

    - #### execute

          Record execute(InteractionSpec spec,
                       Record inputRecord)
                         throws DataAccessException

      Execute the specified interaction on an EIS with CCI.
      Parameters:
        `spec` - the CCI InteractionSpec instance that defines the interaction (connector-specific)
        `inputRecord` - the input record
      Returns:
        the output record
      Throws:
        `DataAccessException` - if there is any problem

    - #### execute

          void execute(InteractionSpec spec,
                     Record inputRecord,
                     Record outputRecord)
                       throws DataAccessException

      Execute the specified interaction on an EIS with CCI.
      Parameters:
        `spec` - the CCI InteractionSpec instance that defines the interaction (connector-specific)
        `inputRecord` - the input record
        `outputRecord` - the output record
      Throws:
        `DataAccessException` - if there is any problem

    - #### execute

          Record execute(InteractionSpec spec,
                       RecordCreator inputCreator)
                         throws DataAccessException

      Execute the specified interaction on an EIS with CCI.
      Parameters:
        `spec` - the CCI InteractionSpec instance that defines the interaction (connector-specific)
        `inputCreator` - object that creates the input record to use
      Returns:
        the output record
      Throws:
        `DataAccessException` - if there is any problem

    - #### execute

          <T> T execute(InteractionSpec spec,
                      Record inputRecord,
                      RecordExtractor<T> outputExtractor)
                    throws DataAccessException

      Execute the specified interaction on an EIS with CCI.
      Parameters:
        `spec` - the CCI InteractionSpec instance that defines the interaction (connector-specific)
        `inputRecord` - the input record
        `outputExtractor` - object to convert the output record to a result object
      Returns:
        the output data extracted with the RecordExtractor object
      Throws:
        `DataAccessException` - if there is any problem

    - #### execute

          <T> T execute(InteractionSpec spec,
                      RecordCreator inputCreator,
                      RecordExtractor<T> outputExtractor)
                    throws DataAccessException

      Execute the specified interaction on an EIS with CCI.
      Parameters:
        `spec` - the CCI InteractionSpec instance that defines the interaction (connector-specific)
        `inputCreator` - object that creates the input record to use
        `outputExtractor` - object to convert the output record to a result object
      Returns:
        the output data extracted with the RecordExtractor object
      Throws:
        `DataAccessException` - if there is any problem