public Cases<T, Q> then(Expression<T> then) {
            caseElements.add(0, new CaseElement<D>(when, then));
            return cases;
        }
Intermediate step

@param <T> Result type
@param <Q> Parent expression type
querydsl-core/src/main/java/com/querydsl/core/types/dsl/CaseForEqBuilder.java