Skip to content

Commit 737ff58

Browse files
authored
Use unmodifiableList for CompositeFilters. (#3881)
* Use ImmutableList (rather than List) for CompositeFilters. * use unmodifiableList.
1 parent 939f90e commit 737ff58

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.google.firebase.firestore.model.FieldPath;
2121
import com.google.firebase.firestore.util.Function;
2222
import java.util.ArrayList;
23+
import java.util.Collections;
2324
import java.util.List;
2425

2526
/** Represents a filter that is the conjunction or disjunction of other filters. */
@@ -48,13 +49,13 @@ public String toString() {
4849
private List<FieldFilter> memoizedFlattenedFilters;
4950

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

5556
@Override
5657
public List<Filter> getFilters() {
57-
return filters;
58+
return Collections.unmodifiableList(filters);
5859
}
5960

6061
public Operator getOperator() {
@@ -64,13 +65,13 @@ public Operator getOperator() {
6465
@Override
6566
public List<FieldFilter> getFlattenedFilters() {
6667
if (memoizedFlattenedFilters != null) {
67-
return memoizedFlattenedFilters;
68+
return Collections.unmodifiableList(memoizedFlattenedFilters);
6869
}
6970
memoizedFlattenedFilters = new ArrayList<>();
7071
for (Filter subfilter : filters) {
7172
memoizedFlattenedFilters.addAll(subfilter.getFlattenedFilters());
7273
}
73-
return memoizedFlattenedFilters;
74+
return Collections.unmodifiableList(memoizedFlattenedFilters);
7475
}
7576

7677
/**

0 commit comments

Comments
 (0)