org.apache.openjpa.lib.rop
Interface ResultObjectProvider

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

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
 boolean absolute(int pos)
          Move to the given 0-based position.
 void close()
          Free the resources associated with this provider.
 Object getResultObject()
          Instantiate the current result object.
 void handleCheckedException(Exception e)
          Any checked exceptions that are thrown will be passed to this method.
 boolean next()
          Advance the input to the next position.
 void open()
          Open the result.
 void reset()
          Reset this provider.
 int size()
          Return the number of items in the input, or Integer.MAX_VALUE if the size in unknown.
 boolean supportsRandomAccess()
          Return true if this provider supports random access.
 

Method Detail

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.



Copyright © 2006-2010 Apache Software Foundation. All Rights Reserved.