| 
 | Cumulus4j API (1.2.0-SNAPSHOT) | |||||||||
| 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-SNAPSHOT) | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||