@Override public boolean evaluate(QueryEvaluationContext ctx) { boolean ret = false; LOGGER.debug("evaluate {}", operator); switch (operator) { case _and: ret = true; for (QueryEvaluator q : evaluators) { if (!q.evaluate(ctx)) { ret = false; break; } } break; case _or: ret = false; for (QueryEvaluator q : evaluators) { if (q.evaluate(ctx)) { ret = true; break; } } break; } ctx.setResult(ret); return ret; } }
public static QueryEvaluator getInstance(QueryExpression expr, EntityMetadata md) { return getInstance(expr, md.getFieldTreeRoot()); }
QueryExpression boundQuery = binders.iterate(query); LOGGER.debug("Association query:{}", boundQuery); QueryEvaluator qeval = QueryEvaluator.getInstance(boundQuery, childMetadata); ArrayNode destNode=null; for (ResultDocument childDoc : childDocs) { if (qeval.evaluate(childDoc.getDoc()).getResult()) { destNode=ensureDestNodeExists(parentDoc,destNode,destFieldName); destNode.add(childDoc.getDoc().getRoot());
QueryExpression boundQuery = binders.iterate(query); LOGGER.debug("Association query:{}", boundQuery); QueryEvaluator qeval = QueryEvaluator.getInstance(boundQuery, childMetadata); ArrayNode destNode=null; for (ResultDocument childDoc : childDocs) { if (qeval.evaluate(childDoc.getDoc()).getResult()) { destNode=ensureDestNodeExists(parentDoc,destNode,destFieldName); destNode.add(childDoc.getDoc().getRoot());
public static QueryEvaluator getInstance(QueryExpression expr, EntityMetadata md) { return getInstance(expr, md.getFieldTreeRoot()); }
@Override public boolean evaluate(QueryEvaluationContext ctx) { boolean ret = false; LOGGER.debug("evaluate {}", operator); switch (operator) { case _and: ret = true; for (QueryEvaluator q : evaluators) { if (!q.evaluate(ctx)) { ret = false; break; } } break; case _or: ret = false; for (QueryEvaluator q : evaluators) { if (q.evaluate(ctx)) { ret = true; break; } } break; } ctx.setResult(ret); return ret; } }
private void associateDocsWithIndex(CompositeMetadata childMetadata, ResultDocument parentDoc, Path destFieldName, BindQuery binders, List<ResultDocument> childDocs, AssociationQuery aq, MemDocIndex childIndex) { LOGGER.debug("Associating docs using index"); QueryExpression boundQuery = binders.iterate(aq.getQuery()); LOGGER.debug("Association query:{}", boundQuery); QueryEvaluator qeval = QueryEvaluator.getInstance(boundQuery, childMetadata); AnalyzeQuery analyzer=new AnalyzeQuery(block.rootMd,aq.getReference()); analyzer.iterate(boundQuery); List<QueryFieldInfo> qfi=analyzer.getFieldInfo(); GetIndexLookupSpec gils=new GetIndexLookupSpec(qfi); LookupSpec ls=gils.iterate(boundQuery); LOGGER.debug("Lookup spec:"+ls); List<ResultDocument> docs=reorder(childDocs,childIndex.find(ls)); ArrayNode destNode=null; for (ResultDocument childDoc : docs) { if (qeval.evaluate(childDoc.getDoc()).getResult()) { destNode=ensureDestNodeExists(parentDoc,destNode,destFieldName); destNode.add(childDoc.getDoc().getRoot()); } } }
public Filter(ExecutionBlock block, Source<ResultDocument> source, QueryExpression q) { super(block); this.source = source; this.q = q; this.qe = QueryEvaluator.getInstance(q, block.getMetadata()); }
@Override public boolean evaluate(QueryEvaluationContext ctx) { boolean ret = false; LOGGER.debug("evaluate {}", operator); switch (operator) { case _and: ret = true; for (QueryEvaluator q : evaluators) { if (!q.evaluate(ctx)) { ret = false; break; } } break; case _or: ret = false; for (QueryEvaluator q : evaluators) { if (q.evaluate(ctx)) { ret = true; break; } } break; } ctx.setResult(ret); return ret; } }
private void associateDocsWithIndex(CompositeMetadata childMetadata, ResultDocument parentDoc, Path destFieldName, BindQuery binders, List<ResultDocument> childDocs, AssociationQuery aq, MemDocIndex childIndex) { LOGGER.debug("Associating docs using index"); QueryExpression boundQuery = binders.iterate(aq.getQuery()); LOGGER.debug("Association query:{}", boundQuery); QueryEvaluator qeval = QueryEvaluator.getInstance(boundQuery, childMetadata); AnalyzeQuery analyzer=new AnalyzeQuery(block.rootMd,aq.getReference()); analyzer.iterate(boundQuery); List<QueryFieldInfo> qfi=analyzer.getFieldInfo(); GetIndexLookupSpec gils=new GetIndexLookupSpec(qfi); LookupSpec ls=gils.iterate(boundQuery); LOGGER.debug("Lookup spec:"+ls); List<ResultDocument> docs=reorder(childDocs,childIndex.find(ls)); ArrayNode destNode=null; for (ResultDocument childDoc : docs) { if (qeval.evaluate(childDoc.getDoc()).getResult()) { destNode=ensureDestNodeExists(parentDoc,destNode,destFieldName); destNode.add(childDoc.getDoc().getRoot()); } } }
public Filter(ExecutionBlock block, Source<ResultDocument> source, QueryExpression q) { super(block); this.source = source; this.q = q; this.qe = QueryEvaluator.getInstance(q, block.getMetadata()); }
public QueryEvaluationContext evaluate(JsonDoc doc) { QueryEvaluationContext ctx = new QueryEvaluationContext(doc.getRoot()); evaluate(ctx); return ctx; }
public static QueryEvaluator getInstance(QueryExpression expr, EntityMetadata md) { return getInstance(expr, md.getFieldTreeRoot()); }
public QueryEvaluationContext evaluate(JsonDoc doc) { QueryEvaluationContext ctx = new QueryEvaluationContext(doc.getRoot()); evaluate(ctx); return ctx; }
public NaryLogicalExpressionEvaluator(NaryLogicalExpression expr, FieldTreeNode context) { List<QueryExpression> queries = expr.getQueries(); evaluators = new ArrayList<>(queries.size()); for (QueryExpression q : queries) { evaluators.add(QueryEvaluator.getInstance(q, context)); } operator = expr.getOp(); }
public QueryEvaluationContext evaluate(JsonDoc doc) { QueryEvaluationContext ctx = new QueryEvaluationContext(doc.getRoot()); evaluate(ctx); return ctx; }
public NaryLogicalExpressionEvaluator(NaryLogicalExpression expr, FieldTreeNode context) { List<QueryExpression> queries = expr.getQueries(); evaluators = new ArrayList<>(queries.size()); for (QueryExpression q : queries) { evaluators.add(QueryEvaluator.getInstance(q, context)); } operator = expr.getOp(); }
@Override public boolean evaluate(QueryEvaluationContext ctx) { LOGGER.debug("evaluate {}", operator); ctx.setResult(operator.apply(evaluator.evaluate(ctx))); return ctx.getResult(); } }
public NaryLogicalExpressionEvaluator(NaryLogicalExpression expr, FieldTreeNode context) { List<QueryExpression> queries = expr.getQueries(); evaluators = new ArrayList<>(queries.size()); for (QueryExpression q : queries) { evaluators.add(QueryEvaluator.getInstance(q, context)); } operator = expr.getOp(); }
@Override public boolean evaluate(QueryEvaluationContext ctx) { LOGGER.debug("evaluate {}", operator); ctx.setResult(operator.apply(evaluator.evaluate(ctx))); return ctx.getResult(); } }