public ArrayContainsEvaluator(ArrayContainsExpression expr, FieldTreeNode context) { this.expr = expr; FieldTreeNode node = context.resolve(expr.getArray()); if (node == null) { throw new EvaluationError(expr); } if (node instanceof ArrayField) { ArrayElement el = ((ArrayField) node).getElement(); if (el instanceof SimpleArrayElement) { elem = (SimpleArrayElement) el; } else { throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_SIMPLE_ARRAY); } } else { throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_ARRAY_FIELD); } }
public ArrayContainsEvaluator(ArrayContainsExpression expr, FieldTreeNode context) { this.expr = expr; FieldTreeNode node = context.resolve(expr.getArray()); if (node == null) { throw new EvaluationError(expr); } if (node instanceof ArrayField) { ArrayElement el = ((ArrayField) node).getElement(); if (el instanceof SimpleArrayElement) { elem = (SimpleArrayElement) el; } else { throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_SIMPLE_ARRAY); } } else { throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_ARRAY_FIELD); } }
public ArrayContainsEvaluator(ArrayContainsExpression expr, FieldTreeNode context) { this.expr = expr; FieldTreeNode node = context.resolve(expr.getArray()); if (node == null) { throw new EvaluationError(expr); } if (node instanceof ArrayField) { ArrayElement el = ((ArrayField) node).getElement(); if (el instanceof SimpleArrayElement) { elem = (SimpleArrayElement) el; } else { throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_SIMPLE_ARRAY); } } else { throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_ARRAY_FIELD); } }
private static SortFieldInfo getSortField(Path field, FieldTreeNode context, boolean descending) { FieldTreeNode fieldMd = context.resolve(field); if (!(fieldMd instanceof SimpleField)) { throw new EvaluationError(CrudConstants.ERR_EXPECTED_VALUE + ":" + field); } return new SortFieldInfo((SimpleField) fieldMd, field, descending); } }
private SortFieldInfo getSortField(Path field,FieldTreeNode context,boolean descending) { FieldTreeNode fieldMd=context.resolve(field); if(! (fieldMd instanceof SimpleField) ) { throw new EvaluationError(CrudConstants.ERR_EXPECTED_VALUE+":"+field); } return new SortFieldInfo((SimpleField)fieldMd,field,descending); }
private static SortFieldInfo getSortField(Path field, FieldTreeNode context, boolean descending) { FieldTreeNode fieldMd = context.resolve(field); if (!(fieldMd instanceof SimpleField)) { throw new EvaluationError(CrudConstants.ERR_EXPECTED_VALUE + ":" + field); } return new SortFieldInfo((SimpleField) fieldMd, field, descending); } }
private void validateArrayElement(ArrayElement element, FieldTreeNode refMd, RValueExpression rvalue, Path refPath) { if (element instanceof ObjectArrayElement) { if (refMd != null && !refMd.getType().equals(element.getType())) { throw new EvaluationError(CrudConstants.ERR_INVALID_ASSIGNMENT + arrayField + " <- " + refPath); } else if (rvalue.getType() == RValueExpression.RValueType._value) { throw new EvaluationError(CrudConstants.ERR_EXPECTED_OBJECT_VALUE + arrayField); } } else { if (refMd != null && !refMd.getType().equals(element.getType())) { throw new EvaluationError(CrudConstants.ERR_INVALID_ASSIGNMENT + arrayField + "<-" + refPath); } else if (rvalue.getType() == RValueExpression.RValueType._emptyObject) { throw new EvaluationError(CrudConstants.ERR_EXPECTED_VALUE + arrayField); } } }
public NaryFieldRelationalExpressionEvaluator(NaryFieldRelationalExpression expr, FieldTreeNode context) { field = expr.getField(); fieldMd = context.resolve(field); if (fieldMd == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + field); } rfield = expr.getRfield(); FieldTreeNode rf = context.resolve(rfield); if (rf == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + field); } if (rf instanceof ArrayField) { rfieldMd = (ArrayField) rf; } else { throw new EvaluationError(expr, CrudConstants.ERR_REQUIRED_ARRAY + rfield); } operator = expr.getOp(); LOGGER.debug("ctor {} {} {}", field, operator, rfield); }
public NaryFieldRelationalExpressionEvaluator(NaryFieldRelationalExpression expr, FieldTreeNode context) { field = expr.getField(); fieldMd = context.resolve(field); if (fieldMd == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + field); } rfield = expr.getRfield(); FieldTreeNode rf = context.resolve(rfield); if (rf == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + field); } if (rf instanceof ArrayField) { rfieldMd = (ArrayField) rf; } else { throw new EvaluationError(expr, CrudConstants.ERR_REQUIRED_ARRAY + rfield); } operator = expr.getOp(); LOGGER.debug("ctor {} {} {}", field, operator, rfield); }
public UnsetExpressionEvaluator(JsonNodeFactory factory, FieldTreeNode context, UnsetExpression expr) { fields = new ArrayList<>(expr.getFields().size()); this.factory = factory; for (Path p : expr.getFields()) { FieldTreeNode node = context.resolve(p); if (node == null) { throw new EvaluationError(CrudConstants.ERR_INVALID_DEREFERENCE + p); } fields.add(new AbsPath(p, node, node.getFullPath())); } LOGGER.debug("context {} fields {}", context, fields); }
public UnsetExpressionEvaluator(JsonNodeFactory factory, FieldTreeNode context, UnsetExpression expr) { fields = new ArrayList<>(expr.getFields().size()); this.factory = factory; for (Path p : expr.getFields()) { FieldTreeNode node = context.resolve(p); if (node == null) { throw new EvaluationError(CrudConstants.ERR_INVALID_DEREFERENCE + p); } fields.add(new AbsPath(p, node, node.getFullPath())); } LOGGER.debug("context {} fields {}", context, fields); }
public ArrayMatchEvaluator(ArrayMatchExpression expr, FieldTreeNode context) { // field needs to be resolved relative to the current context field = expr.getArray(); FieldTreeNode node = context.resolve(field); if (node == null) { throw new EvaluationError(expr); } if (node instanceof ArrayField) { ArrayElement el = ((ArrayField) node).getElement(); if (el instanceof ObjectArrayElement) { elem = (ObjectArrayElement) el; ev = QueryEvaluator.getInstance(expr.getElemMatch(), elem); } else { throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_OBJECT_ARRAY + field); } } else { throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_ARRAY + field); } }
public UnsetExpressionEvaluator(JsonNodeFactory factory, FieldTreeNode context, UnsetExpression expr) { fields = new ArrayList<>(expr.getFields().size()); this.factory = factory; for (Path p : expr.getFields()) { FieldTreeNode node = context.resolve(p); if (node == null) { throw new EvaluationError(CrudConstants.ERR_INVALID_DEREFERENCE + p); } fields.add(new AbsPath(p, node, node.getFullPath())); } LOGGER.debug("context {} fields {}", context, fields); }
fieldMd = context.resolve(relativePath); if (fieldMd == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + " " + relativePath); throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + " " + rfieldRelativePath); throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_SIMPLE_FIELD_OR_SIMPLE_ARRAY + " " + relativePath); throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_SIMPLE_FIELD_OR_SIMPLE_ARRAY + " " + rfieldRelativePath);
public ArrayMatchEvaluator(ArrayMatchExpression expr, FieldTreeNode context) { // field needs to be resolved relative to the current context field = expr.getArray(); FieldTreeNode node = context.resolve(field); if (node == null) { throw new EvaluationError(expr); } if (node instanceof ArrayField) { elem = ((ArrayField) node).getElement(); ev = QueryEvaluator.getInstance(expr.getElemMatch(), elem); } else { throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_ARRAY + field); } }
public ArrayMatchEvaluator(ArrayMatchExpression expr, FieldTreeNode context) { // field needs to be resolved relative to the current context field = expr.getArray(); FieldTreeNode node = context.resolve(field); if (node == null) { throw new EvaluationError(expr); } if (node instanceof ArrayField) { elem = ((ArrayField) node).getElement(); ev = QueryEvaluator.getInstance(expr.getElemMatch(), elem); } else { throw new EvaluationError(expr, CrudConstants.ERR_EXPECTED_ARRAY + field); } }
/** * Constructs evaluator for {field op field} style comparison * * @param expr The expression * @param md Entity metadata * @param context The path relative to which the expression will be * evaluated */ public FieldComparisonEvaluator(FieldComparisonExpression expr, FieldTreeNode context) { this.relativePath = expr.getField(); this.rfieldRelativePath = expr.getRfield(); fieldMd = context.resolve(relativePath); if (fieldMd == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + relativePath); } rfieldMd = context.resolve(rfieldRelativePath); if (rfieldMd == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + rfieldRelativePath); } operator = expr.getOp(); LOGGER.debug("ctor {} {} {}", relativePath, operator, rfieldRelativePath); }
public NaryRelationalExpressionEvaluator(NaryRelationalExpression 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(); List<Value> l = expr.getValues(); values = new ArrayList<>(l.size()); for (Value x : l) { if (x != null) { values.add(x.getValue()); } } LOGGER.debug("ctor {} {} {}", expr.getField(), operator, values); }
/** * Constructs evaluator for {field op value} style comparison * * @param expr The expression * @param md Entity metadata */ public ValueComparisonEvaluator(ValueComparisonExpression expr, FieldTreeNode context) { this.field = expr.getField(); fieldMd = context.resolve(field); if (fieldMd == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + field); } operator = expr.getOp(); rvalue = expr.getRvalue(); LOGGER.debug("ctor {} {}", field, operator); }
/** * Constructs evaluator for {field op value} style comparison * * @param expr The expression * @param md Entity metadata */ public ValueComparisonEvaluator(ValueComparisonExpression expr, FieldTreeNode context) { this.field = expr.getField(); fieldMd = context.resolve(field); if (fieldMd == null) { throw new EvaluationError(expr, CrudConstants.ERR_FIELD_NOT_THERE + field); } operator = expr.getOp(); rvalue = expr.getRvalue(); LOGGER.debug("ctor {} {}", field, operator); }