Class ApplyCommand.StreamLoader

java.lang.Object
org.eclipse.jgit.lib.ObjectLoader
org.eclipse.jgit.api.ApplyCommand.StreamLoader
Enclosing class:
ApplyCommand

private static class ApplyCommand.StreamLoader extends ObjectLoader
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.
  • Field Details

  • Constructor Details

  • Method Details

    • getType

      public int getType()
      Description copied from class: ObjectLoader
      Get Git in pack object type
      Specified by:
      getType in class ObjectLoader
      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 class ObjectLoader
      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 class ObjectLoader
      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

      public byte[] getCachedBytes() throws LargeObjectException
      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 class ObjectLoader
      Returns:
      the cached bytes of this object. Do not modify it.
      Throws:
      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.
    • openStream

      public ObjectStream openStream() throws MissingObjectException, IOException
      Description copied from class: ObjectLoader
      Obtain an input stream to read this object's data.
      Specified by:
      openStream in class ObjectLoader
      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.