org.neodatis.odb.impl.core.layers.layer3.engine
Class StorageEngineAdapter

java.lang.Object
  extended by org.neodatis.odb.impl.core.layers.layer3.engine.StorageEngineAdapter
All Implemented Interfaces:
IStorageEngine
Direct Known Subclasses:
ClientStorageEngine

public abstract class StorageEngineAdapter
extends java.lang.Object
implements IStorageEngine

An Adapter for IStorageEngine interface.

Author:
osmadja

Field Summary
protected  TransactionId currentTransactionId
          To keep track of current transaction Id
protected  boolean isClosed
           
protected  ITriggerManager triggerManager
          To manage triggers
 
Constructor Summary
StorageEngineAdapter()
           
 
Method Summary
 ClassInfo addClass(ClassInfo newClassInfo, boolean addDependentClasses)
           
 ClassInfoList addClasses(ClassInfoList classInfoList)
           
abstract  void addDeleteTrigger(java.lang.Class clazz, DeleteTrigger trigger)
           
 void addDeleteTriggerFor(java.lang.String className, DeleteTrigger trigger)
           
abstract  void addInsertTrigger(java.lang.Class clazz, InsertTrigger trigger)
           
 void addInsertTriggerFor(java.lang.String className, InsertTrigger trigger)
           
abstract  void addOidTrigger(java.lang.Class clazz, OIDTrigger trigger)
           
 void addOidTriggerFor(java.lang.String className, OIDTrigger trigger)
           
abstract  void addSelectTrigger(java.lang.Class clazz, SelectTrigger trigger)
           
 void addSelectTriggerFor(java.lang.String className, SelectTrigger trigger)
           
abstract  void addUpdateTrigger(java.lang.Class clazz, UpdateTrigger trigger)
           
 void addUpdateTriggerFor(java.lang.String className, UpdateTrigger trigger)
           
 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(java.lang.Class clazz)
           
 long count(java.lang.String fullClassName)
           
 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 deleteObjectWithOid(long oid)
           
 void disconnect(java.lang.Object object)
          Used to disconnect the object from the current session.
 MetaModel get2MetaModel()
           
 java.util.List<FullIDInfo> getAllObjectIdInfos(java.lang.String objectType, boolean displayObjects)
           
 java.util.List<java.lang.Long> getAllObjectIds()
           
 OID getCurrentIdBlockMaxOid()
           
 int getCurrentIdBlockNumber()
           
 long getCurrentIdBlockPosition()
           
 TransactionId getCurrentTransactionId()
           
 DatabaseId getDatabaseId()
           
 IFileSystemInterface getFsi()
           
 OID getMaxOid()
           
 java.lang.Object getObjectFromId(OID id)
           
 OID getObjectId(java.lang.Object object, boolean throwExceptionIfDoesNotExist)
           
<T> Objects<T>
getObjectInfos(IQuery query, boolean inMemory, int startIndex, int endIndex, boolean returnOjects)
          Return Meta representation of objects
<T> Objects<T>
getObjectInfos(java.lang.String fullClassName, IQuery query, boolean inMemory, int startIndex, int endIndex, boolean returnOjects)
           
 IObjectReader getObjectReader()
           
abstract
<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)
           
<T> Objects<T>
getObjects(java.lang.String fullClassName, IQuery query, boolean inMemory, int startIndex, int endIndex)
           
 IObjectWriter getObjectWriter()
           
 ISession getSession(boolean throwExceptionIfDoesNotExist)
           
 ITriggerManager getTriggerManager()
           
 int getVersion()
           
 OID internalDelete(ObjectInfoHeader header)
           
 boolean isClosed()
           
 long mainStoreObject(java.lang.Object object)
           
 ClassInfo persistClass(ClassInfo newClassInfo, int lastClassInfoIndex, boolean addClass, boolean addDependentClasses)
           
 void reconnect(java.lang.Object object)
          Used to reconnect an object to the current session
 void rollback()
           
 void setCurrentIdBlockInfos(long currentBlockPosition, int currentBlockNumber, OID maxId)
           
 void setCurrentTransactionId(TransactionId transactionId)
           
 void setDatabaseId(DatabaseId databaseId)
           
 void setDatabaseId(long[] databaseId)
           
 void setLastODBCloseStatus(boolean lastCloseStatus)
           
 void setMetaModel(MetaModel metaModel)
           
 void setNbClasses(long nbClasses)
           
 void setVersion(int version)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.neodatis.odb.core.layers.layer3.IStorageEngine
