Skip to content

Commit a97d65f

Browse files
committed
feat(topic-data): search for tombstones in a topic
close #691
1 parent bcb4370 commit a97d65f

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

src/main/java/org/akhq/repositories/RecordRepository.java

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -637,15 +637,21 @@ private static boolean searchFilter(BaseOptions options, Record record) {
637637
return search(options.getSearch(), Arrays.asList(record.getKey(), record.getValue()));
638638
} else {
639639
if (options.getSearchByKey() != null) {
640-
if (!search(options.getSearchByKey(), Collections.singletonList(record.getKey()))) return false;
640+
if (!search(options.getSearchByKey(), Collections.singletonList(record.getKey()))) {
641+
return false;
642+
}
641643
}
642644

643645
if (options.getSearchByValue() != null) {
644-
if (!search(options.getSearchByValue(), Collections.singletonList(record.getValue()))) return false;
646+
if (!search(options.getSearchByValue(), Collections.singletonList(record.getValue()))) {
647+
return false;
648+
}
645649
}
646650

647651
if (options.getSearchByHeaderKey() != null) {
648-
if (!search(options.getSearchByHeaderKey(), record.getHeaders().keySet())) return false;
652+
if (!search(options.getSearchByHeaderKey(), record.getHeaders().keySet())) {
653+
return false;
654+
}
649655
}
650656

651657
if (options.getSearchByHeaderValue() != null) {
@@ -667,6 +673,12 @@ private static boolean search(Search searchFilter, Collection<String> stringsToS
667673
}
668674

669675
private static boolean containsAll(String search, Collection<String> in) {
676+
if (search.equals("null")) {
677+
return in
678+
.stream()
679+
.allMatch(Objects::isNull);
680+
}
681+
670682
String[] split = search.toLowerCase().split("\\s");
671683
for (String s : in) {
672684
if(s != null) {
@@ -682,6 +694,12 @@ private static boolean containsAll(String search, Collection<String> in) {
682694
}
683695

684696
private static boolean equalsAll(String search, Collection<String> in) {
697+
if (search.equals("null")) {
698+
return in
699+
.stream()
700+
.allMatch(Objects::isNull);
701+
}
702+
685703
String[] split = search.toLowerCase().split("\\s");
686704
for (String s : in) {
687705
if(s != null) {
@@ -697,6 +715,12 @@ private static boolean equalsAll(String search, Collection<String> in) {
697715
}
698716

699717
private static boolean notContainsAll(String search, Collection<String> in) {
718+
if (search.equals("null")) {
719+
return in
720+
.stream()
721+
.noneMatch(Objects::isNull);
722+
}
723+
700724
String[] split = search.toLowerCase().split("\\s");
701725
for (String s : in) {
702726
if(s != null) {

0 commit comments

Comments
 (0)