Better define count method
This commit is contained in:
parent
af47584803
commit
3366c52b24
@ -302,7 +302,7 @@ public class SpeedExample {
|
||||
numRepeats,
|
||||
tuple -> Mono
|
||||
.fromRunnable(() -> System.out.println("Calculating size"))
|
||||
.then(tuple.getT2().size(null, false))
|
||||
.then(tuple.getT2().leavesCount(null, false))
|
||||
.doOnNext(s -> System.out.println("Size after: " + s))
|
||||
.then(tuple.getT1().close())
|
||||
);
|
||||
@ -400,7 +400,7 @@ public class SpeedExample {
|
||||
numRepeats,
|
||||
tuple -> Mono
|
||||
.fromRunnable(() -> System.out.println("Calculating size"))
|
||||
.then(tuple.getT2().size(null, false))
|
||||
.then(tuple.getT2().leavesCount(null, false))
|
||||
.doOnNext(s -> System.out.println("Size after: " + s))
|
||||
.then(tuple.getT1().close())
|
||||
);
|
||||
@ -429,7 +429,7 @@ public class SpeedExample {
|
||||
numRepeats,
|
||||
tuple -> Mono
|
||||
.fromRunnable(() -> System.out.println("Calculating size"))
|
||||
.then(tuple.getT2().size(null, false))
|
||||
.then(tuple.getT2().leavesCount(null, false))
|
||||
.doOnNext(s -> System.out.println("Size after: " + s))
|
||||
.then(tuple.getT1().close())
|
||||
);
|
||||
|
@ -87,7 +87,7 @@ public class DatabaseMapDictionary<T, U> extends DatabaseMapDictionaryDeep<T, U,
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<Long> size(@Nullable CompositeSnapshot snapshot, boolean fast) {
|
||||
public Mono<Long> leavesCount(@Nullable CompositeSnapshot snapshot, boolean fast) {
|
||||
return dictionary.sizeRange(resolveSnapshot(snapshot), range, fast);
|
||||
}
|
||||
|
||||
|
@ -174,6 +174,11 @@ public class DatabaseMapDictionaryDeep<T, U, US extends DatabaseStage<U>> implem
|
||||
return LLRange.of(first, end);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<Long> leavesCount(@Nullable CompositeSnapshot snapshot, boolean fast) {
|
||||
return dictionary.sizeRange(resolveSnapshot(snapshot), range, fast);
|
||||
}
|
||||
|
||||
@SuppressWarnings("ReactiveStreamsUnusedPublisher")
|
||||
@Override
|
||||
public Mono<US> at(@Nullable CompositeSnapshot snapshot, T keySuffix) {
|
||||
|
@ -54,7 +54,7 @@ public class DatabaseSingle<U> implements DatabaseStageEntry<U> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<Long> size(@Nullable CompositeSnapshot snapshot, boolean fast) {
|
||||
public Mono<Long> leavesCount(@Nullable CompositeSnapshot snapshot, boolean fast) {
|
||||
return dictionary
|
||||
.isRangeEmpty(resolveSnapshot(snapshot), LLRange.single(key))
|
||||
.map(empty -> empty ? 0L : 1L);
|
||||
|
@ -68,8 +68,8 @@ public class DatabaseSingleMapped<U> implements DatabaseStageEntry<U> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Mono<Long> size(@Nullable CompositeSnapshot snapshot, boolean fast) {
|
||||
return serializedSingle.size(snapshot, fast);
|
||||
public Mono<Long> leavesCount(@Nullable CompositeSnapshot snapshot, boolean fast) {
|
||||
return serializedSingle.leavesCount(snapshot, fast);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -41,9 +41,14 @@ public interface DatabaseStage<T> extends DatabaseStageWithEntry<T> {
|
||||
return Mono.empty();
|
||||
}
|
||||
|
||||
Mono<Long> size(@Nullable CompositeSnapshot snapshot, boolean fast);
|
||||
/**
|
||||
* Count all the elements.
|
||||
* If it's a nested collection the count will include all the children recursively
|
||||
* @param fast true to return an approximate value
|
||||
*/
|
||||
Mono<Long> leavesCount(@Nullable CompositeSnapshot snapshot, boolean fast);
|
||||
|
||||
default Mono<Boolean> isEmpty(@Nullable CompositeSnapshot snapshot) {
|
||||
return size(snapshot, false).map(size -> size <= 0);
|
||||
return leavesCount(snapshot, false).map(size -> size <= 0);
|
||||
}
|
||||
}
|
||||
|
@ -136,7 +136,7 @@ public interface DatabaseStageMap<T, U, US extends DatabaseStage<U>> extends Dat
|
||||
}
|
||||
|
||||
@Override
|
||||
default Mono<Long> size(@Nullable CompositeSnapshot snapshot, boolean fast) {
|
||||
default Mono<Long> leavesCount(@Nullable CompositeSnapshot snapshot, boolean fast) {
|
||||
return getAllStages(snapshot).count();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user