Skip to content

Commit 651e953

Browse files
committed
Address comments.
1 parent b146b81 commit 651e953

File tree

5 files changed

+18
-12
lines changed

5 files changed

+18
-12
lines changed

firebase-firestore/src/main/java/com/google/firebase/firestore/Filter.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
/** @hide */
2626
@RestrictTo(RestrictTo.Scope.LIBRARY)
2727
public class Filter {
28-
/** @hide */
29-
@RestrictTo(RestrictTo.Scope.LIBRARY)
3028
static class FieldFilter extends Filter {
3129
private final FieldPath field;
3230
private final Operator operator;
@@ -52,8 +50,6 @@ public Object getValue() {
5250
}
5351
}
5452

55-
/** @hide */
56-
@RestrictTo(RestrictTo.Scope.LIBRARY)
5753
static class CompositeFilter extends Filter {
5854
private final List<Filter> filters;
5955
private final StructuredQuery.CompositeFilter.Operator operator;

firebase-firestore/src/main/java/com/google/firebase/firestore/Query.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -432,17 +432,15 @@ private FieldFilter parseFieldFilter(Filter.FieldFilter fieldFilterData) {
432432
}
433433

434434
/**
435-
* Takes a {@link Filter.CompositeFilter} object, parses each of its subfilters, and a new {@link
436-
* CompositeFilter} that is constructed using the parsed values. Returns null if the given
437-
* Filter.CompositeFilter does not contain any subfilters. Returns a {@link FieldFilter} if the
438-
* given Filter.CompositeFilter contains only one field filter.
435+
* Takes a {@link Filter.CompositeFilter} object, parses each of its subfilters, and returns a new
436+
* {@link Filter} that is constructed using the parsed values.
439437
*/
440438
private com.google.firebase.firestore.core.Filter parseCompositeFilter(
441439
Filter.CompositeFilter compositeFilterData) {
442440
List<com.google.firebase.firestore.core.Filter> parsedFilters = new ArrayList<>();
443441
for (Filter filter : compositeFilterData.getFilters()) {
444442
com.google.firebase.firestore.core.Filter parsedFilter = parseFilter(filter);
445-
if (!parsedFilter.getFlattenedFilters().isEmpty()) {
443+
if (!parsedFilter.getFilters().isEmpty()) {
446444
parsedFilters.add(parsedFilter);
447445
}
448446
}
@@ -472,7 +470,7 @@ private com.google.firebase.firestore.core.Filter parseFilter(Filter filter) {
472470
// TODO(orquery): This method will become public API. Change visibility and add documentation.
473471
private Query where(Filter filter) {
474472
com.google.firebase.firestore.core.Filter parsedFilter = parseFilter(filter);
475-
if (parsedFilter.getFlattenedFilters().isEmpty()) {
473+
if (parsedFilter.getFilters().isEmpty()) {
476474
// Return the existing query if not adding any more filters (e.g. an empty composite filter).
477475
return this;
478476
}
@@ -619,7 +617,7 @@ private void validateNewFieldFilter(
619617
validateOrderByFieldMatchesInequality(firstOrderByField, newInequality);
620618
}
621619
}
622-
Operator conflictingOp = findFilterOperator(query.getFilters(), conflictingOps(filterOp));
620+
Operator conflictingOp = findFilterWithOperator(query.getFilters(), conflictingOps(filterOp));
623621
if (conflictingOp != null) {
624622
// We special case when it's a duplicate op to give a slightly clearer error message.
625623
if (conflictingOp == filterOp) {
@@ -650,7 +648,7 @@ private void validateNewFilter(com.google.firebase.firestore.core.Filter filter)
650648
* returns the first one that is, or null if none are.
651649
*/
652650
@Nullable
653-
private Operator findFilterOperator(
651+
private Operator findFilterWithOperator(
654652
List<com.google.firebase.firestore.core.Filter> filters, List<Operator> operators) {
655653
for (com.google.firebase.firestore.core.Filter filter : filters) {
656654
if (filter instanceof FieldFilter) {

firebase-firestore/src/main/java/com/google/firebase/firestore/core/CompositeFilter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public CompositeFilter(List<Filter> filters, Operator operator) {
3333
this.operator = operator;
3434
}
3535

36+
@Override
3637
public List<Filter> getFilters() {
3738
return filters;
3839
}

firebase-firestore/src/main/java/com/google/firebase/firestore/core/FieldFilter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,12 @@ public List<FieldFilter> getFlattenedFilters() {
166166
return Collections.singletonList(this);
167167
}
168168

169+
@Override
170+
public List<Filter> getFilters() {
171+
// This is the only filter within this object, so we return a list of size one.
172+
return Collections.singletonList(this);
173+
}
174+
169175
@Override
170176
public FieldPath getFirstInequalityField() {
171177
if (isInequality()) {

firebase-firestore/src/main/java/com/google/firebase/firestore/core/Filter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
package com.google.firebase.firestore.core;
1616

17+
import androidx.annotation.Nullable;
1718
import com.google.firebase.firestore.model.Document;
1819
import com.google.firebase.firestore.model.FieldPath;
1920
import java.util.List;
@@ -28,6 +29,10 @@ public abstract class Filter {
2829
/** Returns a list of all field filters that are contained within this filter */
2930
public abstract List<FieldFilter> getFlattenedFilters();
3031

32+
/** Returns a list of all filters that are contained within this filter */
33+
public abstract List<Filter> getFilters();
34+
3135
/** Returns the field of the first filter that's an inequality, or null if none. */
36+
@Nullable
3237
public abstract FieldPath getFirstInequalityField();
3338
}

0 commit comments

Comments
 (0)