# Package org.modeshape.jcr.query.model

The Abstract Query Model is a vocabulary that can be used to construct a language-neutral representation of a query.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Command | Represents the abstract base class for all top-level language objects that are the root of a language object tree.
  Constraint | Represents the abstract base class for all constraints.
  DynamicOperand | A dynamic operand used in a `Comparison` constraint.
  FullTextSearch.Term | The general notion of a term that makes up a full-text search.
  JoinCondition | The condition used for a join between two sources.
  LanguageObject | A common interface for all query language objects.
  QueryCommand | Represents the abstract base class for all query commands.
  Readable |
  Source | The source that represents a set of node tuples.
  StaticOperand | A static operand used in a `Comparison` constraint.
  TypeSystem.SerializableComparator<T> |
  TypeSystem.TypeFactory<T> | Factory interface for creating values from strings.
  Visitable | An interface called by a visitor when that visitor is visiting the node.
  Visitor | The basic interface for all query visitor implementations.

- Class Summary
  Class | Description
  --- | ---
  AllNodes | A selector that represents a source that returns all nodes.
  And | A constraint that evaluates to true when both of the other constraints evaluate to true.
  ArithmeticOperand | A dynamic operand that represents a (binary) arithmetic operation upon one or more other operands, used in `Comparison` and `Ordering` components.
  Between | A constraint that evaluates to true when the value defined by the dynamic operand evaluates to be within the specified range.
  BindVariableName | A value bound to a variable name used in a `Comparison` constraint.
  ChildNode | A constraint requiring that the selected node is a child of the node reachable by the supplied absolute path
  ChildNodeJoinCondition | A join condition that evaluates to true only when the named child node is indeed a child of the named parent node.
  Column |
  Comparison | A constraint that evaluates to true when the defined operation evaluates to true.
  DescendantNode | A constraint requiring that the selected node is a descendant of the node reachable by the supplied absolute path
  DescendantNodeJoinCondition | A join condition that evaluates to true only when the named node is a descendant of another named node.
  EquiJoinCondition | A join condition that tests whether a property on a node is equal to a property on another node.
  FullTextSearch | A constraint that evaluates to true only when a full-text search applied to the search scope results in positive findings.
  FullTextSearch.CompoundTerm | A list of `FullTextSearch.Term`s.
  FullTextSearch.Conjunction | A set of `FullTextSearch.Term`s that are ANDed together.
  FullTextSearch.Disjunction | A set of `FullTextSearch.Term`s that are ORed together.
  FullTextSearch.NegationTerm | A `FullTextSearch.Term` that represents a search term that requires another term to not appear.
  FullTextSearch.SimpleTerm | A `FullTextSearch.Term` that represents a single search term.
  FullTextSearchScore | A dynamic operand that evaluates to the full-text search score of a node given by a selector, used in a `Comparison` constraint and `Ordering`s.
  Join |
  Length | A dynamic operand that evaluates to the length of the supplied propety values, used in a `Comparison` constraint.
  Limit | A specification of the limit placed on a query, detailing the a maximum number of result rows and an offset for the first row in the results.
  Literal | A literal value used in a `Comparison` constraint.
  LiteralValue | Implementation of the literal value static operand for the JCR Query Object Model, used only in bound variables.
  LowerCase | A dynamic operand that evaluates to the lower-case representation of the supplied operand, used in a `Comparison` constraint.
  NamedSelector | A Selector that has a name.
  NodeDepth | A dynamic operand that evaluates to the depth of a node given by a selector, used in a `Comparison` constraint.
  NodeLocalName | A dynamic operand that evaluates to the local name of a node given by a selector, used in a `Comparison` constraint.
  NodeName | A dynamic operand that evaluates to the qualified name of a node given by a selector, used in a `Comparison` constraint.
  NodePath | A dynamic operand that evaluates to the path of a node given by a selector, used in a `Comparison` constraint.
  Not | A constraint that negates another constraint.
  Or | A constraint that evaluates to true when either of the other constraints evaluates to true.
  Ordering | A specification of the ordering for the results.
  PropertyExistence | A constraint that evaluates to true only when a named property exists on a node.
  PropertyValue | A dynamic operand that evaluates to the value(s) of a property on a selector, used in a `Comparison` constraint.
  Query |
  QueryObjectModel | Implementation of `QueryObjectModel` that represents a `select query`.
  QueryObjectModelFactory | An implementation of the JCR `QueryObjectModelFactory`.
  ReferenceValue | A dynamic operand that evaluates to the value(s) of a single or any reference property on a selector, used in a `Comparison` constraint.
  Relike | A constraint that evaluates to true when the reverse like operation evaluates to true.
  SameNode | A constraint requiring that the selected node is reachable by the supplied absolute path
  SameNodeJoinCondition | A join condition that tests whether two nodes are the same nodes (that is, have the same identifier or have the same relative path from the nearest ancestor with an identifiers).
  Selector |
  SelectorName | A representation of a qualified or expanded name.
  SelectQuery | An implementation of `SelectQuery`.
  SetCriteria | A constraint that evaluates to true when the defined operation evaluates to true.
  SetQuery | This object acts as a Set operator on multiple `queries`, such as performing UNION, INTERSECT, and EXCEPT operations.
  SetQueryObjectModel | Implementation of `SetQueryObjectModel` that represents a `set query`.
  Subquery | A representation of a non-correlated subquery.
  TypeSystem | An interface that defines the value types used in tuples.
  UpperCase | A dynamic operand that evaluates to the upper-case representation of the supplied operand, used in a `Comparison` constraint.
  Visitors | A set of common visitors that can be reused or extended, and methods that provide easy construction and calling of visitors.
  Visitors.AbstractVisitor | A common base class for all visitors, which provides no-op implementations for all `visit(...)` methods.
  Visitors.JcrSql2Writer |
  Visitors.NavigationVisitor | An abstract visitor implementation that performs navigation of the query object.
  Visitors.ReadableVisitor |
  Visitors.WalkAllVisitor | A visitor implementation that walks the entire query object tree and delegates to another supplied visitor to do the actual work.

- Enum Summary
  Enum | Description
  --- | ---
  ArithmeticOperator | The arithmetic operators.
  ArithmeticOperator.Arity |
  JoinType |
  NullOrder | An enumeration for the kind of `Ordering`.
  Order | An enumeration for the kind of `Ordering`.
  SetQuery.Operation |

## Package org.modeshape.jcr.query.model Description

The Abstract Query Model is a vocabulary that can be used to construct a language-neutral representation of a query. It consists of a family of Java classes each represent the important semantic elements needed to fully define a query. A `QueryCommand` is the interface that represents a top-level query, with the `Query` and `SetQuery` classes being the two implementations.

There are two ways to construct abstract query models. The first is to programmatically construct a query model using the `QueryBuilder`, which provides a fluent API that makes it easy to create a query with Java code. The second (and more common) approach is to use a `QueryParser` that parses a query represented in a specific language (like SQL or XPath) and then creates the query's equivalent abstract query model.

The abstract query model classes are immutable, making them very easily shared or reused if that is advantageous.

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