private class DfsInserter.StreamLoader extends ObjectLoader
ObjectLoader.Filter, ObjectLoader.SmallObject
Modifier and Type | Field and Description |
---|---|
private ObjectId |
id |
private long |
pos |
private long |
size |
private DfsStreamKey |
srcPack |
private int |
type |
Constructor and Description |
---|
StreamLoader(ObjectId id,
int type,
long sz,
DfsStreamKey key,
long pos) |
Modifier and Type | Method and Description |
---|---|
byte[] |
getCachedBytes()
Obtain a reference to the (possibly cached) bytes of this object.
|
long |
getSize()
Get size of object in bytes
|
int |
getType()
Get Git in pack object type
|
boolean |
isLarge()
Whether this object is too large to obtain as a byte array.
|
ObjectStream |
openStream()
Obtain an input stream to read this object's data.
|
copyTo, getBytes, getBytes, getCachedBytes
private final ObjectId id
private final int type
private final long size
private final DfsStreamKey srcPack
private final long pos
StreamLoader(ObjectId id, int type, long sz, DfsStreamKey key, long pos)
public ObjectStream openStream() throws java.io.IOException
ObjectLoader
openStream
in class ObjectLoader
MissingObjectException
- the object no longer exists.java.io.IOException
- the object store cannot be accessed.public int getType()
ObjectLoader
getType
in class ObjectLoader
Constants
.public long getSize()
ObjectLoader
getSize
in class ObjectLoader
public boolean isLarge()
ObjectLoader
isLarge
in class ObjectLoader
ObjectLoader.openStream()
to prevent overflowing the JVM heap.public byte[] getCachedBytes() throws LargeObjectException
ObjectLoader
This method offers direct access to the internal caches, potentially saving on data copies between the internal cache and higher level code. Callers who receive this reference must not modify its contents. Changes (if made) will affect the cache but not the repository itself.
getCachedBytes
in class ObjectLoader
LargeObjectException
- if the object won't fit into a byte array, because
ObjectLoader.isLarge()
returns true. Callers should use
ObjectLoader.openStream()
instead to access the contents.