KeyRemover.remove: refactor - rename GitTreeReader.stream as entries
This commit is contained in:
parent
660b74c965
commit
3789afb824
4 changed files with 21 additions and 9 deletions
|
@ -92,7 +92,7 @@ class GitDBRepo {
|
||||||
}
|
}
|
||||||
|
|
||||||
private Result<Stream<NamedRevBlob>> streamTree(final Ref branchRef, final GitTreeReader treeFilter) {
|
private Result<Stream<NamedRevBlob>> streamTree(final Ref branchRef, final GitTreeReader treeFilter) {
|
||||||
return treeFilter.stream(branchRef);
|
return treeFilter.entries(branchRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -55,7 +55,7 @@ class GitTreeReader {
|
||||||
* @param branchRef the branch to read
|
* @param branchRef the branch to read
|
||||||
* @return a stream of key/value pairs as NamedRevBlobs
|
* @return a stream of key/value pairs as NamedRevBlobs
|
||||||
*/
|
*/
|
||||||
Result<Stream<NamedRevBlob>> stream(final Ref branchRef) {
|
Result<Stream<NamedRevBlob>> entries(final Ref branchRef) {
|
||||||
final RevWalk revWalk = new RevWalk(repository);
|
final RevWalk revWalk = new RevWalk(repository);
|
||||||
return Result.of(parseTree(branchRef, revWalk))
|
return Result.of(parseTree(branchRef, revWalk))
|
||||||
.andThen(configureFilter())
|
.andThen(configureFilter())
|
||||||
|
|
|
@ -24,11 +24,13 @@ package net.kemitix.gitdb.impl;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import net.kemitix.mon.maybe.Maybe;
|
import net.kemitix.mon.maybe.Maybe;
|
||||||
import net.kemitix.mon.result.Result;
|
import net.kemitix.mon.result.Result;
|
||||||
|
import net.kemitix.mon.result.WithResultContinuation;
|
||||||
import org.eclipse.jgit.lib.*;
|
import org.eclipse.jgit.lib.*;
|
||||||
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import static net.kemitix.conditional.Condition.where;
|
import static net.kemitix.conditional.Condition.where;
|
||||||
|
|
||||||
|
@ -52,12 +54,22 @@ class KeyRemover {
|
||||||
Result<Maybe<ObjectId>> remove(final Ref branchRef, final String key) {
|
Result<Maybe<ObjectId>> remove(final Ref branchRef, final String key) {
|
||||||
final TreeFormatter treeFormatter = new TreeFormatter();
|
final TreeFormatter treeFormatter = new TreeFormatter();
|
||||||
final AtomicBoolean removed = new AtomicBoolean(false);
|
final AtomicBoolean removed = new AtomicBoolean(false);
|
||||||
new GitTreeReader(repository)
|
return new GitTreeReader(repository)
|
||||||
.stream(branchRef)
|
.entries(branchRef)
|
||||||
.peek(s -> s.peek(flagIfFound(key, removed))
|
.thenWith(s -> addOthersToTree(key, treeFormatter, removed, s))
|
||||||
.filter(isNotKey(key))
|
.flatMap(s -> insertTree(treeFormatter))
|
||||||
.forEach(addToTree(treeFormatter)));
|
.maybe(oi -> removed.get());
|
||||||
return insertTree(treeFormatter).maybe(oi -> removed.get());
|
}
|
||||||
|
|
||||||
|
private static WithResultContinuation<Stream<NamedRevBlob>> addOthersToTree(
|
||||||
|
final String key,
|
||||||
|
final TreeFormatter treeFormatter,
|
||||||
|
final AtomicBoolean removed,
|
||||||
|
final Stream<NamedRevBlob> s) {
|
||||||
|
return () -> s
|
||||||
|
.peek(flagIfFound(key, removed))
|
||||||
|
.filter(isNotKey(key))
|
||||||
|
.forEach(addToTree(treeFormatter));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -71,7 +71,7 @@ class KeyWriter {
|
||||||
private Result<TreeFormatter> getTreeFormatter(final Ref branchRef) {
|
private Result<TreeFormatter> getTreeFormatter(final Ref branchRef) {
|
||||||
final TreeFormatter treeFormatter = new TreeFormatter();
|
final TreeFormatter treeFormatter = new TreeFormatter();
|
||||||
final GitTreeReader gitTreeReader = new GitTreeReader(repository);
|
final GitTreeReader gitTreeReader = new GitTreeReader(repository);
|
||||||
return gitTreeReader.stream(branchRef)
|
return gitTreeReader.entries(branchRef)
|
||||||
.peek(s -> s.forEach(item -> treeFormatter.append(item.getName(), item.getRevBlob())))
|
.peek(s -> s.forEach(item -> treeFormatter.append(item.getName(), item.getRevBlob())))
|
||||||
.map(x -> treeFormatter);
|
.map(x -> treeFormatter);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue