org.odbms
Interface Query

All Known Implementing Classes:
QueryImpl

public interface Query

handle to a query graph and reference to a specific node.

The query graph consists of multiple nodes, each representing a class or a member of a class. The structure can be linked in any way that the class model used allows. A Query object references a single node of this graph.

The graph can be traversed with the functions descendant() and parent() which return references to other nodes of the graph. These two functions will automatically extend the graph, if necessary.

execute() evaluates the entire graph against the objects stored in the data container. execute() can be called from any node of the graph and will create an ObjectSet filled with objects of the object type that the node, it was called from, represents. Objects for all descendant nodes of the caller Query object will be instantiated. Objects of parent nodes will not be visible in the ObjectSet if they are not referenced from the caller Query object.


Method Summary
 Constraint constrain(Object example)
          adds a constraint to this node.
 Query descendant(String path)
          returns a reference to a descendant node in the query graph.
 ObjectSet execute()
          executes the query.
 Query limitSize(int count)
          limits the maximum amount of objects returned.
 Query orderAscending()
          adds an ascending order criteria to this node of the query graph.
 Query orderDescending()
          adds a descending order criteria to this node of the query graph.
 Query parent(String path)
          returns a reference to a parent node in the query graph.
 

Method Detail

constrain

Constraint constrain(Object example)
adds a constraint to this node.
If the object parameter is deeper than the entire query graph, the query graph is extended accordingly.

Parameters:
example - object for comparison
Returns:
Constraint

execute

ObjectSet execute()
executes the query.

Returns:
ObjectSet - the resultset of the Query

descendant

Query descendant(String path)
returns a reference to a descendant node in the query graph. If the node does not exist, it will be created. Path notation:
"[membername].[membername].[membername]"
(any number of members)

To request references to elements of multi-element objects like arrays, lists, vectors, maps, hashMaps, ...:
"[membername].[membername].[membername]."
(Note the extra "." at the end.)

Parameters:
path - path to the descendant. "[membername].[membername]"
Returns:
Query descendant node - the member node at the end of the path specified.

parent

Query parent(String path)
returns a reference to a parent node in the query graph. If the node does not exist, it will be created. Path notation:
"[classname].[membername].[membername]"
where the last member is this Query node.

Parameters:
path - to the parent node "[classname].[membername]"
Returns:
Query parent node - the class node at the beginning of the path specified.

limitSize

Query limitSize(int count)
limits the maximum amount of objects returned. Especially for sorted queries, large performance advantages are possible.

Parameters:
count - - the maximum amount of objects desired.
Returns:
this Query to allow the chaining of method calls

orderAscending

Query orderAscending()
adds an ascending order criteria to this node of the query graph. In case of multiple calls to ordering methods, the query graph is ordered by all criteria in the order they were called.

Returns:
this Query to allow the chaining of method calls

orderDescending

Query orderDescending()
adds a descending order criteria to this node of the query graph. In case of multiple calls to ordering methods, the query graph is ordered by all criteria in the order they were called.

Returns:
this Query to allow the chaining of method calls


Copyright © 2004-2012 The Kuali Foundation. All Rights Reserved.