Interface ResultObjectProvider

All Superinterfaces:
Closeable
All Known Subinterfaces:
BatchedResultObjectProvider, PCResultObjectProvider
All Known Implementing Classes:
AbstractPCResultObjectProvider, GenericResultObjectProvider, InstanceResultObjectProvider, ListResultObjectProvider, MergedResultObjectProvider, OrderingMergedResultObjectProvider, PagingResultObjectProvider, PreparedResultObjectProvider, QueryImpl.PackingResultObjectProvider, RangeResultObjectProvider, SelectResultObjectProvider, UniqueResultObjectProvider, XROP

public interface ResultObjectProvider extends Closeable
Interface that allows lazy/custom instantiation of input objects. ResultList objects do not necessarily load in data all at once. Instead, they may lazily load objects as necessary. So, the lifespan of a ResultObjectProvider instance is related to how the application deals with processing the ResultList created with a given ResultObjectProvider instance.
Author:
Marc Prud'hommeaux, Patrick Linskey, Abe White
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    absolute(int pos)
    Move to the given 0-based position.
    void
    Free the resources associated with this provider.
    Instantiate the current result object.
    void
    Any checked exceptions that are thrown will be passed to this method.
    boolean
    Advance the input to the next position.
    void
    Open the result.
    void
    Reset this provider.
    int
    Return the number of items in the input, or Integer.MAX_VALUE if the size in unknown.
    boolean
    Return true if this provider supports random access.
  • Method Details

    • supportsRandomAccess

      boolean supportsRandomAccess()
      Return true if this provider supports random access.
    • open

      void open() throws Exception
      Open the result. This will be called before next(), absolute(int), or size().
      Throws:
      Exception
    • getResultObject

      Object getResultObject() throws Exception
      Instantiate the current result object. This method will only be called after next() or absolute(int).
      Throws:
      Exception
    • next

      boolean next() throws Exception
      Advance the input to the next position. Return true if there is more data; otherwise false.
      Throws:
      Exception
    • absolute

      boolean absolute(int pos) throws Exception
      Move to the given 0-based position. This method is only called for providers that support random access. Return true if there is data at this position; otherwise false. This may be invoked in place of next().
      Throws:
      Exception
    • size

      int size() throws Exception
      Return the number of items in the input, or Integer.MAX_VALUE if the size in unknown.
      Throws:
      Exception
    • reset

      void reset() throws Exception
      Reset this provider. This is an optional operation. If supported, it should move the position of the provider to before the first element. Non-random-access providers may be able to support this method by re-acquiring all resources as if the result were just opened.
      Throws:
      Exception
    • close

      void close() throws Exception
      Free the resources associated with this provider.
      Specified by:
      close in interface Closeable
      Throws:
      Exception
    • handleCheckedException

      void handleCheckedException(Exception e)
      Any checked exceptions that are thrown will be passed to this method. The provider should re-throw the exception as an appropriate unchecked exception.