Package org.postgresql.jdbc

# Class AbstractBlobClob

java.lang.Object
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.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected BaseConnection`
  `conn`
  `protected final ResourceLock`
  `lock`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractBlobClob(BaseConnection conn, long oid)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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(byte[] pattern, long start)`
  Iterate over the buffer looking for the specified pattern.
  `long`
  `position(Blob pattern, long start)`
  This is simply passing the byte value of the pattern Blob.
  `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 Details

  - ### conn

    protected BaseConnection conn

  - ### lock

    protected final ResourceLock lock

- ## Constructor Details

  - ### AbstractBlobClob

    public AbstractBlobClob(BaseConnection conn, long oid) throws SQLException
    Throws:
      `SQLException`

- ## Method Details

  - ### 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)