@Override protected T itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { if(q.getOp()==NaryRelationalOperator._in) { return processInExpression(q); } else { return null; } }
@Override protected T itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { if(q.getOp()==NaryRelationalOperator._in) { return processInExpression(q); } else { return null; } }
/** * Returns a json representation of this query */ @Override public JsonNode toJson() { ArrayNode arr = getFactory().arrayNode(); for (Value x : values) { arr.add(x.toJson()); } return getFactory().objectNode().put("field", getField().toString()). put("op", getOp().toString()). set("values", arr); }
/** * Returns a json representation of this query */ @Override public JsonNode toJson() { ArrayNode arr = getFactory().arrayNode(); for (Value x : values) { arr.add(x.toJson()); } return getFactory().objectNode().put("field", getField().toString()). put("op", getOp().toString()). set("values", arr); }
public NaryValueRelationalExpressionEvaluator(NaryValueRelationalExpression expr, FieldTreeNode context) { field = expr.getField(); fieldMd = context.resolve(field); if (fieldMd == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + field); } operator = expr.getOp(); values = new HashSet<>(); for (Value x : expr.getValues()) { values.add(fieldMd.getType().cast(x.getValue())); } LOGGER.debug("ctor {} {} {}", expr.getField(), operator, values); }
@Override protected QueryExpression itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { return new NaryValueRelationalExpression(toRelative(q.getField(), context), q.getOp(), q.getValues()); }
private DBObject translateNaryValueRelationalExpression(FieldTreeNode context, NaryValueRelationalExpression expr) { Type t = resolve(context, expr.getField()).getType(); if (t.supportsEq()) { List<Object> values = translateValueList(t, expr.getValues()); return new BasicDBObject(translatePath(expr.getField()), new BasicDBObject(NARY_RELATIONAL_OPERATOR_MAP.get(expr.getOp()), values)); } else { throw Error.get(ERR_INVALID_FIELD, expr.toString()); } }
public NaryValueRelationalExpressionEvaluator(NaryValueRelationalExpression expr, FieldTreeNode context) { field = expr.getField(); fieldMd = context.resolve(field); if (fieldMd == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + field); } operator = expr.getOp(); values = new HashSet<>(); for (Value x : expr.getValues()) { values.add(fieldMd.getType().cast(x.getValue())); } LOGGER.debug("ctor {} {} {}", expr.getField(), operator, values); }
@Override protected QueryExpression itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { return new NaryValueRelationalExpression(toRelative(q.getField(), context), q.getOp(), q.getValues()); }
private DBObject translateNaryValueRelationalExpression(FieldTreeNode context, EntityMetadata md, NaryValueRelationalExpression expr,MutablePath fullPath) { FieldInfo finfo=resolveFieldForQuery(context,fullPath.immutableCopy(),expr.getField()); Type t = finfo.fieldMd.getType(); if (t.supportsEq()) { List<Object> values = translateValueList(t, expr.getValues(),finfo.field.equals(ID_PATH)); return new BasicDBObject(translatePath(finfo.field), new BasicDBObject(NARY_RELATIONAL_OPERATOR_MAP.get(expr.getOp()), values)); } else { throw Error.get(ERR_INVALID_FIELD, expr.toString()); } }
protected QueryExpression itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { Binder binding = getBoundValue(q.getValues()); if (binding != null) { return new NaryValueRelationalExpression(q.getField(), q.getOp(), (List<Value>) binding.getValue()); } else { return q; } }
protected QueryExpression itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { Binder binding = getBoundValue(q.getValues()); if (binding != null) { return new NaryValueRelationalExpression(q.getField(), q.getOp(), (List<Value>) binding.getValue()); } else { return q; } }
@Override protected QueryExpression itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { Path p = map(applyContext(context, q.getField())); if (p != null) { return new NaryValueRelationalExpression(removeContext(context, p, q.getField()), q.getOp(), q.getValues()); } else { return q; } }
@Override protected QueryExpression itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { Path p = map(applyContext(context, q.getField())); if (p != null) { return new NaryValueRelationalExpression(removeContext(context, p, q.getField()), q.getOp(), q.getValues()); } else { return q; } }
fld=findFieldInfo( ((ValueComparisonExpression)query).getField(), query); } else if(query instanceof NaryValueRelationalExpression && ((NaryValueRelationalExpression)query).getOp()==NaryRelationalOperator._in) { fld=findFieldInfo( ((NaryValueRelationalExpression)query).getField(), query );
@Override protected QueryExpression itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { QueryFieldInfo qfi = findFieldInfo(q.getField(), q); if (qfi.getFieldEntity() != currentEntity) { return new TruePH(); } else if (qfi.getFieldNameInClause().equals(qfi.getEntityRelativeFieldName()) && nestedFieldPrefix.isEmpty()) { return q; } else { return new NaryValueRelationalExpression(addPrefix(qfi.getEntityRelativeFieldName()), q.getOp(), q.getValues()); } }
@Override protected QueryExpression itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { QueryFieldInfo qfi = findFieldInfo(q.getField(), q); if (qfi.getFieldEntity() != currentEntity) { return new TruePH(); } else if (qfi.getFieldNameInClause().equals(qfi.getEntityRelativeFieldName()) && nestedFieldPrefix.isEmpty()) { return q; } else { return new NaryValueRelationalExpression(addPrefix(qfi.getEntityRelativeFieldName()), q.getOp(), q.getValues()); } }
FieldTreeNode fieldMd=ctx.contextNode.resolve(query.getField()); String globalArr=declareValueArray(ctx,fieldMd,query.getValues()); Block block=new Block(ctx.topLevel.newGlobal(ctx,query.getOp()==NaryRelationalOperator._in?"false":"true")); String loopVar=ctx.newName("i"); ForLoop forLoop=new ForLoop(loopVar,globalArr); block.add(IfStatement.ifDefined(fieldName,forLoop)); if(fieldMd.getType() instanceof DateType) { if(query.getOp()==NaryRelationalOperator._in) { forLoop.add(new IfStatement(new SimpleExpression("this.%s.valueOf()==this.%s[%s].valueOf()",fieldName,globalArr,loopVar), new SimpleStatement("%s=true",block.resultVar), if(query.getOp()==NaryRelationalOperator._in) { forLoop.add(new IfStatement(new SimpleExpression("this.%s==%s[%s]",fieldName,globalArr,loopVar), new SimpleStatement("%s=true",block.resultVar),
@Override public QueryExpression rewrite(QueryExpression q) { UnaryLogicalExpression le = dyncast(UnaryLogicalExpression.class, q); if (le != null && le.getOp() == UnaryLogicalOperator._not) { ValueComparisonExpression vce = dyncast(ValueComparisonExpression.class, le.getQuery()); if (vce != null) { return new ValueComparisonExpression(vce.getField(), vce.getOp().negate(), vce.getRvalue()); } else { FieldComparisonExpression fce = dyncast(FieldComparisonExpression.class, le.getQuery()); if (fce != null) { return new FieldComparisonExpression(fce.getField(), fce.getOp().negate(), fce.getRfield()); } else { NaryValueRelationalExpression nre = dyncast(NaryValueRelationalExpression.class, le.getQuery()); if (nre != null) { return new NaryValueRelationalExpression(nre.getField(), nre.getOp().negate(), nre.getValues()); } else { NaryFieldRelationalExpression nfe = dyncast(NaryFieldRelationalExpression.class, le.getQuery()); if (nfe != null) { return new NaryFieldRelationalExpression(nfe.getField(), nfe.getOp().negate(), nfe.getRfield()); } } } } } return q; } }
@Override public QueryExpression rewrite(QueryExpression q) { UnaryLogicalExpression le = dyncast(UnaryLogicalExpression.class, q); if (le != null && le.getOp() == UnaryLogicalOperator._not) { ValueComparisonExpression vce = dyncast(ValueComparisonExpression.class, le.getQuery()); if (vce != null) { return new ValueComparisonExpression(vce.getField(), vce.getOp().negate(), vce.getRvalue()); } else { FieldComparisonExpression fce = dyncast(FieldComparisonExpression.class, le.getQuery()); if (fce != null) { return new FieldComparisonExpression(fce.getField(), fce.getOp().negate(), fce.getRfield()); } else { NaryValueRelationalExpression nre = dyncast(NaryValueRelationalExpression.class, le.getQuery()); if (nre != null) { return new NaryValueRelationalExpression(nre.getField(), nre.getOp().negate(), nre.getValues()); } else { NaryFieldRelationalExpression nfe = dyncast(NaryFieldRelationalExpression.class, le.getQuery()); if (nfe != null) { return new NaryFieldRelationalExpression(nfe.getField(), nfe.getOp().negate(), nfe.getRfield()); } } } } } return q; } }