Add ObjectReader.Filter, like in ObjectInserter

Change-Id: If34ad8185dc8192435e622995fdca598b86add7e
This commit is contained in:
Dave Borowitz 2016-04-25 13:28:43 -04:00
parent 29e83d44ff
commit 8a26d0577f
1 changed files with 98 additions and 0 deletions

View File

@ -431,4 +431,102 @@ public BitmapIndex getBitmapIndex() throws IOException {
*/
@Override
public abstract void close();
/**
* Wraps a delegate ObjectReader.
*
* @since 4.4
*/
public static abstract class Filter extends ObjectReader {
/**
* @return delegate ObjectReader to handle all processing.
* @since 4.4
*/
protected abstract ObjectReader delegate();
@Override
public ObjectReader newReader() {
return delegate().newReader();
}
@Override
public AbbreviatedObjectId abbreviate(AnyObjectId objectId)
throws IOException {
return delegate().abbreviate(objectId);
}
@Override
public AbbreviatedObjectId abbreviate(AnyObjectId objectId, int len)
throws IOException {
return delegate().abbreviate(objectId, len);
}
@Override
public Collection<ObjectId> resolve(AbbreviatedObjectId id)
throws IOException {
return delegate().resolve(id);
}
@Override
public boolean has(AnyObjectId objectId) throws IOException {
return delegate().has(objectId);
}
@Override
public boolean has(AnyObjectId objectId, int typeHint) throws IOException {
return delegate().has(objectId, typeHint);
}
@Override
public ObjectLoader open(AnyObjectId objectId)
throws MissingObjectException, IOException {
return delegate().open(objectId);
}
@Override
public ObjectLoader open(AnyObjectId objectId, int typeHint)
throws MissingObjectException, IncorrectObjectTypeException,
IOException {
return delegate().open(objectId, typeHint);
}
@Override
public Set<ObjectId> getShallowCommits() throws IOException {
return delegate().getShallowCommits();
}
@Override
public <T extends ObjectId> AsyncObjectLoaderQueue<T> open(
Iterable<T> objectIds, boolean reportMissing) {
return delegate().open(objectIds, reportMissing);
}
@Override
public long getObjectSize(AnyObjectId objectId, int typeHint)
throws MissingObjectException, IncorrectObjectTypeException,
IOException {
return delegate().getObjectSize(objectId, typeHint);
}
@Override
public <T extends ObjectId> AsyncObjectSizeQueue<T> getObjectSize(
Iterable<T> objectIds, boolean reportMissing) {
return delegate().getObjectSize(objectIds, reportMissing);
}
@Override
public void setAvoidUnreachableObjects(boolean avoid) {
delegate().setAvoidUnreachableObjects(avoid);
}
@Override
public BitmapIndex getBitmapIndex() throws IOException {
return delegate().getBitmapIndex();
}
@Override
public void close() {
delegate().close();
}
}
}