Skip to content

Commit 0bcb51b

Browse files
committed
Use ImmutableList (rather than List) for CompositeFilters.
1 parent 939f90e commit 0bcb51b

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

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

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import android.text.TextUtils;
1818
import androidx.annotation.Nullable;
19+
import com.google.common.collect.ImmutableList;
1920
import com.google.firebase.firestore.model.Document;
2021
import com.google.firebase.firestore.model.FieldPath;
2122
import com.google.firebase.firestore.util.Function;
@@ -40,15 +41,15 @@ public String toString() {
4041
}
4142
}
4243

43-
private final List<Filter> filters;
44+
private final ImmutableList<Filter> filters;
4445
private final Operator operator;
4546

4647
// Memoized list of all field filters that can be found by traversing the tree of filters
4748
// contained in this composite filter.
48-
private List<FieldFilter> memoizedFlattenedFilters;
49+
private ImmutableList<FieldFilter> memoizedFlattenedFilters;
4950

5051
public CompositeFilter(List<Filter> filters, Operator operator) {
51-
this.filters = filters;
52+
this.filters = ImmutableList.copyOf(filters);
5253
this.operator = operator;
5354
}
5455

@@ -66,10 +67,11 @@ public List<FieldFilter> getFlattenedFilters() {
6667
if (memoizedFlattenedFilters != null) {
6768
return memoizedFlattenedFilters;
6869
}
69-
memoizedFlattenedFilters = new ArrayList<>();
70+
ImmutableList.Builder<FieldFilter> builder = ImmutableList.builder();
7071
for (Filter subfilter : filters) {
71-
memoizedFlattenedFilters.addAll(subfilter.getFlattenedFilters());
72+
builder.addAll(subfilter.getFlattenedFilters());
7273
}
74+
memoizedFlattenedFilters = builder.build();
7375
return memoizedFlattenedFilters;
7476
}
7577

0 commit comments

Comments
 (0)