|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.amazon.carbonado.qe.AbstractQuery<S>
com.amazon.carbonado.qe.StandardQuery<S>
public abstract class StandardQuery<S extends Storable>
Abstract query implementation which uses a QueryExecutor.
| Constructor Summary | |
|---|---|
protected |
StandardQuery(Filter<S> filter,
FilterValues<S> values,
OrderingList<S> ordering,
QueryHints hints)
|
| Method Summary | ||
|---|---|---|
|
after(T start)
Returns a query which fetches results for this query after a given starting point, which is useful for re-opening a cursor. |
|
Query<S> |
and(Filter<S> filter)
Returns a new query which has another filter logically "and"ed to this, potentially reducing the amount of
results. |
|
void |
appendTo(Appendable app)
Append the string representation of this object to the given Appendable. |
|
protected void |
clearExecutor()
Clears any cached reference to a query executor. |
|
long |
count()
Returns a count of all results matched by this query. |
|
void |
deleteAll()
Deletes zero or more matching objects. |
|
protected abstract Transaction |
enterTransaction(IsolationLevel level)
Enter a transaction as needed by the standard delete operation, or null if transactions are not supported. |
|
boolean |
equals(Object obj)
|
|
protected QueryExecutor<S> |
executor()
Returns the executor in use by this query. |
|
protected abstract QueryExecutorFactory<S> |
executorFactory()
Return a QueryExecutorFactory which is used to get an executor. |
|
boolean |
exists()
Returns true if any results are matched by this query. |
|
Cursor<S> |
fetch()
Fetches results for this query. |
|
Cursor<S> |
fetchSlice(long from,
Long to)
Fetches a slice of results for this query, as defined by a numerical range. |
|
int |
getBlankParameterCount()
Returns the amount of blank parameters that need to be filled in. |
|
Filter<S> |
getFilter()
Returns the query's filter. |
|
FilterValues<S> |
getFilterValues()
Returns the query's filter values, which is null if filter has no parameters. |
|
protected OrderingList<S> |
getOrdering()
|
|
Class<S> |
getStorableType()
Returns the specific type of Storable managed by this object. |
|
int |
hashCode()
|
|
protected abstract StandardQuery<S> |
newInstance(FilterValues<S> values,
OrderingList<S> ordering,
QueryHints hints)
Return a new or cached instance of StandardQuery implementation, using new filter values. |
|
Query<S> |
not()
Returns a new query which produces all the results not supplied in this query. |
|
Query<S> |
or(Filter<S> filter)
Returns a new query which has another filter logically "or"ed to this, potentially increasing the amount of
results. |
|
Query<S> |
orderBy(String... properties)
Returns a copy of this query ordered by specific property values. |
|
Query<S> |
orderBy(String property)
Returns a copy of this query ordered by a specific property value. |
|
boolean |
printNative(Appendable app,
int indentLevel)
Prints the native query to any appendable, which is useful for performance analysis. |
|
boolean |
printPlan(Appendable app,
int indentLevel)
Prints the query excecution plan to any appendable, which is useful for performance analysis. |
|
protected abstract QueryFactory<S> |
queryFactory()
Return a QueryFactory which is used to form new queries from this one. |
|
protected void |
resetExecutor()
Resets any cached reference to a query executor. |
|
protected void |
setExecutor()
Ensures that a cached query executor reference is available. |
|
boolean |
tryDeleteOne()
Deletes zero or one matching objects. |
|
Query<S> |
with(boolean value)
Returns a copy of this Query with the next blank parameter filled in. |
|
Query<S> |
with(byte value)
Returns a copy of this Query with the next blank parameter filled in. |
|
Query<S> |
with(char value)
Returns a copy of this Query with the next blank parameter filled in. |
|
Query<S> |
with(double value)
Returns a copy of this Query with the next blank parameter filled in. |
|
Query<S> |
with(float value)
Returns a copy of this Query with the next blank parameter filled in. |
|
Query<S> |
with(int value)
Returns a copy of this Query with the next blank parameter filled in. |
|
Query<S> |
with(long value)
Returns a copy of this Query with the next blank parameter filled in. |
|
Query<S> |
with(Object value)
Returns a copy of this Query with the next blank parameter filled in. |
|
Query<S> |
with(short value)
Returns a copy of this Query with the next blank parameter filled in. |
|
Query<S> |
withValues(Object... values)
Returns a copy of this Query with the next blank parameters filled in. |
|
| Methods inherited from class com.amazon.carbonado.qe.AbstractQuery |
|---|
and, checkSliceArguments, deleteOne, fetchAfter, loadOne, or, printNative, printNative, printPlan, printPlan, toString, tryLoadOne |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
protected StandardQuery(Filter<S> filter,
FilterValues<S> values,
OrderingList<S> ordering,
QueryHints hints)
filter - optional filter object, defaults to open filter if nullvalues - optional values object, defaults to filter initial valuesordering - optional order-by propertieshints - optional query hints| Method Detail |
|---|
public Class<S> getStorableType()
Query
getStorableType in interface Query<S extends Storable>public Filter<S> getFilter()
Query
getFilter in interface Query<S extends Storable>public FilterValues<S> getFilterValues()
Query
getFilterValues in interface Query<S extends Storable>public int getBlankParameterCount()
Query
getBlankParameterCount in interface Query<S extends Storable>public Query<S> with(int value)
Query
with in interface Query<S extends Storable>value - parameter value to fill inpublic Query<S> with(long value)
Query
with in interface Query<S extends Storable>value - parameter value to fill inpublic Query<S> with(float value)
Query
with in interface Query<S extends Storable>value - parameter value to fill inpublic Query<S> with(double value)
Query
with in interface Query<S extends Storable>value - parameter value to fill inpublic Query<S> with(boolean value)
Query
with in interface Query<S extends Storable>value - parameter value to fill inpublic Query<S> with(char value)
Query
with in interface Query<S extends Storable>value - parameter value to fill inpublic Query<S> with(byte value)
Query
with in interface Query<S extends Storable>value - parameter value to fill inpublic Query<S> with(short value)
Query
with in interface Query<S extends Storable>value - parameter value to fill inpublic Query<S> with(Object value)
Query
with in interface Query<S extends Storable>value - parameter value to fill inpublic Query<S> withValues(Object... values)
Query
withValues in interface Query<S extends Storable>values - parameter values to fill in; if null or empty, this
Query instance is returned
public Query<S> and(Filter<S> filter)
throws FetchException
Queryfilter logically "and"ed to this, potentially reducing the amount of
results.
and in interface Query<S extends Storable>filter - query filter
FetchException - if storage layer throws an exception
public Query<S> or(Filter<S> filter)
throws FetchException
Queryfilter logically "or"ed to this, potentially increasing the amount of
results.
or in interface Query<S extends Storable>filter - query filter
FetchException - if storage layer throws an exception
public Query<S> not()
throws FetchException
Query
not in interface Query<S extends Storable>FetchException - if storage layer throws an exception
public Query<S> orderBy(String property)
throws FetchException
QueryNote: Specification of ordering properties is not cumulative. Calling this method will first remove any previous ordering properties.
orderBy in interface Query<S extends Storable>property - name of property to order by
FetchException - if storage layer throws an exception
public Query<S> orderBy(String... properties)
throws FetchException
QueryNote: Specification of ordering properties is not cumulative. Calling this method will first remove any previous ordering properties.
orderBy in interface Query<S extends Storable>properties - names of properties to order by
FetchException - if storage layer throws an exception
public <T extends S> Query<S> after(T start)
throws FetchException
Queryordering. If not a total ordering, then query may start at an earlier
position.
Note: The returned query can be very expensive to fetch from repeatedly, if the query needs to perform a sort operation. Ideally, the query ordering should match the natural ordering of an index or key.
after in interface Query<S extends Storable>start - storable to attempt to start after; if null, this query is
returned
FetchException - if storage layer throws an exception
public Cursor<S> fetch()
throws FetchException
Query
fetch in interface Query<S extends Storable>FetchException - if storage layer throws an exceptionRepository.enterTransaction(IsolationLevel)
public Cursor<S> fetchSlice(long from,
Long to)
throws FetchException
Queryordering in order for the slice results to be deterministic.
fetchSlice in interface Query<S extends Storable>from - zero-based from record number, inclusiveto - optional zero-based to record number, exclusive
FetchException - if storage layer throws an exception
public boolean tryDeleteOne()
throws PersistException
Query
tryDeleteOne in interface Query<S extends Storable>PersistMultipleException - if more than one record matches
PersistException - if storage layer throws an exception
public void deleteAll()
throws PersistException
Query
deleteAll in interface Query<S extends Storable>PersistException - if storage layer throws an exception
public long count()
throws FetchException
Query
count in interface Query<S extends Storable>FetchException - if storage layer throws an exception
public boolean exists()
throws FetchException
Query
exists in interface Query<S extends Storable>FetchException - if storage layer throws an exception
public boolean printNative(Appendable app,
int indentLevel)
throws IOException
Query
printNative in interface Query<S extends Storable>app - append results hereindentLevel - amount to indent text, zero for none
IOException
public boolean printPlan(Appendable app,
int indentLevel)
throws IOException
Query
printPlan in interface Query<S extends Storable>app - append results hereindentLevel - amount to indent text, zero for none
IOExceptionpublic int hashCode()
hashCode in interface Query<S extends Storable>hashCode in class AbstractQuery<S extends Storable>public boolean equals(Object obj)
equals in interface Query<S extends Storable>equals in class AbstractQuery<S extends Storable>
public void appendTo(Appendable app)
throws IOException
Appender
appendTo in interface Appenderapp - Appendable object to receive string representation
IOException - if thrown from given Appendableprotected OrderingList<S> getOrdering()
protected QueryExecutor<S> executor()
throws RepositoryException
RepositoryException
protected void setExecutor()
throws RepositoryException
RepositoryException
protected void resetExecutor()
throws RepositoryException
RepositoryExceptionprotected void clearExecutor()
protected abstract Transaction enterTransaction(IsolationLevel level)
level - minimum desired isolation levelprotected abstract QueryFactory<S> queryFactory()
protected abstract QueryExecutorFactory<S> executorFactory()
protected abstract StandardQuery<S> newInstance(FilterValues<S> values,
OrderingList<S> ordering,
QueryHints hints)
values - non-null values objectordering - order-by properties, never null
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||