|
Cumulus4j API (1.2.0) |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.cumulus4j.store.query.eval.AbstractExpressionEvaluator<DyadicExpression>
org.cumulus4j.store.query.eval.AndExpressionEvaluator
public class AndExpressionEvaluator
Evaluator handling the boolean operation "&&" (AND).
Cumulus4j encrypts as much as possible and keeps a minimum of plain-text indexes. The plain-text-indexes index each field separately. This is a compromise between security and searchability. As the index contains only plain-text field-values without any plain-text context (the context is encrypted), it provides the advantage of high security, but at the same time it is not possible to query an AND operation directly in the underlying database.
Instead, the AND operation is performed by first querying all dataEntryIDs
of the left and the right side and then intersecting these two
Set<Long> in memory.
If the ResultDescriptor indicates a negation, this evaluator
delegates to the OrExpressionEvaluator, because a query like
"!( a > 5 && b <= 12 )" is internally converted to "a <= 5 || b > 12" for performance reasons.
See NotExpressionEvaluator as well as
De Morgan's laws in wikipedia for details.
OrExpressionEvaluator| Constructor Summary | |
|---|---|
AndExpressionEvaluator(OrExpressionEvaluator negatedExpressionEvaluator)
|
|
AndExpressionEvaluator(QueryEvaluator queryEvaluator,
AbstractExpressionEvaluator<?> parent,
DyadicExpression expression)
|
|
| Method Summary | |
|---|---|
protected Set<Long> |
_queryResultDataEntryIDs(ResultDescriptor resultDescriptor)
Execute a query for the given resultDescriptor. |
protected Set<Long> |
_queryResultDataEntryIDsIgnoringNegation(ResultDescriptor resultDescriptor)
|
AbstractExpressionEvaluator<? extends Expression> |
getLeft()
Get the left branch in the tree structure. |
AbstractExpressionEvaluator<? extends Expression> |
getRight()
Get the right branch in the tree structure. |
| Methods inherited from class org.cumulus4j.store.query.eval.AbstractExpressionEvaluator |
|---|
_getResultSymbols, _queryResultObjects, getExpression, getFieldType, getParent, getQueryEvaluator, getResultSymbols, queryResultDataEntryIDs, queryResultObjects, setLeft, setRight |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public AndExpressionEvaluator(QueryEvaluator queryEvaluator,
AbstractExpressionEvaluator<?> parent,
DyadicExpression expression)
public AndExpressionEvaluator(OrExpressionEvaluator negatedExpressionEvaluator)
| Method Detail |
|---|
public AbstractExpressionEvaluator<? extends Expression> getLeft()
AbstractExpressionEvaluator
getLeft in class AbstractExpressionEvaluator<DyadicExpression>null if there is none.AbstractExpressionEvaluator.setLeft(AbstractExpressionEvaluator),
AbstractExpressionEvaluator.getRight()public AbstractExpressionEvaluator<? extends Expression> getRight()
AbstractExpressionEvaluator
getRight in class AbstractExpressionEvaluator<DyadicExpression>null if there is none.AbstractExpressionEvaluator.setRight(AbstractExpressionEvaluator),
AbstractExpressionEvaluator.getLeft()protected Set<Long> _queryResultDataEntryIDs(ResultDescriptor resultDescriptor)
AbstractExpressionEvaluatorresultDescriptor. This method should contain
the concrete logic for AbstractExpressionEvaluator.queryResultDataEntryIDs(ResultDescriptor) and must be implemented
by subclasses.
_queryResultDataEntryIDs in class AbstractExpressionEvaluator<DyadicExpression>resultDescriptor - the descriptor specifying what candidates (usually "this" or a variable) the
caller is interested in as well as modifiers (e.g. negation)
affecting the query.
dataEntryIDs that match the query
criteria for the specified resultSymbol or null, if the symbol is not
supported (this should be consistent with the implementation of AbstractExpressionEvaluator._getResultSymbols()).AbstractExpressionEvaluator.queryResultDataEntryIDs(ResultDescriptor)protected Set<Long> _queryResultDataEntryIDsIgnoringNegation(ResultDescriptor resultDescriptor)
|
Cumulus4j API (1.2.0) |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||