-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Expressions #1032
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Expressions #1032
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
driver-core/src/main/com/mongodb/client/model/expressions/Expression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/MqlExpression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/MqlExpression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/Expressions.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/ArrayExpression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/Expressions.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/MqlExpression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/DocumentExpression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/package-info.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/IntegerExpression.java
Outdated
Show resolved
Hide resolved
...src/test/functional/com/mongodb/client/model/expressions/ArrayExpressionsFunctionalTest.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/package-info.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/StringExpression.java
Outdated
Show resolved
Hide resolved
.../test/functional/com/mongodb/client/model/expressions/AbstractExpressionsFunctionalTest.java
Outdated
Show resolved
Hide resolved
* @return left if true, right if false. | ||
* @param <T> The type of the resulting expression. | ||
*/ | ||
<T extends Expression> T cond(T left, T right); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
one.eq(of(2)).cond(of("yes"), of("no"));
The present variant of cond does not supply the original value to the left and right branches. Above, the value is one
, but it could be a long composite expression. This is inconvenient. (It also fails to imply that the not-taken branch will not be evaluated, since there is no lambda; this problem is also present in and
and or
.)
one.condNumber(v -> v.eq(of(2)), v -> of("yes"), v -> of("no"));
This alternative has two problems. First, it is always verbose. Second, because there is no self type, distinct variations must be provided for each type, which makes the name confusing (ifNumber
sounds like a typecheck).
If the value must be supplied, switch can be used instead. The only reason to choose the second variant is to enforce evaluation semantics, in which case the parameters of and
and or
should also be lambdas.
driver-core/src/main/com/mongodb/client/model/expressions/NumberExpression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/DocumentExpression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/DocumentExpression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/Expressions.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/package-info.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/Expression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/package-info.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/Expression.java
Outdated
Show resolved
Hide resolved
driver-core/src/main/com/mongodb/client/model/expressions/package-info.java
Outdated
Show resolved
Hide resolved
820e7f8
to
520ae92
Compare
Implement arithmetic expressions (from top 50, and others) JAVA-4803
* Fix, tests JAVA-4799
Rename extractBsonValue Fix access modifiers Remove excess comments Update docs Fix: behaviour of get Add notNull to API, add notNullApi test Fix docs/annotations, tests Fix docs, annotations, since Fix docs Revert external Add missing MqlUnchecked Fix missing null checks Checkstyle JAVA-4799
07c6e62
to
6588406
Compare
JAVA-3879
Tracking PR.
This PR may be used to track anything that needs to be done prior to this expressions branch being merged into master.