Package org.eclipse.jgit.api
Class ApplyCommand.StreamLoader
java.lang.Object
org.eclipse.jgit.lib.ObjectLoader
org.eclipse.jgit.api.ApplyCommand.StreamLoader
- Enclosing class:
- ApplyCommand
We write the patch result to a
TemporaryBuffer
and then use
DirCacheCheckout
.getContent() to run the result through the CR-LF
and smudge filters. DirCacheCheckout needs an ObjectLoader, not a
TemporaryBuffer, so this class bridges between the two, making any Stream
provided by a ApplyCommand.StreamSupplier
look like an ordinary git blob to
DirCacheCheckout.-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jgit.lib.ObjectLoader
ObjectLoader.Filter, ObjectLoader.SmallObject
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbyte[]
Obtain a reference to the (possibly cached) bytes of this object.long
getSize()
Get size of object in bytesint
getType()
Get Git in pack object typeboolean
isLarge()
Whether this object is too large to obtain as a byte array.Obtain an input stream to read this object's data.Methods inherited from class org.eclipse.jgit.lib.ObjectLoader
copyTo, getBytes, getBytes, getCachedBytes
-
Field Details
-
data
-
size
private long size
-
-
Constructor Details
-
StreamLoader
StreamLoader(ApplyCommand.StreamSupplier data, long length)
-
-
Method Details
-
getType
public int getType()Description copied from class:ObjectLoader
Get Git in pack object type- Specified by:
getType
in classObjectLoader
- Returns:
- Git in pack object type, see
Constants
.
-
getSize
public long getSize()Description copied from class:ObjectLoader
Get size of object in bytes- Specified by:
getSize
in classObjectLoader
- Returns:
- size of object in bytes
-
isLarge
public boolean isLarge()Description copied from class:ObjectLoader
Whether this object is too large to obtain as a byte array.- Overrides:
isLarge
in classObjectLoader
- Returns:
- true if this object is too large to obtain as a byte array.
Objects over a certain threshold should be accessed only by their
ObjectLoader.openStream()
to prevent overflowing the JVM heap.
-
getCachedBytes
Description copied from class:ObjectLoader
Obtain a reference to the (possibly cached) bytes of this object.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.
- Specified by:
getCachedBytes
in classObjectLoader
- Returns:
- the cached bytes of this object. Do not modify it.
- Throws:
LargeObjectException
- if the object won't fit into a byte array, becauseObjectLoader.isLarge()
returns true. Callers should useObjectLoader.openStream()
instead to access the contents.
-
openStream
Description copied from class:ObjectLoader
Obtain an input stream to read this object's data.- Specified by:
openStream
in classObjectLoader
- Returns:
- a stream of this object's data. Caller must close the stream when through with it. The returned stream is buffered with a reasonable buffer size.
- Throws:
MissingObjectException
- the object no longer exists.IOException
- the object store cannot be accessed.
-