org.postgresql.jdbc
Class AbstractBlobClob

java.lang.Object
  extended by org.postgresql.jdbc.AbstractBlobClob
Direct Known Subclasses:
PgBlob, PgClob

public abstract class AbstractBlobClob
extends Object

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

Author:
Michael Barker

Field Summary
protected  BaseConnection conn
           
 
Constructor Summary
AbstractBlobClob(BaseConnection conn, long oid)
           
 
Method Summary
protected  void addSubLO(LargeObject subLO)
           
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)
           
protected  LargeObject getLo(boolean forWrite)
           
 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
Constructor Detail

AbstractBlobClob

public AbstractBlobClob(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.

Parameters:
len - maximum length
Throws:
SQLException - if operation fails

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
Returns:
position of the specified pattern
Throws:
SQLException - if something wrong happens

position

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

Parameters:
pattern - search pattern
start - start position
Returns:
position of given pattern
Throws:
SQLException - if something goes wrong

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 - if something goes wrong

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 - if something goes wrong

checkFreed

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

Throws:
SQLException - if LOB has been freed.

getLo

protected LargeObject getLo(boolean forWrite)
                     throws SQLException
Throws:
SQLException

addSubLO

protected void addSubLO(LargeObject subLO)


Copyright © 2015 PostgreSQL Global Development Group. All rights reserved.