Skip to content

Commit f13d069

Browse files
committed
edit
1 parent 86244a3 commit f13d069

File tree

2 files changed

+16
-29
lines changed

2 files changed

+16
-29
lines changed

src/main/java/org/usf/jquery/web/QueryDecorator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
*/
1919
@Getter
2020
@RequiredArgsConstructor
21-
final class QueryDecorator implements ViewDecorator {
21+
final class QueryDecorator implements ViewDecorator { //non public
2222

2323
private final String id;
2424
private final QueryView query;

src/main/java/org/usf/jquery/web/RequestEntryChain.java

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@
4242
import java.util.ArrayList;
4343
import java.util.List;
4444
import java.util.Optional;
45-
import java.util.function.BiFunction;
46-
import java.util.function.Function;
4745
import java.util.function.IntFunction;
4846
import java.util.stream.Stream;
4947

@@ -55,16 +53,15 @@
5553
import org.usf.jquery.core.JQueryType;
5654
import org.usf.jquery.core.JavaType;
5755
import org.usf.jquery.core.LogicalOperator;
56+
import org.usf.jquery.core.NamedColumn;
5857
import org.usf.jquery.core.OperationColumn;
5958
import org.usf.jquery.core.Order;
6059
import org.usf.jquery.core.ParameterSet;
6160
import org.usf.jquery.core.Partition;
61+
import org.usf.jquery.core.QueryBuilder;
6262
import org.usf.jquery.core.QueryColumn;
6363
import org.usf.jquery.core.QueryContext;
6464
import org.usf.jquery.core.QueryView;
65-
import org.usf.jquery.core.QueryBuilder;
66-
import org.usf.jquery.core.NamedColumn;
67-
import org.usf.jquery.core.TypedComparator;
6865
import org.usf.jquery.core.ViewColumn;
6966
import org.usf.jquery.core.ViewJoin;
7067

@@ -251,15 +248,18 @@ public DBFilter evalFilter(ViewDecorator vd, QueryContext ctx, List<RequestEntry
251248
}
252249
}
253250
else if(nonNull(rc.col)) {
254-
if(nonNull(rc.cmp)) { //column comparator
255-
var cp = new RequestEntryChain(rc.entry.value, false, null, rc.entry.assertOuterParameters(values), null);
256-
return rc.entry.chainComparator(vd, ctx, rc.cmp.filter(cp.toArgs(vd, ctx, rc.col, rc.cmp.getParameterSet())));
257-
}
258251
if(rc.entry.isLast()) { // no criteria, no comparator
259252
var fn = requireNonNull(values).size() == 1 ? eq() : in(); //non empty
260253
var e = new RequestEntryChain(null, false, null, values, null);
261254
return fn.filter(e.toArgs(vd, ctx, rc.col, fn.getParameterSet())); //no chain
262255
}
256+
var e = rc.entry.next;
257+
var res = lookupComparator(e.value);
258+
if(res.isPresent()) { //column comparator
259+
var cmp = res.get();
260+
var cp = new RequestEntryChain(e.value, false, null, e.assertOuterParameters(values), null);
261+
return e.chainComparator(vd, ctx, cmp.filter(cp.toArgs(vd, ctx, rc.col, cmp.getParameterSet())));
262+
}
263263
throw noSuchResourceException(isNull(rc.cd) ? "comparator" : "comparator|criteria", rc.entry.next.value);
264264
}
265265
throw new IllegalStateException("illegal ViewResource: " + rc);
@@ -292,7 +292,7 @@ DBFilter chainComparator(ViewDecorator td, QueryContext ctx, DBFilter f) {
292292

293293
private ViewResource chainColumnOperations(ViewDecorator vd, QueryContext ctx, boolean filter) {
294294
var r = lookupResource(vd, ctx, filter);
295-
if(!r.isFilter()) { // !criteria & !comparator
295+
if(!r.isCriteria()) { // !criteria & !comparator
296296
var e = r.entry.next;
297297
while(nonNull(e)) { //chain until !operator
298298
var res = lookupOperator(e.value);
@@ -374,12 +374,8 @@ private Optional<ViewResource> lookupColumnResource(ViewDecorator td, boolean fi
374374
var cd = res.get();
375375
try {
376376
var col = td.column(cd); //throw exception
377-
if(filter && hasNext()) {
378-
var cmp = lookupComparator(next.value);
379-
if(cmp.isPresent()) {
380-
return Optional.of(new ViewResource(requireNoArgs().next, td, cd, col, cmp.get()));
381-
}
382-
var crt = cd.criteria(next.value); //TD !operator
377+
if(filter && hasNext() && lookupComparator(next.value).isEmpty() && lookupOperator(next.value).isEmpty()) {
378+
var crt = cd.criteria(next.value); //!operator & !comparator
383379
if(nonNull(crt)) {
384380
return Optional.of(new ViewResource(requireNoArgs().next, td, cd, col, crt));
385381
}
@@ -531,26 +527,17 @@ static final class ViewResource {
531527
private DBColumn col;
532528
private CriteriaBuilder<DBFilter> viewCrt;
533529
private CriteriaBuilder<ComparisonExpression> colCrt;
534-
private TypedComparator cmp;
535530

536531
public ViewResource(RequestEntryChain entry, ViewDecorator vd, ColumnDecorator cd, DBColumn col) {
537-
this(entry, vd, cd, col, null, null, null); //[view.]column
532+
this(entry, vd, cd, col, null, null); //[view.]column
538533
}
539534

540535
public ViewResource(RequestEntryChain entry, ViewDecorator vd, ColumnDecorator cd, DBColumn col, CriteriaBuilder<ComparisonExpression> colCrt) {
541-
this(entry, vd, cd, col, null, colCrt, null); //[view.]colum.criteria
542-
}
543-
544-
public ViewResource(RequestEntryChain entry, ViewDecorator vd, ColumnDecorator cd, DBColumn col, TypedComparator cmp) {
545-
this(entry, vd, cd, col, null, null, cmp); //[view.]colum.comparator
536+
this(entry, vd, cd, col, null, colCrt); //[view.]colum.criteria
546537
}
547538

548539
public ViewResource(RequestEntryChain entry, ViewDecorator vd, CriteriaBuilder<DBFilter> viewCrt) {
549-
this(entry, vd, null, null, viewCrt, null, null); //[view.]criteria
550-
}
551-
552-
boolean isFilter() {
553-
return nonNull(cmp) || isCriteria();
540+
this(entry, vd, null, null, viewCrt, null); //[view.]criteria
554541
}
555542

556543
boolean isCriteria() {

0 commit comments

Comments
 (0)