Code cleanup
This commit is contained in:
parent
bca768a4b8
commit
d8419a4c1b
@ -1,10 +1,8 @@
|
||||
package it.cavallium.dbengine.client;
|
||||
|
||||
import io.netty5.buffer.api.Drop;
|
||||
import io.netty5.buffer.api.Owned;
|
||||
import it.cavallium.dbengine.client.query.current.data.TotalHitsCount;
|
||||
import io.netty5.buffer.api.internal.ResourceSupport;
|
||||
import it.cavallium.dbengine.database.DiscardingCloseable;
|
||||
import it.cavallium.dbengine.database.SafeCloseable;
|
||||
import it.cavallium.dbengine.database.collections.ValueGetter;
|
||||
import it.cavallium.dbengine.database.collections.ValueTransformer;
|
||||
import it.cavallium.dbengine.lucene.LuceneCloseable;
|
||||
@ -12,12 +10,14 @@ import it.cavallium.dbengine.utils.SimpleResource;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.util.function.Tuples;
|
||||
|
||||
public class Hits<T> extends SimpleResource implements DiscardingCloseable {
|
||||
|
||||
private static final Logger LOG = LogManager.getLogger(Hits.class);
|
||||
private static final Hits<?> EMPTY_HITS = new Hits<>(Flux.empty(), TotalHitsCount.of(0, true), false);
|
||||
private final Flux<T> results;
|
||||
private final TotalHitsCount totalHitsCount;
|
||||
@ -74,6 +74,14 @@ public class Hits<T> extends SimpleResource implements DiscardingCloseable {
|
||||
};
|
||||
}
|
||||
|
||||
public static <T> Hits<T> withResource(Flux<T> hits, TotalHitsCount count, SafeCloseable resource) {
|
||||
if (resource instanceof LuceneCloseable luceneCloseable) {
|
||||
return new LuceneHits<>(hits, count, luceneCloseable);
|
||||
} else {
|
||||
return new CloseableHits<>(hits, count, resource);
|
||||
}
|
||||
}
|
||||
|
||||
public Flux<T> results() {
|
||||
ensureOpen();
|
||||
return results;
|
||||
@ -117,4 +125,44 @@ public class Hits<T> extends SimpleResource implements DiscardingCloseable {
|
||||
super(hits, count, parent);
|
||||
}
|
||||
}
|
||||
|
||||
public static final class LuceneHits<U> extends Hits<U> implements LuceneCloseable {
|
||||
|
||||
private final LuceneCloseable resource;
|
||||
|
||||
public LuceneHits(Flux<U> hits, TotalHitsCount count, LuceneCloseable resource) {
|
||||
super(hits, count);
|
||||
this.resource = resource;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onClose() {
|
||||
try {
|
||||
resource.close();
|
||||
} catch (Throwable ex) {
|
||||
LOG.error("Failed to close resource", ex);
|
||||
}
|
||||
super.onClose();
|
||||
}
|
||||
}
|
||||
|
||||
public static final class CloseableHits<U> extends Hits<U> {
|
||||
|
||||
private final SafeCloseable resource;
|
||||
|
||||
public CloseableHits(Flux<U> hits, TotalHitsCount count, SafeCloseable resource) {
|
||||
super(hits, count);
|
||||
this.resource = resource;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onClose() {
|
||||
try {
|
||||
resource.close();
|
||||
} catch (Throwable ex) {
|
||||
LOG.error("Failed to close resource", ex);
|
||||
}
|
||||
super.onClose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package it.cavallium.dbengine.client;
|
||||
|
||||
import it.cavallium.dbengine.client.Hits.CloseableHits;
|
||||
import it.cavallium.dbengine.client.Hits.LuceneHits;
|
||||
import it.cavallium.dbengine.client.query.ClientQueryParams;
|
||||
import it.cavallium.dbengine.client.query.current.data.Query;
|
||||
import it.cavallium.dbengine.client.query.current.data.TotalHitsCount;
|
||||
@ -17,7 +19,6 @@ import it.cavallium.dbengine.lucene.LuceneCloseable;
|
||||
import it.cavallium.dbengine.lucene.LuceneUtils;
|
||||
import it.cavallium.dbengine.lucene.collector.Buckets;
|
||||
import it.cavallium.dbengine.lucene.searcher.BucketParams;
|
||||
import it.cavallium.dbengine.utils.SimpleResource;
|
||||
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||
import java.time.Duration;
|
||||
import java.util.List;
|
||||
@ -247,44 +248,4 @@ public class LuceneIndexImpl<T, U> implements LuceneIndex<T, U> {
|
||||
}
|
||||
}
|
||||
|
||||
private static final class LuceneHits<U> extends Hits<U> implements LuceneCloseable {
|
||||
|
||||
private final LuceneCloseable resource;
|
||||
|
||||
public LuceneHits(Flux<U> hits, TotalHitsCount count, LuceneCloseable resource) {
|
||||
super(hits, count);
|
||||
this.resource = resource;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onClose() {
|
||||
try {
|
||||
resource.close();
|
||||
} catch (Throwable ex) {
|
||||
LOG.error("Failed to close resource", ex);
|
||||
}
|
||||
super.onClose();
|
||||
}
|
||||
}
|
||||
|
||||
private static final class CloseableHits<U> extends Hits<U> {
|
||||
|
||||
private final SafeCloseable resource;
|
||||
|
||||
public CloseableHits(Flux<U> hits, TotalHitsCount count, SafeCloseable resource) {
|
||||
super(hits, count);
|
||||
this.resource = resource;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onClose() {
|
||||
try {
|
||||
resource.close();
|
||||
} catch (Throwable ex) {
|
||||
LOG.error("Failed to close resource", ex);
|
||||
}
|
||||
super.onClose();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user