org.mmbase.storage.database
Class OODatabaseStorage

java.lang.Object
  |
  +--org.mmbase.storage.database.Support2Storage
        |
        +--org.mmbase.storage.database.AbstractDatabaseStorage
              |
              +--org.mmbase.storage.database.SQL92DatabaseStorage
                    |
                    +--org.mmbase.storage.database.OODatabaseStorage
All Implemented Interfaces:
DatabaseStorage, MMJdbc2NodeInterface, Storage

public class OODatabaseStorage
extends SQL92DatabaseStorage
implements DatabaseStorage

OODatabaseStorage implements the DatabaseStorage interface and the MMJdbc2NodeInterface for an objectoriented database (i.e. Postgresql). It overrides the methods for storing and retrieving huge texts and bytefields, and the methods for determining database key (for the object 'number' field).

Since:
MMBase-1.6
Version:
$Id: OODatabaseStorage.java,v 1.2 2002/11/07 12:30:38 pierre Exp $
Author:
Pierre van Rooden

Fields inherited from class org.mmbase.storage.database.AbstractDatabaseStorage
mmb
 
Fields inherited from interface org.mmbase.storage.database.DatabaseStorage
KEY_FOREIGN, KEY_NONE, KEY_NOTNULL, KEY_PRIMARY, KEY_SECONDARY
 
Constructor Summary
OODatabaseStorage()
           
 
Method Summary
 int createKey(Transaction trans)
          Gives an unique number for a node to be inserted.
 byte[] getBytes(java.lang.String tableName, java.lang.String fieldname, int number)
          Get bytes from blob
 byte[] getDBByte(java.sql.ResultSet rs, int idx)
          is next function nessecary?
 java.lang.String getDBText(java.sql.ResultSet rs, int idx)
          is next function nessecary?
protected  java.lang.String getText(java.lang.String tableName, java.lang.String fieldname, int number)
          Get text from blob
protected  void prepare()
          Prepares the database layer.
 void setDBByte(int i, java.sql.PreparedStatement stmt, byte[] bytes)
          is next function nessecary?
 void setDBText(int i, java.sql.PreparedStatement stmt, java.lang.String body)
          Set text array in database
 
Methods inherited from class org.mmbase.storage.database.SQL92DatabaseStorage
addField, applyCreateScheme, changeField, commit, commitToTable, create, created, created, createObjectStorage, createSQL, delete, deleteFromTable, deleteSQL, drop, dropSQL, getBytes, getFieldsOrderCreate, getNode, getNodeType, getParentBuilder, getParentTableName, getText, init, insert, insertIntoTable, insertSQL, isAllowedParentBuilder, isParentField, loadExistingTables, loadFieldFromTable, loadSupportInformation, readBytesFromFile, removeField, selectSQL, setValuePreparedStatement, size, size, supportsExtendedTables, supportsRollback, updateSQL, updateStorage, writeBytesToFile
 
Methods inherited from class org.mmbase.storage.database.AbstractDatabaseStorage
applyForeignKeyScheme, applyKeyScheme, applyNotNullScheme, applyPrimaryKeyScheme, applyScheme, commit, constructFieldDefinition, constructFieldDefinition, create, createDatabaseTransaction, createDatabaseTransaction, createKey, createObjectStorage, createSQL, createTransaction, delete, deployDatabaseDocument, getBinaryFilePath, getCreateExtendedScheme, getCreateScheme, getFieldNameMap, getForeignKeyScheme, getFullTableName, getJDBC, getKeyScheme, getMaxDropSize, getNode, getNodeType, getNotNullScheme, getNumberString, getPrimaryKeyScheme, getStoreBinaryAsFile, getTypeMap, insert, mapToMMBaseFieldName, mapToTableFieldName, matchType, registerChanged, registerParentBuilder, selectSQL, selectSQL, selectSQL, setBinaryFilePath, setCreateExtendedScheme, setCreateScheme, setFieldNameMap, setForeignKeyScheme, setKeyScheme, setMaxDropSize, setNotNullScheme, setPrimaryKeyScheme, setStoreBinaryAsFile, setTypeMap
 
Methods inherited from class org.mmbase.storage.database.Support2Storage
commit, createObjectTable, decodeDBnodeField, decodeDBnodeField, getAllowedField, getConnection, getDBKey, getDisallowedField, getMMNodeSearch2SQL, getOTypeString, getOwnerString, getShortedByte, getShortedText, insert, removeNode, updateTable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.mmbase.storage.database.DatabaseStorage
deployDatabaseDocument, getBinaryFilePath, getCreateExtendedScheme, getCreateScheme, getFieldNameMap, getForeignKeyScheme, getJDBC, getKeyScheme, getMaxDropSize, getNotNullScheme, getPrimaryKeyScheme, getStoreBinaryAsFile, getTypeMap, init, loadFieldFromTable, mapToMMBaseFieldName, mapToTableFieldName, registerChanged, setBinaryFilePath, setCreateExtendedScheme, setCreateScheme, setFieldNameMap, setForeignKeyScheme, setKeyScheme, setMaxDropSize, setNotNullScheme, setPrimaryKeyScheme, setStoreBinaryAsFile, setTypeMap, setValuePreparedStatement, supportsExtendedTables
 
Methods inherited from interface org.mmbase.storage.Storage
addField, changeField, commit, commit, create, create, created, createKey, createObjectStorage, createObjectStorage, createTransaction, delete, delete, drop, getBytes, getNode, getNode, getNodeType, getNodeType, getText, insert, insert, isAllowedParentBuilder, registerParentBuilder, removeField, size, supportsRollback, updateStorage
 

Constructor Detail

OODatabaseStorage

public OODatabaseStorage()
Method Detail

getText

protected java.lang.String getText(java.lang.String tableName,
                                   java.lang.String fieldname,
                                   int number)
Get text from blob
Overrides:
getText in class SQL92DatabaseStorage

getBytes

public byte[] getBytes(java.lang.String tableName,
                       java.lang.String fieldname,
                       int number)
Get bytes from blob
Overrides:
getBytes in class SQL92DatabaseStorage

prepare

protected void prepare()
Description copied from class: SQL92DatabaseStorage
Prepares the database layer. Override this method if you need to make preparations for your database.
Overrides:
prepare in class SQL92DatabaseStorage

createKey

public int createKey(Transaction trans)
              throws StorageException
Gives an unique number for a node to be inserted. This method will work with multiple mmbases
Specified by:
createKey in interface Storage
Overrides:
createKey in class AbstractDatabaseStorage
Parameters:
trans - the transaction to use for obtaining the key
Returns:
unique number
Throws:
StorageException - if an error occurred while obtaining the key

getDBByte

public byte[] getDBByte(java.sql.ResultSet rs,
                        int idx)
is next function nessecary?
Overrides:
getDBByte in class Support2Storage

setDBByte

public void setDBByte(int i,
                      java.sql.PreparedStatement stmt,
                      byte[] bytes)
is next function nessecary?
Overrides:
setDBByte in class AbstractDatabaseStorage

getDBText

public java.lang.String getDBText(java.sql.ResultSet rs,
                                  int idx)
is next function nessecary?
Overrides:
getDBText in class Support2Storage

setDBText

public void setDBText(int i,
                      java.sql.PreparedStatement stmt,
                      java.lang.String body)
Set text array in database
Overrides:
setDBText in class AbstractDatabaseStorage


MMBase build 1.6.5.20030923