Class FBCachedBlob

java.lang.Object
org.firebirdsql.jdbc.FBCachedBlob
All Implemented Interfaces:
Blob, FirebirdBlob, Synchronizable

public final class FBCachedBlob extends Object implements FirebirdBlob, Synchronizable
This class represents a cached blob field.
  • Constructor Details

    • FBCachedBlob

      public FBCachedBlob(byte[] data)
      Create an instance using the cached data.
      Parameters:
      data - array of bytes containing the cached data.
  • Method Details

    • detach

      public FirebirdBlob detach() throws SQLException
      Description copied from interface: FirebirdBlob
      Detach this blob. This method creates new instance of the same blob database object that is not under result set control. When result set is closed, all associated resources are also released, including open blob streams. This method creates an new instance of blob object with the same blob ID that can be used even when result set is closed.

      Note, detached blob will not remember the stream position of this object. This means that you cannot start reading data from the blob, then detach it, and then continue reading. Reading from detached blob will begin at the blob start.

      Specified by:
      detach in interface FirebirdBlob
      Returns:
      instance of FirebirdBlob that is not under result set control.
      Throws:
      SQLException - if Blob cannot be detached.
    • isSegmented

      public boolean isSegmented() throws SQLException
      Check if blob is segmented. If Blob is segmented, you cannot use FirebirdBlob.BlobInputStream.seek(int) method.

      An instance of FBCachedBlob returns false always.

      Specified by:
      isSegmented in interface FirebirdBlob
      Returns:
      true if this blob is segmented, otherwise false
      Throws:
      SQLException
    • length

      public long length() throws SQLException
      Get the length of the cached blob field.
      Specified by:
      length in interface Blob
      Returns:
      length of the cached blob field or -1 if the field is null.
      Throws:
      SQLException
    • getBytes

      public byte[] getBytes(long pos, int length) throws SQLException
      Specified by:
      getBytes in interface Blob
      Throws:
      SQLException
    • position

      public long position(byte[] pattern, long start) throws SQLException
      Find the first entry of the specified pattern.
      Specified by:
      position in interface Blob
      Throws:
      SQLException - always, not yet implemented.
    • position

      public long position(Blob pattern, long start) throws SQLException
      Find the first entry of the specified pattern.
      Specified by:
      position in interface Blob
      Throws:
      SQLException - always, not yet implemented.
    • getBinaryStream

      public InputStream getBinaryStream() throws SQLException
      Specified by:
      getBinaryStream in interface Blob
      Throws:
      SQLException
    • getBinaryStream

      public InputStream getBinaryStream(long pos, long length) throws SQLException
      Specified by:
      getBinaryStream in interface Blob
      Throws:
      SQLException
    • setBytes

      public int setBytes(long pos, byte[] bytes) throws SQLException
      Set contents of the blob.
      Specified by:
      setBytes in interface Blob
      Throws:
      SQLException - always, set methods are not relevant in cached state.
    • setBytes

      public int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException
      Set the contents of blob.
      Specified by:
      setBytes in interface Blob
      Throws:
      SQLException - always, set methods are not relevant in cached state.
    • setBinaryStream

      public OutputStream setBinaryStream(long pos) throws SQLException
      Set the contents of blob as binary stream.
      Specified by:
      setBinaryStream in interface Blob
      Throws:
      SQLException - always, set methods are not relevant in cached state.
    • truncate

      public void truncate(long length) throws SQLException
      Truncate the blob to specified length.
      Specified by:
      truncate in interface Blob
      Throws:
      SQLException - always, truncate is not relevant in cached state.
    • getSynchronizationObject

      public final Object getSynchronizationObject()
      Description copied from interface: Synchronizable
      Get synchronization object.
      Specified by:
      getSynchronizationObject in interface Synchronizable
      Returns:
      object, cannot be null.
    • free

      public void free() throws SQLException
      Specified by:
      free in interface Blob
      Throws:
      SQLException