com.orientechnologies.jdo
Class oQuery

java.lang.Object
  extended bycom.orientechnologies.jdo.oQuery
All Implemented Interfaces:
Query, java.io.Serializable

public class oQuery
extends java.lang.Object
implements Query

Query implementation. It supports all languages supported by Orient (JDOQL and ORQL).

See Also:
Serialized Form

Constructor Summary
oQuery(oPersistenceManager iManager)
          Create an empty query passing the PersistenceManager associated.
 
Method Summary
 void close(java.lang.Object p0)
          Close a query result and release any resources associated with it.
 void closeAll()
          Close all query results associated with this Query instance, and release all resources associated with them.
 void compile()
          Compile the query.
 void declareImports(java.lang.String parm1)
          Set the import statements to be used to identify the fully qualified name of variables or parameters.
 void declareParameters(java.lang.String parm1)
          Declare the list of parameters query execution.
 void declareVariables(java.lang.String parm1)
          Declare the unbound variables to be used in the query.
 java.lang.Object execute()
          Execute the query returning a collection with results or the persistent object if the query returns only one object.
 java.lang.Object execute(java.lang.Object parm1)
          Execute the query and return the filtered Collection.
 java.lang.Object execute(java.lang.Object parm1, java.lang.Object parm2)
          Execute the query and return the filtered Collection.
 java.lang.Object execute(java.lang.Object parm1, java.lang.Object parm2, java.lang.Object parm3)
          Execute the query and return the filtered Collection.
 java.lang.Object executeWithArray(java.lang.Object[] parm1)
          Execute the query and return the filtered Collection.
 java.lang.Object executeWithMap(java.util.Map parm1)
          Execute the query and return the filtered Collection.
 boolean getIgnoreCache()
          Returns always TRUE since cache is never accessed in query execution
 PersistenceManager getPersistenceManager()
          Get the PersistenceManager associated with this Query.
 boolean isPolymorphic()
          Return polymorphic feature of query execution.
 void setCandidates(java.util.Collection parm1)
          Set the candidate Collection to query.
 void setCandidates(Extent parm1)
          Set the candidate Extent to query.
 void setClass(java.lang.Class iClass)
          Set the class of the candidate instances of the query.
 void setClass(java.lang.String iClassName)
           
 void setDatabase(java.lang.String iUrl)
           
 void setFilter(java.lang.String iFilter)
          Set the filter for the query.
 void setIgnoreCache(boolean iValue)
          Set the ignoreCache option.
 void setOrdering(java.lang.String parm1)
          Set the ordering specification for the result Collection.
 void setPolymorphic(boolean iValue)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

oQuery

public oQuery(oPersistenceManager iManager)
Create an empty query passing the PersistenceManager associated.

Parameters:
iManager -
Method Detail

compile

public void compile()
Compile the query.

Specified by:
compile in interface Query

declareImports

public void declareImports(java.lang.String parm1)
Description copied from interface: Query
Set the import statements to be used to identify the fully qualified name of variables or parameters. Parameters and unbound variables might come from a different class from the candidate class, and the names need to be declared in an import statement to eliminate ambiguity. Import statements are specified as a String with semicolon-separated statements.

The String parameter to this method follows the syntax of the import statement of the Java language.

Specified by:
declareImports in interface Query
Parameters:
parm1 - import statements separated by semicolons.

declareParameters

public void declareParameters(java.lang.String parm1)
Description copied from interface: Query
Declare the list of parameters query execution. The parameter declaration is a String containing one or more query parameter declarations separated with commas. Each parameter named in the parameter declaration must be bound to a value when the query is executed.

The String parameter to this method follows the syntax for formal parameters in the Java language.

Specified by:
declareParameters in interface Query
Parameters:
parm1 - the list of parameters separated by commas.

declareVariables

public void declareVariables(java.lang.String parm1)
Description copied from interface: Query
Declare the unbound variables to be used in the query. Variables might be used in the filter, and these variables must be declared with their type. The unbound variable declaration is a String containing one or more unbound variable declarations separated with semicolons. It follows the syntax for local variables in the Java language.

Specified by:
declareVariables in interface Query
Parameters:
parm1 - the variables separated by semicolons.

execute

public java.lang.Object execute()
Execute the query returning a collection with results or the persistent object if the query returns only one object.

Specified by:
execute in interface Query
Returns:
A oResultSet instance containing the collection of objects returned by query execution ot the persistent object directly.
See Also:
#oResultSet

execute

public java.lang.Object execute(java.lang.Object parm1)
Description copied from interface: Query
Execute the query and return the filtered Collection.

Specified by:
execute in interface Query
Parameters:
parm1 - the value of the first parameter declared.
Returns:
the filtered Collection.
See Also:
Query.executeWithArray(Object[] parameters)

execute

public java.lang.Object execute(java.lang.Object parm1,
                                java.lang.Object parm2)
Description copied from interface: Query
Execute the query and return the filtered Collection.

Specified by:
execute in interface Query
Parameters:
parm1 - the value of the first parameter declared.
parm2 - the value of the second parameter declared.
Returns:
the filtered Collection.
See Also:
Query.executeWithArray(Object[] parameters)

execute

public java.lang.Object execute(java.lang.Object parm1,
                                java.lang.Object parm2,
                                java.lang.Object parm3)
Description copied from interface: Query
Execute the query and return the filtered Collection.

Specified by:
execute in interface Query
Parameters:
parm1 - the value of the first parameter declared.
parm2 - the value of the second parameter declared.
parm3 - the value of the third parameter declared.
Returns:
the filtered Collection.
See Also:
Query.executeWithArray(Object[] parameters)

executeWithArray

public java.lang.Object executeWithArray(java.lang.Object[] parm1)
Description copied from interface: Query
Execute the query and return the filtered Collection.

