Extract NamedRevBlob to top level class
This commit is contained in:
parent
d6f8bcbc0f
commit
2305c0ed1b
3 changed files with 62 additions and 29 deletions
|
@ -22,12 +22,9 @@
|
|||
package net.kemitix.gitdb.impl;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.eclipse.jgit.lib.Constants;
|
||||
import org.eclipse.jgit.lib.Ref;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
import org.eclipse.jgit.revwalk.RevBlob;
|
||||
import org.eclipse.jgit.revwalk.RevWalk;
|
||||
import org.eclipse.jgit.treewalk.TreeWalk;
|
||||
import org.eclipse.jgit.treewalk.filter.PathFilter;
|
||||
|
@ -66,7 +63,8 @@ class GitTreeReader {
|
|||
while (treeWalk.next()) {
|
||||
builder.add(new NamedRevBlob(
|
||||
treeWalk.getNameString(),
|
||||
new RevWalk(repository).lookupBlob(treeWalk.getObjectId(0))));
|
||||
new RevWalk(repository).lookupBlob(treeWalk.getObjectId(0)),
|
||||
repository));
|
||||
}
|
||||
return builder.build();
|
||||
}
|
||||
|
@ -82,26 +80,4 @@ class GitTreeReader {
|
|||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents the key/value pairs read from the tree.
|
||||
*/
|
||||
@Getter(AccessLevel.PACKAGE)
|
||||
@RequiredArgsConstructor(access = AccessLevel.PACKAGE)
|
||||
protected class NamedRevBlob {
|
||||
|
||||
private final String name;
|
||||
private final RevBlob revBlob;
|
||||
|
||||
/**
|
||||
* Converts the blob to a String.
|
||||
*
|
||||
* @return a string
|
||||
* @throws IOException of there was an error reading the blob
|
||||
*/
|
||||
String blobAsString() throws IOException {
|
||||
return new String(repository.open(revBlob.getId(), Constants.OBJ_BLOB).getBytes());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ class KeyRemover {
|
|||
* @param removed the boolean to update
|
||||
* @return a Consumer
|
||||
*/
|
||||
private static Consumer<GitTreeReader.NamedRevBlob> flagIfFound(final String key, final AtomicBoolean removed) {
|
||||
private static Consumer<NamedRevBlob> flagIfFound(final String key, final AtomicBoolean removed) {
|
||||
return nvb -> {
|
||||
if (nvb.getName().equals(key)) {
|
||||
removed.set(true);
|
||||
|
@ -64,7 +64,7 @@ class KeyRemover {
|
|||
* @param key the key to match
|
||||
* @return a Predicate
|
||||
*/
|
||||
private static Predicate<GitTreeReader.NamedRevBlob> isNotKey(final String key) {
|
||||
private static Predicate<NamedRevBlob> isNotKey(final String key) {
|
||||
return item -> !item.getName().equals(key);
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,7 @@ class KeyRemover {
|
|||
* @param treeFormatter the tree formatter to add to
|
||||
* @return a Consumer
|
||||
*/
|
||||
private static Consumer<GitTreeReader.NamedRevBlob> addToTree(final TreeFormatter treeFormatter) {
|
||||
private static Consumer<NamedRevBlob> addToTree(final TreeFormatter treeFormatter) {
|
||||
return item -> treeFormatter.append(item.getName(), item.getRevBlob());
|
||||
}
|
||||
|
||||
|
|
57
src/main/java/net/kemitix/gitdb/impl/NamedRevBlob.java
Normal file
57
src/main/java/net/kemitix/gitdb/impl/NamedRevBlob.java
Normal file
|
@ -0,0 +1,57 @@
|
|||
/*
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2018 Paul Campbell
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies
|
||||
or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
|
||||
AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package net.kemitix.gitdb.impl;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.eclipse.jgit.lib.Constants;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
import org.eclipse.jgit.revwalk.RevBlob;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Represents the key/value pairs read from the tree.
|
||||
*
|
||||
* @author Paul Campbell (pcampbell@kemitix.net)
|
||||
*/
|
||||
@RequiredArgsConstructor(access = AccessLevel.PACKAGE)
|
||||
class NamedRevBlob {
|
||||
|
||||
@Getter
|
||||
private final String name;
|
||||
@Getter
|
||||
private final RevBlob revBlob;
|
||||
private final Repository repository;
|
||||
|
||||
/**
|
||||
* Converts the blob to a String.
|
||||
*
|
||||
* @return a string
|
||||
* @throws IOException of there was an error reading the blob
|
||||
*/
|
||||
String blobAsString() throws IOException {
|
||||
return new String(repository.open(revBlob.getId(), Constants.OBJ_BLOB).getBytes());
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue