org.modeshape.graph.query.model
Class Query

java.lang.Object
  extended by org.modeshape.graph.query.model.Query
All Implemented Interfaces:
Serializable, Command, LanguageObject, QueryCommand, Visitable
Direct Known Subclasses:
JcrSelectQuery

@Immutable
public class Query
extends Object
implements QueryCommand

See Also:
Serialized Form

Field Summary
static boolean IS_DISTINCT_DEFAULT
           
 
Constructor Summary
Query(Source source)
          Create a new query that uses the supplied source.
Query(Source source, Constraint constraint, List<? extends Ordering> orderings, List<? extends Column> columns, Limit limit, boolean isDistinct)
          Create a new query that uses the supplied source, constraint, orderings, columns and limits.
 
Method Summary
 void accept(Visitor visitor)
          Accept the supplied visitor, which should call back to the visitor to complete the double-dispatch operation.
 Query adding(Column... columns)
          Create a copy of this query, but that returns results that include the columns specified by this query as well as the supplied columns.
 Query adding(Ordering... orderings)
          Create a copy of this query, but that returns results that are ordered by the orderings of this column as well as those supplied.
 List<? extends Column> columns()
          Return the columns defining the query results.
 Query constrainedBy(Constraint constraint)
          Create a copy of this query, but one that uses the supplied constraint.
 Constraint constraint()
          Get the constraints, if there are any.
 Query distinct()
          Create a copy of this query, but one in which there are no duplicate rows in the results.
 boolean equals(Object obj)
          
 int hashCode()
          
 boolean isDistinct()
          Determine whether this query is to return only distinct values.
 Limit limits()
          Get the limits associated with this query.
 Query noDistinct()
          Create a copy of this query, but one in which there may be duplicate rows in the results.
 Query orderedBy(List<Ordering> orderings)
          Create a copy of this query, but one whose results should be ordered by the supplied orderings.
 List<? extends Ordering> orderings()
          Return the orderings for this query.
 Query returning(List<Column> columns)
          Create a copy of this query, but that returns results with the supplied columns.
 Source source()
          Get the source for the results.
 String toString()
          
 Query withLimit(int rowLimit)
          Create a copy of this query, but one that uses the supplied limit on the number of result rows.
 Query withOffset(int offset)
          Create a copy of this query, but one that uses the supplied offset.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

IS_DISTINCT_DEFAULT

public static final boolean IS_DISTINCT_DEFAULT
See Also:
Constant Field Values
Constructor Detail

Query

public Query(Source source)
Create a new query that uses the supplied source.

Parameters:
source - the source
Throws:
IllegalArgumentException - if the source is null

Query

public Query(Source source,
             Constraint constraint,
             List<? extends Ordering> orderings,
             List<? extends Column> columns,
             Limit limit,
             boolean isDistinct)
Create a new query that uses the supplied source, constraint, orderings, columns and limits.

Parameters:
source - the source
constraint - the constraint (or composite constraint), or null or empty if there are no constraints
orderings - the specifications of how the results are to be ordered, or null if the order is to be implementation determined
columns - the columns to be included in the results, or null or empty if there are no explicit columns and the actual result columns are to be implementation determiend
limit - the limit for the results, or null if all of the results are to be included
isDistinct - true if duplicates are to be removed from the results
Throws:
IllegalArgumentException - if the source is null
Method Detail

limits

public Limit limits()
Get the limits associated with this query.

Specified by:
limits in interface QueryCommand
Returns:
the limits; never null but possibly unlimited
See Also:
QueryCommand.limits()

orderings

public List<? extends Ordering> orderings()
Return the orderings for this query.

Specified by:
orderings in interface QueryCommand
Returns:
the list of orderings; never null
See Also:
QueryCommand.orderings()

source

public Source source()
Get the source for the results.

Returns:
the query source; never null

constraint

public Constraint constraint()
Get the constraints, if there are any.

Returns:
the constraint; may be null

columns

public List<? extends Column> columns()
Return the columns defining the query results. If there are no columns, then the columns are implementation determined.

Specified by:
columns in interface QueryCommand
Returns:
the list of columns; never null
See Also:
QueryCommand.columns()

isDistinct

public boolean isDistinct()
Determine whether this query is to return only distinct values.

Returns:
true if the query is to remove duplicate tuples, or false otherwise

distinct

public Query distinct()
Create a copy of this query, but one in which there are no duplicate rows in the results.

Returns:
the copy of the query with no duplicate result rows; never null

noDistinct

public Query noDistinct()
Create a copy of this query, but one in which there may be duplicate rows in the results.

Returns:
the copy of the query with potentially duplicate result rows; never null

constrainedBy

public Query constrainedBy(Constraint constraint)
Create a copy of this query, but one that uses the supplied constraint.

Parameters:
constraint - the constraint that should be used; never null
Returns:
the copy of the query that uses the supplied constraint; never null

orderedBy

public Query orderedBy(List<Ordering> orderings)
Create a copy of this query, but one whose results should be ordered by the supplied orderings.

Parameters:
orderings - the result ordering specification that should be used; never null
Returns:
the copy of the query that uses the supplied ordering; never null

withLimit

public Query withLimit(int rowLimit)
Create a copy of this query, but one that uses the supplied limit on the number of result rows.

Specified by:
withLimit in interface QueryCommand
Parameters:
rowLimit - the limit that should be used; must be a positive number
Returns:
the copy of the query that uses the supplied limit; never null
See Also:
QueryCommand.withLimit(int)

withOffset

public Query withOffset(int offset)
Create a copy of this query, but one that uses the supplied offset.

Specified by:
withOffset in interface QueryCommand
Parameters:
offset - the limit that should be used; may not be negative
Returns:
the copy of the query that uses the supplied offset; never null
See Also:
QueryCommand.withOffset(int)

returning

public Query returning(List<Column> columns)
Create a copy of this query, but that returns results with the supplied columns.

Parameters:
columns - the columns of the results; may not be null
Returns:
the copy of the query returning the supplied result columns; never null

adding

public Query adding(Ordering... orderings)
Create a copy of this query, but that returns results that are ordered by the orderings of this column as well as those supplied.

Parameters:
orderings - the additional orderings of the result rows; may no be null
Returns:
the copy of the query returning the supplied result columns; never null

adding

public Query adding(Column... columns)
Create a copy of this query, but that returns results that include the columns specified by this query as well as the supplied columns.

Parameters:
columns - the additional columns that should be included in the the results; may not be null
Returns:
the copy of the query returning the supplied result columns; never null

toString

public String toString()

Overrides:
toString in class Object
See Also:
Object.toString()

hashCode

public int hashCode()

Overrides:
hashCode in class Object
See Also:
Object.hashCode()

equals

public boolean equals(Object obj)

Overrides:
equals in class Object
See Also:
Object.equals(java.lang.Object)

accept

public void accept(Visitor visitor)
Accept the supplied visitor, which should call back to the visitor to complete the double-dispatch operation.

Specified by:
accept in interface Visitable
Parameters:
visitor - the visitor; never null
See Also:
Visitable.accept(org.modeshape.graph.query.model.Visitor)


Copyright © 2008-2011 JBoss, a division of Red Hat. All Rights Reserved.