@Override protected QueryExpression itrNaryFieldRelationalExpression(NaryFieldRelationalExpression q, Path context) { return new NaryFieldRelationalExpression(toRelative(q.getField(), context), q.getOp(), toRelative(q.getRfield(), context)); }
@Override protected QueryExpression itrFieldComparisonExpression(FieldComparisonExpression q, Path context) { return new FieldComparisonExpression(toRelative(q.getField(), context), q.getOp(), toRelative(q.getRfield(), context)); }
@Override protected QueryExpression itrFieldComparisonExpression(FieldComparisonExpression q, Path context) { return new FieldComparisonExpression(toRelative(q.getField(), context), q.getOp(), toRelative(q.getRfield(), context)); }
@Override protected QueryExpression itrNaryFieldRelationalExpression(NaryFieldRelationalExpression q, Path context) { return new NaryFieldRelationalExpression(toRelative(q.getField(), context), q.getOp(), toRelative(q.getRfield(), context)); }
@Override protected QueryExpression itrArrayMatchExpression(ArrayMatchExpression q, Path context) { // No need to rewrite elemMatch using relative context, because that is already interpreted relative to the array return new ArrayMatchExpression(toRelative(q.getArray(), context), q.getElemMatch()); }
@Override protected QueryExpression itrArrayMatchExpression(ArrayMatchExpression q, Path context) { // No need to rewrite elemMatch using relative context, because that is already interpreted relative to the array return new ArrayMatchExpression(toRelative(q.getArray(), context), q.getElemMatch()); }
@Override protected QueryExpression itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { return new NaryValueRelationalExpression(toRelative(q.getField(), context), q.getOp(), q.getValues()); }
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { return new ArrayContainsExpression(toRelative(q.getArray(), context), q.getOp(), q.getValues()); }
@Override protected QueryExpression itrNaryValueRelationalExpression(NaryValueRelationalExpression q, Path context) { return new NaryValueRelationalExpression(toRelative(q.getField(), context), q.getOp(), q.getValues()); }
@Override protected QueryExpression itrArrayContainsExpression(ArrayContainsExpression q, Path context) { return new ArrayContainsExpression(toRelative(q.getArray(), context), q.getOp(), q.getValues()); }
@Override protected QueryExpression itrValueComparisonExpression(ValueComparisonExpression q, Path context) { return new ValueComparisonExpression(toRelative(q.getField(), context), q.getOp(), q.getRvalue()); }
@Override protected QueryExpression itrValueComparisonExpression(ValueComparisonExpression q, Path context) { return new ValueComparisonExpression(toRelative(q.getField(), context), q.getOp(), q.getRvalue()); }
@Override protected QueryExpression itrRegexMatchExpression(RegexMatchExpression q, Path context) { return new RegexMatchExpression(toRelative(q.getField(), context), q.getRegex(), q.isCaseInsensitive(), q.isMultiline(), q.isExtended(), q.isDotAll()); }
@Override protected QueryExpression itrRegexMatchExpression(RegexMatchExpression q, Path context) { return new RegexMatchExpression(toRelative(q.getField(), context), q.getRegex(), q.isCaseInsensitive(), q.isMultiline(), q.isExtended(), q.isDotAll()); }