org.h2.mvstore.db

## Class LobStorageMap

- java.lang.Object
- - org.h2.mvstore.db.LobStorageMap

All Implemented Interfaces:
  LobStorageInterface

    public class LobStorageMap
    extends java.lang.Object
    implements LobStorageInterface

This class stores LOB objects in the database, in maps. This is the back-end i.e. the server side of the LOB storage.

### Constructor Summary

Constructors
Constructor and Description
`LobStorageMap(Database database)`

### Method Summary

Methods
`ValueLobDb` `copyLob(ValueLobDb old, int tableId, long length)` Copy a lob.
`Value` `createBlob(java.io.InputStream in, long maxLength)` Create a BLOB object.
`Value` `createClob(java.io.Reader reader, long maxLength)` Create a CLOB object.
`java.io.InputStream` `getInputStream(ValueLobDb lob, byte[] hmac, long byteCount)` Get the input stream for the given lob.
`void` `init()` Initialize the lob storage.
`boolean` `isReadOnly()` Whether the storage is read-only
`void` `removeAllForTable(int tableId)` Remove all LOBs for this table.
`void` `removeLob(ValueLobDb lob)` Delete a LOB (from the database, if it is stored there).

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### LobStorageMap

    public LobStorageMap(Database database)

### Method Detail

#### init

    public void init()

Description copied from interface: `LobStorageInterface`
Initialize the lob storage.

Specified by:
  `init` in interface `LobStorageInterface`

#### createBlob

    public Value createBlob(java.io.InputStream in,
                   long maxLength)

Description copied from interface: `LobStorageInterface`
Create a BLOB object.

Specified by:
  `createBlob` in interface `LobStorageInterface`
Parameters:
  `in` - the input stream
  `maxLength` - the maximum length (-1 if not known)
Returns:
  the LOB

#### createClob

    public Value createClob(java.io.Reader reader,
                   long maxLength)

Description copied from interface: `LobStorageInterface`
Create a CLOB object.

Specified by:
  `createClob` in interface `LobStorageInterface`
Parameters:
  `reader` - the reader
  `maxLength` - the maximum length (-1 if not known)
Returns:
  the LOB

#### isReadOnly

    public boolean isReadOnly()

Description copied from interface: `LobStorageInterface`
Whether the storage is read-only

Specified by:
  `isReadOnly` in interface `LobStorageInterface`
Returns:
  true if yes

#### copyLob

    public ValueLobDb copyLob(ValueLobDb old,
                     int tableId,
                     long length)

Description copied from interface: `LobStorageInterface`
Copy a lob.

Specified by:
  `copyLob` in interface `LobStorageInterface`
Parameters:
  `old` - the old lob
  `tableId` - the new table id
  `length` - the length
Returns:
  the new lob

#### getInputStream

    public java.io.InputStream getInputStream(ValueLobDb lob,
                                     byte[] hmac,
                                     long byteCount)
                                       throws java.io.IOException

Description copied from interface: `LobStorageInterface`
Get the input stream for the given lob.

Specified by:
  `getInputStream` in interface `LobStorageInterface`
Parameters:
  `lob` - the lob id
  `hmac` - the message authentication code (for remote input streams)
  `byteCount` - the number of bytes to read, or -1 if not known
Returns:
  the stream
Throws:
  `java.io.IOException`

#### removeAllForTable

    public void removeAllForTable(int tableId)

Description copied from interface: `LobStorageInterface`
Remove all LOBs for this table.

Specified by:
  `removeAllForTable` in interface `LobStorageInterface`
Parameters:
  `tableId` - the table id

#### removeLob

    public void removeLob(ValueLobDb lob)

Description copied from interface: `LobStorageInterface`
Delete a LOB (from the database, if it is stored there).

Specified by:
  `removeLob` in interface `LobStorageInterface`
Parameters:
  `lob` - the lob