16
16
17
17
import android .text .TextUtils ;
18
18
import androidx .annotation .Nullable ;
19
+ import com .google .common .collect .ImmutableList ;
19
20
import com .google .firebase .firestore .model .Document ;
20
21
import com .google .firebase .firestore .model .FieldPath ;
21
22
import com .google .firebase .firestore .util .Function ;
@@ -40,15 +41,15 @@ public String toString() {
40
41
}
41
42
}
42
43
43
- private final List <Filter > filters ;
44
+ private final ImmutableList <Filter > filters ;
44
45
private final Operator operator ;
45
46
46
47
// Memoized list of all field filters that can be found by traversing the tree of filters
47
48
// contained in this composite filter.
48
- private List <FieldFilter > memoizedFlattenedFilters ;
49
+ private ImmutableList <FieldFilter > memoizedFlattenedFilters ;
49
50
50
51
public CompositeFilter (List <Filter > filters , Operator operator ) {
51
- this .filters = filters ;
52
+ this .filters = ImmutableList . copyOf ( filters ) ;
52
53
this .operator = operator ;
53
54
}
54
55
@@ -66,10 +67,11 @@ public List<FieldFilter> getFlattenedFilters() {
66
67
if (memoizedFlattenedFilters != null ) {
67
68
return memoizedFlattenedFilters ;
68
69
}
69
- memoizedFlattenedFilters = new ArrayList <> ();
70
+ ImmutableList . Builder < FieldFilter > builder = ImmutableList . builder ();
70
71
for (Filter subfilter : filters ) {
71
- memoizedFlattenedFilters .addAll (subfilter .getFlattenedFilters ());
72
+ builder .addAll (subfilter .getFlattenedFilters ());
72
73
}
74
+ memoizedFlattenedFilters = builder .build ();
73
75
return memoizedFlattenedFilters ;
74
76
}
75
77
0 commit comments