org.neodatis.odb.core.layers.layer3
Interface IStorageEngine

All Known Subinterfaces:
IServerStorageEngine
All Known Implementing Classes:
AbstractStorageEngine, AbstractStorageEngineReader, ClientStorageEngine, LocalStorageEngine, SameVmClientEngine, ServerStorageEngine, StorageEngineAdapter

public interface IStorageEngine

The interface of all that a StorageEngine (Main concept in ODB) must do.

Author:
osmadja

Method Summary
 ClassInfoList addClasses(ClassInfoList classInfoList)
           
 void addCommitListener(ICommitListener commitListener)
           
 void addDeleteTriggerFor(java.lang.String className, DeleteTrigger trigger)
           
 void addIndexOn(java.lang.String className, java.lang.String name, java.lang.String[] indexFields, boolean verbose, boolean acceptMultipleValuesForSameKey)
           
 void addInsertTriggerFor(java.lang.String className, InsertTrigger trigger)
           
 void addOidTriggerFor(java.lang.String className, OIDTrigger trigger)
           
 void addSelectTriggerFor(java.lang.String className, SelectTrigger trigger)
           
 void addSession(ISession session, boolean readMetamodel)
           
 void addUpdateTriggerFor(java.lang.String className, UpdateTrigger trigger)
           
 ISession buildDefaultSession()
           
 IObjectIntrospector buildObjectIntrospector()
           
 IObjectReader buildObjectReader()
           
 IObjectWriter buildObjectWriter()
           
 ITriggerManager buildTriggerManager()
           
 CheckMetaModelResult checkMetaModelCompatibility(java.util.Map<java.lang.String,ClassInfo> currentCIs)
          Receive the current class info (loaded from current java classes present on classpath and check against the persisted meta model
 void close()
           
 void commit()
           
 long count(CriteriaQuery query)
           
 CriteriaQuery criteriaQuery(java.lang.Class clazz)
           
 CriteriaQuery criteriaQuery(java.lang.Class clazz, ICriterion criterion)
           
 void defragmentTo(java.lang.String newFileName)
           
 OID delete(java.lang.Object object, boolean cascade)
          Actually deletes an object database
 void deleteIndex(java.lang.String className, java.lang.String indexName, boolean verbose)
           
 void deleteObjectWithOid(OID oid, boolean cascade)
           
 void disconnect(java.lang.Object object)
          Used to disconnect the object from the current session.
 java.util.List<FullIDInfo> getAllObjectIdInfos(java.lang.String objectType, boolean displayObjects)
           
 java.util.List<java.lang.Long> getAllObjectIds()
           
 IBaseIdentification getBaseIdentification()
           
 IOdbList<ICommitListener> getCommitListeners()
           
 OID getCurrentIdBlockMaxOid()
           
 int getCurrentIdBlockNumber()
           
 long getCurrentIdBlockPosition()
           
 TransactionId getCurrentTransactionId()
           
 DatabaseId getDatabaseId()
           
 OID getMaxOid()
           
 NonNativeObjectInfo getMetaObjectFromOid(OID oid)
           
 java.lang.Object getObjectFromOid(OID oid)
           
 OID getObjectId(java.lang.Object object, boolean throwExceptionIfDoesNotExist)
           
 ObjectInfoHeader getObjectInfoHeaderFromOid(OID oid, boolean useCache)
           
<T> Objects<T>
getObjectInfos(IQuery query, boolean inMemory, int startIndex, int endIndex, boolean returnOjects)
          Return Meta representation of objects
 IObjectIntrospector getObjectIntrospector()
           
 IObjectReader getObjectReader()
           
<T> Objects<T>
getObjects(java.lang.Class clazz, boolean inMemory, int startIndex, int endIndex)
           
<T> Objects<T>
getObjects(IQuery query, boolean inMemory, int startIndex, int endIndex)
           
 IObjectWriter getObjectWriter()
           
 IRefactorManager getRefactorManager()
          Returns the object used to refactor the database
 ISession getSession(boolean throwExceptionIfDoesNotExist)
           
 ITriggerManager getTriggerManager()
           
 Values getValues(IValuesQuery query, int startIndex, int endIndex)
           
 int getVersion()
           
 boolean isClosed()
           
 boolean isLocal()
          Used to know if the storage engine is executed in local mode (embedded mode) or client server mode
 void rebuildIndex(java.lang.String className, java.lang.String indexName, boolean verbose)
           
 void reconnect(java.lang.Object object)
          Used to reconnect an object to the current session
 void resetCommitListeners()
           
 void rollback()
           
 void setCurrentIdBlockInfos(long currentBlockPosition, int currentBlockNumber, OID maxId)
           
 void setCurrentTransactionId(TransactionId transactionId)
           
 void setDatabaseId(DatabaseId databaseId)
           
 void setLastODBCloseStatus(boolean lastCloseStatus)
           
 void setMetaModel(MetaModel metaModel)
           
 void setNbClasses(long nbClasses)
           
 void setVersion(int version)
           
 OID store(java.lang.Object object)
          Store an object in an database.
 OID store(OID oid, java.lang.Object object)
           
 OID updateObject(NonNativeObjectInfo nnoi, boolean forceUpdate)
          Updates an object already transformed into meta representation!
 OID writeObjectInfo(OID oid, NonNativeObjectInfo nnoi, long position, boolean updatePointers)
          Write an object already transformed into meta representation!
 

Method Detail

store

OID store(OID oid,
          java.lang.Object object)

store

OID store(java.lang.Object object)
Store an object in an database. To detect if object must be updated or insert, we use the cache. To update an object, it must be first selected from the database. When an object is to be stored, if it exist in the cache, then it will be updated, else it will be inserted as a new object. If the object is null, the cache will be used to check if the meta representation is in the cache


deleteObjectWithOid

void deleteObjectWithOid(OID oid,
                         boolean cascade)

delete

OID delete(java.lang.Object object,
           boolean cascade)
Actually deletes an object database

Parameters:
object -
cascade -

close

void close()

count

long count(CriteriaQuery query)

getValues

Values getValues(IValuesQuery query,
                 int startIndex,
                 int endIndex)

getObjects

<T> Objects<T> getObjects(IQuery query,
                          boolean inMemory,
                          int startIndex,
                          int endIndex)

getObjects

<T> Objects<T> getObjects(java.lang.Class clazz,
                          boolean inMemory,
                          int startIndex,
                          int endIndex)

getObjectInfos

<T> Objects<T> getObjectInfos(IQuery query,
                              boolean inMemory,
                              int startIndex,
                              int endIndex,
                              boolean returnOjects)
Return Meta representation of objects

Parameters:
query - The query to select objects
inMemory - To indicate if object must be all loaded in memory
startIndex - First object index
endIndex - Last object index
returnOjects - To indicate if object instances must be created
Returns:
The list of objects @

getObjectReader

IObjectReader getObjectReader()

getObjectWriter

IObjectWriter getObjectWriter()

getTriggerManager

ITriggerManager getTriggerManager()

getSession

ISession getSession(boolean throwExceptionIfDoesNotExist)

buildDefaultSession

ISession buildDefaultSession()

commit

void commit()

rollback

void rollback()

getObjectId

OID getObjectId(java.lang.Object object,
                boolean throwExceptionIfDoesNotExist)

getObjectFromOid

java.lang.Object getObjectFromOid(OID oid)

getMetaObjectFromOid

NonNativeObjectInfo getMetaObjectFromOid(OID oid)

getObjectInfoHeaderFromOid

ObjectInfoHeader getObjectInfoHeaderFromOid(OID oid,
                                            boolean useCache)

defragmentTo

void defragmentTo(java.lang.String newFileName)

getAllObjectIds

java.util.List<java.lang.Long> getAllObjectIds()

getAllObjectIdInfos

java.util.List<FullIDInfo> getAllObjectIdInfos(java.lang.String objectType,
                                               boolean displayObjects)

getCurrentIdBlockNumber

int getCurrentIdBlockNumber()
Returns:
Returns the currentIdBlockNumber.

getCurrentIdBlockPosition

long getCurrentIdBlockPosition()
Returns:
Returns the currentIdBlockPosition.

getCurrentIdBlockMaxOid

OID getCurrentIdBlockMaxOid()
Returns:
Returns the currentIdBlockMaxId.

getMaxOid

OID getMaxOid()

isClosed

boolean isClosed()

getVersion

int getVersion()

addUpdateTriggerFor

void addUpdateTriggerFor(java.lang.String className,
                         UpdateTrigger trigger)

addInsertTriggerFor

void addInsertTriggerFor(java.lang.String className,
                         InsertTrigger trigger)

addOidTriggerFor

void addOidTriggerFor(java.lang.String className,
                      OIDTrigger trigger)

addDeleteTriggerFor

void addDeleteTriggerFor(java.lang.String className,
                         DeleteTrigger trigger)

addSelectTriggerFor

void addSelectTriggerFor(java.lang.String className,
                         SelectTrigger trigger)

setVersion

void setVersion(int version)

setDatabaseId

void setDatabaseId(DatabaseId databaseId)

setNbClasses

void setNbClasses(long nbClasses)

setLastODBCloseStatus

void setLastODBCloseStatus(boolean lastCloseStatus)

setCurrentIdBlockInfos

void setCurrentIdBlockInfos(long currentBlockPosition,
                            int currentBlockNumber,
                            OID maxId)

setMetaModel

void setMetaModel(MetaModel metaModel)

getBaseIdentification

IBaseIdentification getBaseIdentification()

writeObjectInfo

OID writeObjectInfo(OID oid,
                    NonNativeObjectInfo nnoi,
                    long position,
                    boolean updatePointers)
Write an object already transformed into meta representation!

Parameters:
oid -
nnoi -
position -
updatePointers -
Returns:
te object position(or id (if <0, it is id)) @

updateObject

OID updateObject(NonNativeObjectInfo nnoi,
                 boolean forceUpdate)
Updates an object already transformed into meta representation!

Parameters:
nnoi - The Object Meta representation
forceUpdate -
Returns:
The OID of the update object @

addSession

void addSession(ISession session,
                boolean readMetamodel)

addIndexOn

void addIndexOn(java.lang.String className,
                java.lang.String name,
                java.lang.String[] indexFields,
                boolean verbose,
                boolean acceptMultipleValuesForSameKey)
Parameters:
className - The class name on which the index must be created
name - The name of the index
indexFields - The list of fields of the index
verbose - A boolean value to indicate of ODB must describe what it is doing @ @

addCommitListener

void addCommitListener(ICommitListener commitListener)

getCommitListeners

IOdbList<ICommitListener> getCommitListeners()

getRefactorManager

IRefactorManager getRefactorManager()
Returns the object used to refactor the database


resetCommitListeners

void resetCommitListeners()

isLocal

boolean isLocal()
Used to know if the storage engine is executed in local mode (embedded mode) or client server mode


addClasses

ClassInfoList addClasses(ClassInfoList classInfoList)

getDatabaseId

DatabaseId getDatabaseId()

getCurrentTransactionId

TransactionId getCurrentTransactionId()

setCurrentTransactionId

void setCurrentTransactionId(TransactionId transactionId)

reconnect

void reconnect(java.lang.Object object)
Used to reconnect an object to the current session


disconnect

void disconnect(java.lang.Object object)
Used to disconnect the object from the current session. The object is removed from the cache


rebuildIndex

void rebuildIndex(java.lang.String className,
                  java.lang.String indexName,
                  boolean verbose)
Parameters:
className -
indexName -
verbose -

deleteIndex

void deleteIndex(java.lang.String className,
                 java.lang.String indexName,
                 boolean verbose)
Parameters:
className -
indexName -
verbose -

checkMetaModelCompatibility

CheckMetaModelResult checkMetaModelCompatibility(java.util.Map<java.lang.String,ClassInfo> currentCIs)
Receive the current class info (loaded from current java classes present on classpath and check against the persisted meta model

Parameters:
currentCIs -

buildObjectIntrospector

IObjectIntrospector buildObjectIntrospector()

buildObjectWriter

IObjectWriter buildObjectWriter()

buildObjectReader

IObjectReader buildObjectReader()

buildTriggerManager

ITriggerManager buildTriggerManager()

getObjectIntrospector

IObjectIntrospector getObjectIntrospector()

criteriaQuery

CriteriaQuery criteriaQuery(java.lang.Class clazz,
                            ICriterion criterion)
Parameters:
clazz -
criterion -
Returns:

criteriaQuery

CriteriaQuery criteriaQuery(java.lang.Class clazz)
Parameters:
clazz -
Returns: