20
20
import com .google .firebase .firestore .model .FieldPath ;
21
21
import com .google .firebase .firestore .util .Function ;
22
22
import java .util .ArrayList ;
23
+ import java .util .Collections ;
23
24
import java .util .List ;
24
25
25
26
/** Represents a filter that is the conjunction or disjunction of other filters. */
@@ -48,13 +49,13 @@ public String toString() {
48
49
private List <FieldFilter > memoizedFlattenedFilters ;
49
50
50
51
public CompositeFilter (List <Filter > filters , Operator operator ) {
51
- this .filters = filters ;
52
+ this .filters = new ArrayList <>( filters ) ;
52
53
this .operator = operator ;
53
54
}
54
55
55
56
@ Override
56
57
public List <Filter > getFilters () {
57
- return filters ;
58
+ return Collections . unmodifiableList ( filters ) ;
58
59
}
59
60
60
61
public Operator getOperator () {
@@ -64,13 +65,13 @@ public Operator getOperator() {
64
65
@ Override
65
66
public List <FieldFilter > getFlattenedFilters () {
66
67
if (memoizedFlattenedFilters != null ) {
67
- return memoizedFlattenedFilters ;
68
+ return Collections . unmodifiableList ( memoizedFlattenedFilters ) ;
68
69
}
69
70
memoizedFlattenedFilters = new ArrayList <>();
70
71
for (Filter subfilter : filters ) {
71
72
memoizedFlattenedFilters .addAll (subfilter .getFlattenedFilters ());
72
73
}
73
- return memoizedFlattenedFilters ;
74
+ return Collections . unmodifiableList ( memoizedFlattenedFilters ) ;
74
75
}
75
76
76
77
/**
0 commit comments