Skip to content

Commit ae96e63

Browse files
committed
set only one filter for SnapshotAgent
deprecate addFilter in SnapshotAgent
1 parent c815c18 commit ae96e63

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

agent/snapshot/src/main/java/me/hsgamer/topper/agent/snapshot/SnapshotAgent.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
public abstract class SnapshotAgent<K, V> implements Agent, Runnable {
1414
private final AtomicReference<Snapshot<K, V>> snapshot = new AtomicReference<>(new Snapshot<>());
15-
private final List<Predicate<Map.Entry<K, V>>> filters = new ArrayList<>();
15+
private Predicate<Map.Entry<K, V>> filter = null;
1616
private Comparator<V> comparator;
1717

1818
public static <K, V> SnapshotAgent<K, V> create(DataHolder<K, V> holder) {
@@ -44,7 +44,10 @@ public void stop() {
4444
}
4545

4646
public List<Map.Entry<K, V>> getUrgentSnapshot() {
47-
Stream<Map.Entry<K, V>> stream = getDataStream().filter(snapshot -> filters.stream().allMatch(filter -> filter.test(snapshot)));
47+
Stream<Map.Entry<K, V>> stream = getDataStream();
48+
if (filter != null) {
49+
stream = stream.filter(filter);
50+
}
4851
if (comparator != null) {
4952
stream = stream.sorted(Map.Entry.comparingByValue(comparator));
5053
}
@@ -69,8 +72,13 @@ public void setComparator(Comparator<V> comparator) {
6972
this.comparator = comparator;
7073
}
7174

75+
public void setFilter(Predicate<Map.Entry<K, V>> filter) {
76+
this.filter = filter;
77+
}
78+
79+
@Deprecated
7280
public void addFilter(Predicate<Map.Entry<K, V>> filter) {
73-
filters.add(filter);
81+
setFilter(filter);
7482
}
7583

7684
private static final class Snapshot<K, V> {

0 commit comments

Comments
 (0)