addCommitListener, addIndexOn, addSession, buildDefaultSession, buildObjectIntrospector, buildObjectReader, buildObjectWriter, buildTriggerManager, count, deleteIndex, deleteObjectWithOid, getBaseIdentification, getCommitListeners, getMetaObjectFromOid, getObjectFromOid, getObjectInfoHeaderFromOid, getObjectIntrospector, getRefactorManager, getValues, isLocal, rebuildIndex, resetCommitListeners, store, store, updateObject, writeObjectInfo
 

Field Detail

currentTransactionId

protected TransactionId currentTransactionId
To keep track of current transaction Id


triggerManager

protected ITriggerManager triggerManager
To manage triggers


isClosed

protected boolean isClosed
Constructor Detail

StorageEngineAdapter

public StorageEngineAdapter()
Method Detail

addClass

public ClassInfo addClass(ClassInfo newClassInfo,
                          boolean addDependentClasses)

addClasses

public ClassInfoList addClasses(ClassInfoList classInfoList)
Specified by:
addClasses in interface IStorageEngine

addDeleteTrigger

public abstract void addDeleteTrigger(java.lang.Class clazz,
                                      DeleteTrigger trigger)

addInsertTrigger

public abstract void addInsertTrigger(java.lang.Class clazz,
                                      InsertTrigger trigger)

addOidTrigger

public abstract void addOidTrigger(java.lang.Class clazz,
                                   OIDTrigger trigger)

addSelectTrigger

public abstract void addSelectTrigger(java.lang.Class clazz,
                                      SelectTrigger trigger)

addUpdateTrigger

public abstract void addUpdateTrigger(java.lang.Class clazz,
                                      UpdateTrigger trigger)

close

public void close()
Specified by:
close in interface IStorageEngine

commit

public void commit()
Specified by:
commit in interface IStorageEngine

count

public long count(java.lang.String fullClassName)

count

public long count(java.lang.Class clazz)
           throws java.lang.Exception
Throws:
java.lang.Exception

defragmentTo

public void defragmentTo(java.lang.String newFileName)
Specified by:
defragmentTo in interface IStorageEngine

delete

public OID delete(java.lang.Object object,
                  boolean cascade)
Description copied from interface: IStorageEngine
Actually deletes an object database

Specified by:
delete in interface IStorageEngine

internalDelete

public OID internalDelete(ObjectInfoHeader header)

deleteObjectWithOid

public void deleteObjectWithOid(long oid)
                         throws java.lang.Exception
Throws:
java.lang.Exception

getAllObjectIdInfos

public java.util.List<FullIDInfo> getAllObjectIdInfos(java.lang.String objectType,
                                                      boolean displayObjects)
Specified by:
getAllObjectIdInfos in interface IStorageEngine

getAllObjectIds

public java.util.List<java.lang.Long> getAllObjectIds()
Specified by:
getAllObjectIds in interface IStorageEngine

getCurrentIdBlockMaxOid

public OID getCurrentIdBlockMaxOid()
Specified by:
getCurrentIdBlockMaxOid in interface IStorageEngine
Returns:
Returns the currentIdBlockMaxId.

getCurrentIdBlockNumber

public int getCurrentIdBlockNumber()
Specified by:
getCurrentIdBlockNumber in interface IStorageEngine
Returns:
Returns the currentIdBlockNumber.

getCurrentIdBlockPosition

public long getCurrentIdBlockPosition()
Specified by:
getCurrentIdBlockPosition in interface IStorageEngine
Returns:
Returns the currentIdBlockPosition.

getFsi

public IFileSystemInterface getFsi()

getMaxOid

public OID getMaxOid()
Specified by:
getMaxOid in interface IStorageEngine

get2MetaModel

public MetaModel get2MetaModel()

getObjectFromId

public java.lang.Object getObjectFromId(OID id)
                                 throws java.lang.Exception
Throws:
java.lang.Exception

getObjectId

public OID getObjectId(java.lang.Object object,
                       boolean throwExceptionIfDoesNotExist)
Specified by:
getObjectId in interface IStorageEngine

getObjectInfos

public <T> Objects<T> getObjectInfos(java.lang.String fullClassName,
                                     IQuery query,
                                     boolean inMemory,
                                     int startIndex,
                                     int endIndex,
                                     boolean returnOjects)
                          throws java.lang.Exception
Throws:
java.lang.Exception

getObjectInfos

public <T> Objects<T> getObjectInfos(IQuery query,
                                     boolean inMemory,
                                     int startIndex,
                                     int endIndex,
                                     boolean returnOjects)
Description copied from interface: IStorageEngine
Return Meta representation of objects

Specified by:
getObjectInfos in interface IStorageEngine
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

public IObjectReader getObjectReader()
Specified by:
getObjectReader in interface IStorageEngine

getObjectWriter

public IObjectWriter getObjectWriter()
Specified by:
getObjectWriter in interface IStorageEngine

