org.intermine.objectstore.safe
Class ObjectStoreSafeImpl

java.lang.Object
  extended by org.intermine.objectstore.ObjectStorePassthruImpl
      extended by org.intermine.objectstore.safe.ObjectStoreSafeImpl
All Implemented Interfaces:
ObjectStore

public class ObjectStoreSafeImpl
extends ObjectStorePassthruImpl

Provides a safe implementation of an objectstore - that is, an implementation that works correctly if passed a Query object that has been modified since being used previously.


Field Summary
 
Fields inherited from class org.intermine.objectstore.ObjectStorePassthruImpl
os
 
Fields inherited from interface org.intermine.objectstore.ObjectStore
SEQUENCE_IGNORE
 
Constructor Summary
ObjectStoreSafeImpl(ObjectStore os)
          Creates an instance, from another ObjectStore instance.
 
Method Summary
 int count(Query q, java.util.Map<java.lang.Object,java.lang.Integer> sequence)
          Counts the number of rows the query will produce
 ResultsInfo estimate(Query q)
          Explain a Query (give estimate for execution time and number of rows).
 Results execute(Query q)
          Execute a Query on this ObjectStore
 Results execute(Query q, int batchSize, boolean optimise, boolean explain, boolean prefetch)
          Execute a Query on this ObjectStore
 java.util.List<ResultsRow<java.lang.Object>> execute(Query q, int start, int limit, boolean optimise, boolean explain, java.util.Map<java.lang.Object,java.lang.Integer> sequence)
          Execute a Query on this ObjectStore, asking for a certain range of rows to be returned.
 SingletonResults executeSingleton(Query q)
          Execute a Query on this ObjectStore, returning a SingletonResults
 SingletonResults executeSingleton(Query q, int batchSize, boolean optimise, boolean explain, boolean prefetch)
          Execute a Query on this ObjectStore, returning a SingletonResults
 java.lang.String toString()
          
 
Methods inherited from class org.intermine.objectstore.ObjectStorePassthruImpl
cacheObjectById, createClob, createObjectStoreBag, flushObjectById, getComponentsForQuery, getMaxLimit, getMaxOffset, getMaxTime, getModel, getNewWriter, getObjectByExample, getObjectById, getObjectById, getObjectsByIds, getSequence, getSerial, invalidateObjectById, isMultiConnection, pilferObjectById, prefetchObjectById
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ObjectStoreSafeImpl

public ObjectStoreSafeImpl(ObjectStore os)
Creates an instance, from another ObjectStore instance.

Parameters:
os - an ObjectStore object to use
Method Detail

execute

public Results execute(Query q)
Execute a Query on this ObjectStore

Specified by:
execute in interface ObjectStore
Overrides:
execute in class ObjectStorePassthruImpl
Parameters:
q - the Query to execute
Returns:
the results of the Query

execute

public Results execute(Query q,
                       int batchSize,
                       boolean optimise,
                       boolean explain,
                       boolean prefetch)
Execute a Query on this ObjectStore

Specified by:
execute in interface ObjectStore
Overrides:
execute in class ObjectStorePassthruImpl
Parameters:
q - the Query to execute
batchSize - the batch size to initialise the Results object with
optimise - whether to optimise queries
explain - whether to explain queries
prefetch - whether to use the PrefetchManager
Returns:
the results of the Query

executeSingleton

public SingletonResults executeSingleton(Query q)
Execute a Query on this ObjectStore, returning a SingletonResults

Specified by:
executeSingleton in interface ObjectStore
Overrides:
executeSingleton in class ObjectStorePassthruImpl
Parameters:
q - the Query to execute
Returns:
the results of the Query

executeSingleton

public SingletonResults executeSingleton(Query q,
                                         int batchSize,
                                         boolean optimise,
                                         boolean explain,
                                         boolean prefetch)
Execute a Query on this ObjectStore, returning a SingletonResults

Specified by:
executeSingleton in interface ObjectStore
Overrides:
executeSingleton in class ObjectStorePassthruImpl
Parameters:
q - the Query to execute
batchSize - the batch size to initialise the Results object with
optimise - whether to optimise queries
explain - whether to explain queries
prefetch - whether to use the PrefetchManager
Returns:
the results of the Query

execute

public java.util.List<ResultsRow<java.lang.Object>> execute(Query q,
                                                            int start,
                                                            int limit,
                                                            boolean optimise,
                                                            boolean explain,
                                                            java.util.Map<java.lang.Object,java.lang.Integer> sequence)
                                                     throws ObjectStoreException
Execute a Query on this ObjectStore, asking for a certain range of rows to be returned. This will usually only be called by the Results object returned from execute(Query q).

Specified by:
execute in interface ObjectStore
Overrides:
execute in class ObjectStorePassthruImpl
Parameters:
q - the Query to execute
start - the start row
limit - the maximum number of rows to return
optimise - true if it is expected that optimising the query will improve performance
explain - true if the ObjectStore should enforce maximum query running time constraints
sequence - an object representing the state of the database corresponding to when the action that resulted in this execute was started. This number must match the ObjectStore's internal sequence number or a DataChangedException is thrown. The sequence number is incremented each time the data in the objectstore is changed
Returns:
a List of ResultRows
Throws:
ObjectStoreException - if an error occurs during the running of the Query

estimate

public ResultsInfo estimate(Query q)
                     throws ObjectStoreException
Explain a Query (give estimate for execution time and number of rows).

Specified by:
estimate in interface ObjectStore
Overrides:
estimate in class ObjectStorePassthruImpl
Parameters:
q - the query to estimate rows for
Returns:
parsed results of EXPLAIN
Throws:
ObjectStoreException - if an error occurs explaining the query

count

public int count(Query q,
                 java.util.Map<java.lang.Object,java.lang.Integer> sequence)
          throws ObjectStoreException
Counts the number of rows the query will produce

Specified by:
count in interface ObjectStore
Overrides:
count in class ObjectStorePassthruImpl
Parameters:
q - InterMine Query on which to count rows
sequence - an object representing the state of the database corresponding to when the action that resulted in this execute was started. This number must match the ObjectStore's internal sequence number or a DataChangedException is thrown. The sequence number is incremented each time the data in the objectstore is changed
Returns:
the number of rows that will be produced by query
Throws:
ObjectStoreException - if an error occurs counting the query

toString

public java.lang.String toString()

Overrides:
toString in class java.lang.Object