org.postgresql.jdbc2
Class AbstractJdbc2BlobClob

java.lang.Object
  extended by org.postgresql.jdbc2.AbstractJdbc2BlobClob
Direct Known Subclasses:
AbstractJdbc2Blob, AbstractJdbc2Clob

public abstract class AbstractJdbc2BlobClob
extends Object

This class holds all of the methods common to both Blobs and Clobs.

Author:
Michael Barker

Field Summary
protected  BaseConnection conn
           
protected  LargeObject lo
           
 
Constructor Summary
AbstractJdbc2BlobClob(BaseConnection conn, long oid)
           
 
Method Summary
protected  void assertPosition(long pos)
          Throws an exception if the pos value exceeds the max value by which the large object API can index.
protected  void assertPosition(long pos, long len)
          Throws an exception if the pos value exceeds the max value by which the large object API can index.
protected  void checkFreed()
          Checks that this LOB hasn't been free()d already.
 void free()
           
 InputStream getBinaryStream()
           
 byte[] getBytes(long pos, int length)
           
 long length()
           
 long position(Blob pattern, long start)
          This is simply passing the byte value of the pattern Blob
 long position(byte[] pattern, long start)
          Iterate over the buffer looking for the specified pattern
 OutputStream setBinaryStream(long pos)
           
 void truncate(long len)
          For Blobs this should be in bytes while for Clobs it should be in characters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

conn

protected BaseConnection conn

lo

protected LargeObject lo
Constructor Detail

AbstractJdbc2BlobClob

public AbstractJdbc2BlobClob(BaseConnection conn,
                             long oid)
                      throws SQLException
Throws:
SQLException
Method Detail

free

public void free()
          throws SQLException
Throws:
SQLException

truncate

public void truncate(long len)
              throws SQLException
For Blobs this should be in bytes while for Clobs it should be in characters. Since we really haven't figured out how to handle character sets for Clobs the current implementation uses bytes for both Blobs and Clobs.

Throws:
SQLException

length

public long length()
            throws SQLException
Throws:
SQLException

getBytes

public byte[] getBytes(long pos,
                       int length)
                throws SQLException
Throws:
SQLException

getBinaryStream

public InputStream getBinaryStream()
                            throws SQLException
Throws:
SQLException

setBinaryStream

public OutputStream setBinaryStream(long pos)
                             throws SQLException
Throws:
SQLException

position

public long position(byte[] pattern,
                     long start)
              throws SQLException
Iterate over the buffer looking for the specified pattern

Parameters:
pattern - A pattern of bytes to search the blob for.
start - The position to start reading from.
Throws:
SQLException

position

public long position(Blob pattern,
                     long start)
              throws SQLException
This is simply passing the byte value of the pattern Blob

Throws:
SQLException

assertPosition

protected void assertPosition(long pos)
                       throws SQLException
Throws an exception if the pos value exceeds the max value by which the large object API can index.

Parameters:
pos - Position to write at.
Throws:
SQLException

assertPosition

protected void assertPosition(long pos,
                              long len)
                       throws SQLException
Throws an exception if the pos value exceeds the max value by which the large object API can index.

Parameters:
pos - Position to write at.
len - number of bytes to write.
Throws:
SQLException

checkFreed

protected void checkFreed()
                   throws SQLException
Checks that this LOB hasn't been free()d already.

Throws:
SQLException - if LOB has been freed.


Copyright © 2013. All Rights Reserved.