getObjects

public <T> Objects<T> getObjects(IQuery query,
                                 boolean inMemory,
                                 int startIndex,
                                 int endIndex)
Specified by:
getObjects in interface IStorageEngine

getObjects

public <T> Objects<T> getObjects(java.lang.String fullClassName,
                                 IQuery query,
                                 boolean inMemory,
                                 int startIndex,
                                 int endIndex)
                      throws java.lang.Exception
Throws:
java.lang.Exception

getSession

public ISession getSession(boolean throwExceptionIfDoesNotExist)
Specified by:
getSession in interface IStorageEngine

getVersion

public int getVersion()
Specified by:
getVersion in interface IStorageEngine

isClosed

public boolean isClosed()
Specified by:
isClosed in interface IStorageEngine

mainStoreObject

public long mainStoreObject(java.lang.Object object)
                     throws java.lang.Exception
Throws:
java.lang.Exception

persistClass

public ClassInfo persistClass(ClassInfo newClassInfo,
                              int lastClassInfoIndex,
                              boolean addClass,
                              boolean addDependentClasses)

rollback

public void rollback()
Specified by:
rollback in interface IStorageEngine

setCurrentIdBlockInfos

public void setCurrentIdBlockInfos(long currentBlockPosition,
                                   int currentBlockNumber,
                                   OID maxId)
Specified by:
setCurrentIdBlockInfos in interface IStorageEngine

setDatabaseId

public void setDatabaseId(long[] databaseId)

setLastODBCloseStatus

public void setLastODBCloseStatus(boolean lastCloseStatus)
Specified by:
setLastODBCloseStatus in interface IStorageEngine

setMetaModel

public void setMetaModel(MetaModel metaModel)
Specified by:
setMetaModel in interface IStorageEngine

setNbClasses

public void setNbClasses(long nbClasses)
Specified by:
setNbClasses in interface IStorageEngine

setVersion

public void setVersion(int version)
Specified by:
setVersion in interface IStorageEngine

getCurrentTransactionId

public TransactionId getCurrentTransactionId()
Specified by:
getCurrentTransactionId in interface IStorageEngine

setCurrentTransactionId

public void setCurrentTransactionId(TransactionId transactionId)
Specified by:
setCurrentTransactionId in interface IStorageEngine

setDatabaseId

public void setDatabaseId(DatabaseId databaseId)
Specified by:
setDatabaseId in interface IStorageEngine

getDatabaseId

public DatabaseId getDatabaseId()
Specified by:
getDatabaseId in interface IStorageEngine

disconnect

public void disconnect(java.lang.Object object)
Description copied from interface: IStorageEngine
Used to disconnect the object from the current session. The object is removed from the cache

Specified by:
disconnect in interface IStorageEngine

reconnect

public void reconnect(java.lang.Object object)
Description copied from interface: IStorageEngine
Used to reconnect an object to the current session

Specified by:
reconnect in interface IStorageEngine

getTriggerManager

public ITriggerManager getTriggerManager()
Specified by:
getTriggerManager in interface IStorageEngine

addDeleteTriggerFor

public void addDeleteTriggerFor(java.lang.String className,
                                DeleteTrigger trigger)
Specified by:
addDeleteTriggerFor in interface IStorageEngine

addInsertTriggerFor

public void addInsertTriggerFor(java.lang.String className,
                                InsertTrigger trigger)
Specified by:
addInsertTriggerFor in interface IStorageEngine

addOidTriggerFor

public void addOidTriggerFor(java.lang.String className,
                             OIDTrigger trigger)
Specified by:
addOidTriggerFor in interface IStorageEngine

addSelectTriggerFor

public void addSelectTriggerFor(java.lang.String className,
                                SelectTrigger trigger)
Specified by:
addSelectTriggerFor in interface IStorageEngine

addUpdateTriggerFor

public void addUpdateTriggerFor(java.lang.String className,
                                UpdateTrigger trigger)
Specified by:
addUpdateTriggerFor in interface IStorageEngine

getObjects

public abstract <T> Objects<T> getObjects(java.lang.Class clazz,
                                          boolean inMemory,
                                          int startIndex,
                                          int endIndex)
Specified by:
getObjects in interface IStorageEngine

checkMetaModelCompatibility

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

Specified by:
checkMetaModelCompatibility in interface IStorageEngine

criteriaQuery

public CriteriaQuery criteriaQuery(java.lang.Class clazz,
                                   ICriterion criterion)
Specified by:
criteriaQuery in interface IStorageEngine
Returns:

criteriaQuery

public CriteriaQuery criteriaQuery(java.lang.Class clazz)
Specified by:
criteriaQuery in interface IStorageEngine
Returns: