org.apache.openjpa.kernel
Class AbstractPCResultObjectProvider

java.lang.Object
  extended by org.apache.openjpa.kernel.AbstractPCResultObjectProvider
All Implemented Interfaces:
PCResultObjectProvider, ResultObjectProvider, Closeable

public abstract class AbstractPCResultObjectProvider
extends Object
implements PCResultObjectProvider

Abstract implementation of PCResultObjectProvider that implements ResultObjectProvider.getResultObject() by assembling the necessary information about the object to be loaded.

Author:
Patrick Linskey

Field Summary
protected  StoreContext ctx
          The StoreContext that this result object provider will load objects into.
 
Constructor Summary
AbstractPCResultObjectProvider(StoreContext ctx)
          Create a new provider for loading PC objects from the input into ctx.
 
Method Summary
 boolean absolute(int pos)
          Override if desired.
 void close()
          Override if desired.
 StoreContext getContext()
          Return the context this provider was constructed with.
protected abstract  Object getObjectId(ClassMetaData meta)
          Implement this method to extract the object id value from the current record of the input.
protected abstract  Class getPCType()
          Implement this method to extract the type of the pc stored in the current record of the input.
 Object getResultObject()
          Instantiate the current result object.
 void handleCheckedException(Exception e)
          Throws a StoreException by default.
 void initialize(OpenJPAStateManager sm, PCState state, FetchConfiguration fetch)
          Initializes the state manager.
protected abstract  void load(OpenJPAStateManager sm, FetchConfiguration fetch)
          Load data from the current input record into the given state manager.
abstract  boolean next()
          Implement this method to advance the input.
 void open()
          Override if desired.
 void reset()
          Override if desired.
 int size()
          Override if desired.
 boolean supportsRandomAccess()
          Override if desired.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ctx

protected final StoreContext ctx
The StoreContext that this result object provider will load objects into.

Constructor Detail

AbstractPCResultObjectProvider

public AbstractPCResultObjectProvider(StoreContext ctx)
Create a new provider for loading PC objects from the input into ctx.

Method Detail

getContext

public StoreContext getContext()
Return the context this provider was constructed with.


initialize

public void initialize(OpenJPAStateManager sm,
                       PCState state,
                       FetchConfiguration fetch)
                throws Exception
Description copied from interface: PCResultObjectProvider
Initializes the state manager.

Specified by:
initialize in interface PCResultObjectProvider
Throws:
Exception
See Also:
StoreManager.initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)

getResultObject

public Object getResultObject()
                       throws Exception
Description copied from interface: ResultObjectProvider
Instantiate the current result object. This method will only be called after ResultObjectProvider.next() or ResultObjectProvider.absolute(int).

Specified by:
getResultObject in interface ResultObjectProvider
Throws:
Exception

getObjectId

protected abstract Object getObjectId(ClassMetaData meta)
                               throws Exception
Implement this method to extract the object id value from the current record of the input.

Throws:
Exception

getPCType

protected abstract Class getPCType()
                            throws Exception
Implement this method to extract the type of the pc stored in the current record of the input.

Throws:
Exception

load

protected abstract void load(OpenJPAStateManager sm,
                             FetchConfiguration fetch)
                      throws Exception
Load data from the current input record into the given state manager. Remember to call OpenJPAStateManager.setVersion(java.lang.Object) to set the optimistic versioning information, if it has any.

Throws:
Exception

open

public void open()
          throws Exception
Override if desired. Does nothing by default.

Specified by:
open in interface ResultObjectProvider
Throws:
Exception

supportsRandomAccess

public boolean supportsRandomAccess()
Override if desired. Returns false by default.

Specified by:
supportsRandomAccess in interface ResultObjectProvider
See Also:
ResultObjectProvider.supportsRandomAccess()

next

public abstract boolean next()
                      throws Exception
Implement this method to advance the input.

Specified by:
next in interface ResultObjectProvider
Throws:
Exception
See Also:
ResultObjectProvider.next()

absolute

public boolean absolute(int pos)
                 throws Exception
Override if desired. Throws an exception by default.

Specified by:
absolute in interface ResultObjectProvider
Throws:
Exception
See Also:
ResultObjectProvider.absolute(int)

size

public int size()
         throws Exception
Override if desired. Returns Integer.MAX_VALUE by default.

Specified by:
size in interface ResultObjectProvider
Throws:
Exception
See Also:
ResultObjectProvider.size()

reset

public void reset()
           throws Exception
Override if desired. Throws an exception by default.

Specified by:
reset in interface ResultObjectProvider
Throws:
Exception
See Also:
ResultObjectProvider.reset()

close

public void close()
           throws Exception
Override if desired. Does nothing by default.

Specified by:
close in interface ResultObjectProvider
Specified by:
close in interface Closeable
Throws:
Exception
See Also:
ResultObjectProvider.close()

handleCheckedException

public void handleCheckedException(Exception e)
Throws a StoreException by default.

Specified by:
handleCheckedException in interface ResultObjectProvider


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