The execution of the query obtains the values of the parameters and matches them against the declared parameters in order. The names of the declared parameters are ignored. The type of the declared parameters must match the type of the passed parameters, except that the passed parameters might need to be unwrapped to get their primitive values.

The filter, import, declared parameters, declared variables, and ordering statements are verified for consistency.

Each element in the candidate Collection is examined to see that it is assignment compatible to the Class of the query. It is then evaluated by the Boolean expression of the filter. The element passes the filter if there exist unique values for all variables for which the filter expression evaluates to true.

Specified by:
executeWithArray in interface Query
Parameters:
parm1 - the Object array with all of the parameters.
Returns:
the filtered Collection.

executeWithMap

public java.lang.Object executeWithMap(java.util.Map parm1)
Description copied from interface: Query
Execute the query and return the filtered Collection. The query is executed with the parameters set by the Map values. Each Map entry consists of a key which is the name of the parameter in the declareParameters method, and a value which is the value used in the execute method. The keys in the Map and the declared parameters must exactly match or a JDOUserException is thrown.

Specified by:
executeWithMap in interface Query
Parameters:
parm1 - the Map containing all of the parameters.
Returns:
the filtered Collection.
See Also:
Query.executeWithArray(Object[] parameters)

getIgnoreCache

public boolean getIgnoreCache()
Returns always TRUE since cache is never accessed in query execution

Specified by:
getIgnoreCache in interface Query
Returns:
always TRUE
See Also:
Query.setIgnoreCache(boolean)

isPolymorphic

public boolean isPolymorphic()
Return polymorphic feature of query execution. If true, then the query will be executed on all instance of candidate class and all sub-classes.

Returns:
true if is polymorphic, otherwise false

setPolymorphic

public void setPolymorphic(boolean iValue)

getPersistenceManager

public PersistenceManager getPersistenceManager()
Description copied from interface: Query
Get the PersistenceManager associated with this Query.

If this Query was restored from a serialized form, it has no PersistenceManager, and this method returns null.

Specified by:
getPersistenceManager in interface Query
Returns:
the PersistenceManager associated with this Query.

setCandidates

public void setCandidates(java.util.Collection parm1)
Description copied from interface: Query
Set the candidate Collection to query.

Specified by:
setCandidates in interface Query
Parameters:
parm1 - the candidate Collection.

setCandidates

public void setCandidates(Extent parm1)
Description copied from interface: Query
Set the candidate Extent to query.

Specified by:
setCandidates in interface Query
Parameters:
parm1 - the candidate Extent.

setDatabase

public void setDatabase(java.lang.String iUrl)

setClass

public void setClass(java.lang.Class iClass)
Description copied from interface: Query
Set the class of the candidate instances of the query.

The class specifies the class of the candidates of the query. Elements of the candidate collection that are of the specified class are filtered before being put into the result Collection.

Specified by:
setClass in interface Query
Parameters:
iClass - the Class of the candidate instances.

setClass

public void setClass(java.lang.String iClassName)

setFilter

public void setFilter(java.lang.String iFilter)
Description copied from interface: Query
Set the filter for the query.

The filter specification is a String containing a Boolean expression that is to be evaluated for each of the instances in the candidate collection. If the filter is not specified, then it defaults to "true", which has the effect of filtering the input Collection only for class type.

An element of the candidate collection is returned in the result if:

The user may denote uniqueness in the filter expression by explicitly declaring an expression (for example, e1 != e2).

Rules for constructing valid expressions follow the Java language, except for these differences:

Identifiers in the expression are considered to be in the name space of the specified class, with the addition of declared imports, parameters and variables. As in the Java language, this is a reserved word which means the element of the collection being evaluated.

Navigation through single-valued fields is specified by the Java language syntax of field_name.field_name....field_name.

A JDO implementation is allowed to reorder the filter expression for optimization purposes.

Specified by:
setFilter in interface Query
Parameters:
iFilter - the query filter.

setIgnoreCache

public void setIgnoreCache(boolean iValue)
Description copied from interface: Query
Set the ignoreCache option. The default value for this option was set by the PersistenceManagerFactory or the PersistenceManager used to create this Query. The ignoreCache option setting specifies whether the query should execute entirely in the back end, instead of in the cache. If this flag is set to true, an implementation might be able to optimize the query execution by ignoring changed values in the cache. For optimistic transactions, this can dramatically improve query response times.

Specified by:
setIgnoreCache in interface Query
Parameters:
iValue - the setting of the ignoreCache option.

setOrdering

public void setOrdering(java.lang.String parm1)
Description copied from interface: Query
Set the ordering specification for the result Collection. The ordering specification is a String containing one or more ordering declarations separated by commas.

Each ordering declaration is the name of the field on which to order the results followed by one of the following words: "ascending" or "descending".

The field must be declared in the candidate class or must be a navigation expression starting with a field in the candidate class.

Valid field types are primitive types except boolean; wrapper types except Boolean; BigDecimal; BigInteger; String; and Date.

Specified by:
setOrdering in interface Query
Parameters:
parm1 - the ordering specification.

close

public void close(java.lang.Object p0)
Description copied from interface: Query
Close a query result and release any resources associated with it. The parameter is the return from execute(...) and might have iterators open on it. Iterators associated with the query result are invalidated: they return false to hasNext() and throw NoSuchElementException to next().

Specified by:
close in interface Query
Parameters:
p0 - the result of execute(...) on this Query instance.

closeAll

public void closeAll()
Description copied from interface: Query
Close all query results associated with this Query instance, and release all resources associated with them. The query results might have iterators open on them. Iterators associated with the query results are invalidated: they return false to hasNext() and throw NoSuchElementException to next().

Specified by:
closeAll in interface Query