Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.cayenne.util
Class MemoryBlob

    java.lang.Object
      org.apache.cayenne.util.MemoryBlob

All Implemented Interfaces:
  Blob

    public class MemoryBlob

extends Object
implements Blob

A Blob implementation that stores content in memory.

This implementation is based on jdbcBlob from HSQLDB (copyright HSQL Development Group).

Since:
  1.2
Author:
  Andrus Adamchik, based on HSQLDB jdbcBlob.

Constructor Summary
`MemoryBlob()`
`MemoryBlob(byte[] data)` Constructs a new MemoryBlob instance wrapping the given octet sequence.

Method Summary
`InputStream` | `getBinaryStream()` Retrieves the `BLOB` value designated by this `Blob` instance as a stream.
`byte[]` | `getBytes(long pos, int length)` Retrieves all or part of the `BLOB` value that this `Blob` object represents, as an array of bytes.
`long` | `length()` Returns the number of bytes in the `BLOB` value designated by this `Blob` object.
`long` | `position(Blob pattern, long start)` Retrieves the byte position in the `BLOB` value designated by this `Blob` object at which `pattern` begins.
`long` | `position(byte[] pattern, long start)` Retrieves the byte position at which the specified byte array `pattern` begins within the `BLOB` value that this `Blob` object represents.
`OutputStream` | `setBinaryStream(long pos)` Always throws an exception.
`int` | `setBytes(long pos, byte[] bytes)` Always throws an exception.
`int` | `setBytes(long pos, byte[] bytes, int offset, int len)` Always throws an exception.
`void` | `truncate(long len)` Truncates the `BLOB` value that this `Blob` object represents to be `len` bytes in length.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MemoryBlob

    public MemoryBlob()

### MemoryBlob

    public MemoryBlob(byte[] data)

  Constructs a new MemoryBlob instance wrapping the given octet sequence.

  Parameters:
    `data` - the octet sequence representing the Blob value
  Throws:
    `CayenneRuntimeException` - if the argument is null

Method Detail

### length

    public long length()
                throws SQLException

  Returns the number of bytes in the `BLOB` value designated by this `Blob` object.

  Specified by:
    `length` in interface `Blob`
  Returns:
    length of the `BLOB` in bytes
  Throws:
    `SQLException` - if there is an error accessing the length of the `BLOB`

### getBytes

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

  Retrieves all or part of the `BLOB` value that this `Blob` object represents, as an array of bytes. This `byte` array contains up to `length` consecutive bytes starting at position `pos`.

  The official specification is ambiguous in that it does not precisely indicate the policy to be observed when pos > this.length() - length. One policy would be to retrieve the octets from pos to this.length(). Another would be to throw an exception. This implementation observes the later policy.

  Specified by:
    `getBytes` in interface `Blob`
  Parameters:
    `pos` - the ordinal position of the first byte in the `BLOB` value to be extracted; the first byte is at position 1
    `length` - the number of consecutive bytes to be copied
  Returns:
    a byte array containing up to `length` consecutive bytes from the `BLOB` value designated by this `Blob` object, starting with the byte at position `pos`
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

### getBinaryStream

    public InputStream getBinaryStream()
                                throws SQLException

  Retrieves the `BLOB` value designated by this `Blob` instance as a stream.

  Specified by:
    `getBinaryStream` in interface `Blob`
  Returns:
    a stream containing the `BLOB` data
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

### position

    public long position(byte[] pattern,
                         long start)
                  throws SQLException

  Retrieves the byte position at which the specified byte array `pattern` begins within the `BLOB` value that this `Blob` object represents. The search for `pattern` begins at position `start`.

  Specified by:
    `position` in interface `Blob`
  Parameters:
    `pattern` - the byte array for which to search
    `start` - the position at which to begin searching; the first position is 1
  Returns:
    the position at which the pattern appears, else -1
  Throws:
    `SQLException` - if there is an error accessing the `BLOB`

### position

    public long position(Blob pattern,
                         long start)
                  throws SQLException

  Retrieves the byte position in the `BLOB` value designated by this `Blob` object at which `pattern` begins. The search begins at position `start`.

  Specified by:
    `position` in interface `Blob`
  Parameters:
    `pattern` - the `Blob` object designating the `BLOB` value for which to search
    `start` - the position in the `BLOB` value at which to begin searching; the first position is 1
  Returns:
    the position at which the pattern begins, else -1
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

### setBytes

    public int setBytes(long pos,
                        byte[] bytes)
                 throws SQLException

  Always throws an exception.

  Specified by:
    `setBytes` in interface `Blob`
  Throws:
    `SQLException`

### setBytes

    public int setBytes(long pos,
                        byte[] bytes,
                        int offset,
                        int len)
                 throws SQLException

  Always throws an exception.

  Specified by:
    `setBytes` in interface `Blob`
  Throws:
    `SQLException`

### setBinaryStream

    public OutputStream setBinaryStream(long pos)
                                 throws SQLException

  Always throws an exception.

  Specified by:
    `setBinaryStream` in interface `Blob`
  Throws:
    `SQLException`

### truncate

    public void truncate(long len)
                  throws SQLException

  Truncates the `BLOB` value that this `Blob` object represents to be `len` bytes in length.

  Specified by:
    `truncate` in interface `Blob`
  Parameters:
    `len` - the length, in bytes, to which the `BLOB` value that this `Blob` object represents should be truncated
  Throws:
    `SQLException` - if there is an error accessing the `BLOB` value

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2007 Apache Cayenne. All Rights Reserved.