org.firebirdsql.jdbc
Class FBCachedBlob

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

public class FBCachedBlob
extends java.lang.Object
implements FirebirdBlob, Synchronizable

This class represents a cached blob field.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.firebirdsql.jdbc.FirebirdBlob
FirebirdBlob.BlobInputStream, FirebirdBlob.BlobOutputStream
 
Constructor Summary
FBCachedBlob(byte[] data)
          Create an instance using the cached data.
 
Method Summary
 FirebirdBlob detach()
          Detach this blob.
 void free()
           
 java.io.InputStream getBinaryStream()
          Get contents of blob as binary stream.
 java.io.InputStream getBinaryStream(long pos, long length)
           
 byte[] getBytes(long pos, int length)
          Get part of the blob field.
 java.lang.Object getSynchronizationObject()
          Get synchronization object.
 boolean isSegmented()
          Check if blob is segmented.
 long length()
          Get the length of the cached blob field.
 long position(java.sql.Blob pattern, long start)
          Find the first entry of the specified pattern.
 long position(byte[] pattern, long start)
          Find the first entry of the specified pattern.
 java.io.OutputStream setBinaryStream(long pos)
          Set the contents of blob as binary stream.
 int setBytes(long l, byte[] abyte0)
          Set contents of the blob.
 int setBytes(long l, byte[] abyte0, int i, int j)
          Set the contents of blob.
 void truncate(long length)
          Truncate the blob to specified length.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FBCachedBlob

public FBCachedBlob(byte[] data)
Create an instance using the cached data.

Parameters:
data - array of bytes containing the cached data.
Method Detail

detach

public FirebirdBlob detach()
                    throws java.sql.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:
java.sql.SQLException - if Blob cannot be detached.

isSegmented

public boolean isSegmented()
                    throws java.sql.SQLException
Description copied from interface: FirebirdBlob
Check if blob is segmented. If Blob is segmented, you cannot use FirebirdBlob.BlobInputStream.seek(int) method.

Specified by:
isSegmented in interface FirebirdBlob
Returns:
true if this blob is segmented, otherwise false
Throws:
java.sql.SQLException

length

public long length()
            throws java.sql.SQLException
Get the length of the cached blob field.

Specified by:
length in interface java.sql.Blob
Returns:
length of the cached blob field or -1 if the field is null.
Throws:
java.sql.SQLException

getBytes

public byte[] getBytes(long pos,
                       int length)
                throws java.sql.SQLException
Get part of the blob field.

Specified by:
getBytes in interface java.sql.Blob
Parameters:
pos - starting position to copy.
length - amount of bytes to copy.
Throws:
java.sql.SQLException

position

public long position(byte[] pattern,
                     long start)
              throws java.sql.SQLException
Find the first entry of the specified pattern.

Specified by:
position in interface java.sql.Blob
Throws:
java.sql.SQLException - always, not yet implemented.

position

public long position(java.sql.Blob pattern,
                     long start)
              throws java.sql.SQLException
Find the first entry of the specified pattern.

Specified by:
position in interface java.sql.Blob
Throws:
java.sql.SQLException - always, not yet implemented.

getBinaryStream

public java.io.InputStream getBinaryStream()
                                    throws java.sql.SQLException
Get contents of blob as binary stream.

Specified by:
getBinaryStream in interface java.sql.Blob
Throws:
java.sql.SQLException

setBytes

public int setBytes(long l,
                    byte[] abyte0)
             throws java.sql.SQLException
Set contents of the blob.

Specified by:
setBytes in interface java.sql.Blob
Throws:
java.sql.SQLException - always, set methods are not relevant in cached state.

setBytes

public int setBytes(long l,
                    byte[] abyte0,
                    int i,
                    int j)
             throws java.sql.SQLException
Set the contents of blob.

Specified by:
setBytes in interface java.sql.Blob
Throws:
java.sql.SQLException - always, set methods are not relevant in cached state.

setBinaryStream

public java.io.OutputStream setBinaryStream(long pos)
                                     throws java.sql.SQLException
Set the contents of blob as binary stream.

Specified by:
setBinaryStream in interface java.sql.Blob
Specified by:
setBinaryStream in interface FirebirdBlob
Parameters:
pos - the position in the BLOB value at which to start writing; currently only position 0 is supported.
Returns:
a java.io.OutputStream object to which data can be written
Throws:
java.sql.SQLException - always, set methods are not relevant in cached state.

truncate

public void truncate(long length)
              throws java.sql.SQLException
Truncate the blob to specified length.

Specified by:
truncate in interface java.sql.Blob
Throws:
java.sql.SQLException - always, truncate is not relevant in cached state.

getSynchronizationObject

public final java.lang.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 java.sql.SQLException
Specified by:
free in interface java.sql.Blob
Throws:
java.sql.SQLException

getBinaryStream

public java.io.InputStream getBinaryStream(long pos,
                                           long length)
                                    throws java.sql.SQLException
Specified by:
getBinaryStream in interface java.sql.Blob
Throws:
java.sql.SQLException


Copyright © 2001-2019 Jaybird (Firebird JDBC/JCA) team. All rights reserved.