org.outerj.daisy.query.model |
The query model.
The query model should be stateless for expression evaluation, but
is not stateless for SQL generation.
That is, if expressions are precompiled they can be evaluated multiple
times, by multiple threads concurrently (for example, this is used
for evaluating the ACL expressions).
The SQL generation is however not threadsafe, as sometimes state
needs to be kept between the 'generate sql' and 'bind sql' phases.
(This could of course be changed to retain that state in some
context object, but this is how the situation currently is).
|
Java Source File Name | Type | Comment |
AbstractExpression.java | Class | |
AbstractFunction.java | Class | |
AbstractMultiArgPredicate.java | Class | |
AbstractPredicateExpr.java | Class | |
AccessRestrictions.java | Class | This object is used to gather items from the where clause of a query, which need
additional ACL checking. |
AclConditionViolation.java | Class | |
AlwaysSatisfiedPredicate.java | Class | |
And.java | Class | |
Between.java | Class | |
Dereference.java | Class | A dereference expression allows to follow through links, in order to evaluate identifiers on
the linked-to document.
The dereference operator pushes the traversed document on the evaluation context stack,
so that it modifies the behaviour of the ContextDoc function. |
DoesNotHaveVariant.java | Class | |
Eq.java | Class | |
EvaluationUtil.java | Class | |
ExprDocData.java | Class | |
ExprDocDataMissingException.java | Class | |
Expression.java | Interface | Base interface for predicate and value expression. |
FullTextQuery.java | Class | |
Function.java | Interface | |
FunctionFactory.java | Class | |
Gt.java | Class | |
GtEq.java | Class | |
HasAll.java | Class | |
HasAny.java | Class | |
HasNone.java | Class | |
HasPart.java | Class | |
HasPartWithMimeType.java | Class | |
HierarchicalHasAllAny.java | Class | |
HierarchicalHasNone.java | Class | |
Identifier.java | Class | |
In.java | Class | |
InCollection.java | Class | |
IsLinked.java | Class | |
IsNotNull.java | Class | |
IsNull.java | Class | |
LangInOrNotInSync.java | Class | Implementation of the LangInSync() and LangNotInSync() conditions. |
Like.java | Class | |
LinksToOrFrom.java | Class | |
Literal.java | Class | |
Lt.java | Class | |
LtEq.java | Class | |
MatchesPath.java | Class | |
MultiArgPredicate.java | Class | |
NotEq.java | Class | |
Or.java | Class | |
ParamString.java | Class | |
PredicateExpr.java | Interface | Interface for predicate expressions, these are expression which
evaluate to either "true" or "false". |
Query.java | Class | Describes a query. |
QValueType.java | enum | Enumeration of types that can occur in queries. |
ReverseLangInOrNotInSync.java | Class | Implementation of the ReverseLangInSync() and ReverseLangNotInSync() conditions. |
SqlGenerationContext.java | Class | Context object used during the generation of SQL from a daisy query.
The main goal of this class is to keep track of which tables are
required by the conditions, thus which tables will need to be joined in
the "from" clause of the SQL statement. |
SqlUtils.java | Class | |
Tristate.java | Class | Defines three states: yes, no, maybe. |
UnaryPredicateExpr.java | Class | |
ValueExpr.java | Interface | An expression which evaluates to some value. |
ValueExprList.java | Class | |
ValueExprUtil.java | Class | |