Class LargePackedWholeObject

    • Field Detail

      • type

        private final int type
      • size

        private final long size
      • objectOffset

        private final long objectOffset
      • headerLength

        private final int headerLength
      • pack

        private final Pack pack
    • Constructor Detail

      • LargePackedWholeObject

        LargePackedWholeObject​(int type,
                               long size,
                               long objectOffset,
                               int headerLength,
                               Pack pack,
                               FileObjectDatabase db)
    • Method Detail

      • getType

        public int getType()
        Get Git in pack object type
        Specified by:
        getType in class ObjectLoader
        Returns:
        Git in pack object type, see Constants.
      • getSize

        public long getSize()
        Get size of object in bytes
        Specified by:
        getSize in class ObjectLoader
        Returns:
        size of object in bytes
      • isLarge

        public boolean isLarge()
        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
        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,
                                       java.io.IOException
        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.
        java.io.IOException - the object store cannot be accessed.
      • getObjectId

        private ObjectId getObjectId()
                              throws java.io.IOException
        Throws:
        java.io.IOException