org.apache.openjpa.slice.jdbc
Class UniqueResultObjectProvider

java.lang.Object
  extended by org.apache.openjpa.slice.jdbc.UniqueResultObjectProvider
All Implemented Interfaces:
ResultObjectProvider, Closeable

public class UniqueResultObjectProvider
extends Object
implements ResultObjectProvider

Aggregates individual single query results from different databases.

Author:
Pinaki Poddar

Constructor Summary
UniqueResultObjectProvider(ResultObjectProvider[] rops, StoreQuery q, QueryExpressions[] exps)
           
 
Method Summary
 boolean absolute(int pos)
          Move to the given 0-based position.
 void close()
          Free the resources associated with this provider.
(package private)  Object count(Object current, Object other)
           
 Object getResultObject()
          Instantiate the current result object.
 void handleCheckedException(Exception e)
          Any checked exceptions that are thrown will be passed to this method.
(package private)  Object max(Object current, Object other)
           
(package private)  Object min(Object current, Object other)
           
 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.
(package private)  Object sum(Object current, Object other)
           
 boolean supportsRandomAccess()
          Return true if this provider supports random access.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UniqueResultObjectProvider

public UniqueResultObjectProvider(ResultObjectProvider[] rops,
                                  StoreQuery q,
                                  QueryExpressions[] exps)
Method Detail

absolute

public boolean absolute(int pos)
                 throws Exception
Description copied from interface: ResultObjectProvider
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 ResultObjectProvider.next().

Specified by:
absolute in interface ResultObjectProvider
Throws:
Exception

close

public void close()
           throws Exception
Description copied from interface: ResultObjectProvider
Free the resources associated with this provider.

Specified by:
close in interface ResultObjectProvider
Specified by:
close in interface Closeable
Throws:
Exception

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

handleCheckedException

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

Specified by:
handleCheckedException in interface ResultObjectProvider

next

public boolean next()
             throws Exception
Description copied from interface: ResultObjectProvider
Advance the input to the next position. Return true if there is more data; otherwise false.

Specified by:
next in interface ResultObjectProvider
Throws:
Exception

count

Object count(Object current,
             Object other)

max

Object max(Object current,
           Object other)

min

Object min(Object current,
           Object other)

sum

Object sum(Object current,
           Object other)

open

public void open()
          throws Exception
Description copied from interface: ResultObjectProvider
Open the result. This will be called before ResultObjectProvider.next(), ResultObjectProvider.absolute(int), or ResultObjectProvider.size().

Specified by:
open in interface ResultObjectProvider
Throws:
Exception

reset

public void reset()
           throws Exception
Description copied from interface: ResultObjectProvider
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.

Specified by:
reset in interface ResultObjectProvider
Throws:
Exception

size

public int size()
         throws Exception
Description copied from interface: ResultObjectProvider
Return the number of items in the input, or Integer.MAX_VALUE if the size in unknown.

Specified by:
size in interface ResultObjectProvider
Throws:
Exception

supportsRandomAccess

public boolean supportsRandomAccess()
Description copied from interface: ResultObjectProvider
Return true if this provider supports random access.

Specified by:
supportsRandomAccess in interface ResultObjectProvider


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