|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.neodatis.odb.core.layers.layer3.engine.AbstractStorageEngineReader
org.neodatis.odb.core.layers.layer3.engine.AbstractStorageEngine
public abstract class AbstractStorageEngine
The storage Engine
The Local Storage Engine class in the most important class in ODB. It manages reading, writing and querying objects. All write operations are delegated to the ObjectWriter class. All read operations are delegated to the ObjectReader class. All Id operations are delegated to the IdManager class. All Introspecting operations are delegated to the ObjectIntrospector class. All Trigger operations are delegated to the TriggerManager class. All session related operations are executed by The Session class. Session Class using the Transaction class are responsible for ACID behavior. *
Field Summary | |
---|---|
protected IClassIntrospector |
classIntrospector
|
protected IOdbList<ICommitListener> |
commitListeners
|
protected TransactionId |
currentTransactionId
To keep track of current transaction Id |
protected IIntrospectionCallback |
introspectionCallbackForInsert
This is a visitor used to execute some specific action(like calling 'Before Insert Trigger') when introspecting an object |
protected IIntrospectionCallback |
introspectionCallbackForUpdate
This is a visitor used to execute some specific action when introspecting an object |
protected boolean |
isLocal
Used to know if the storage engine is executed in local mode (embedded mode) or client server mode |
protected IObjectIntrospector |
objectIntrospector
|
protected ITriggerManager |
triggerManager
|
Fields inherited from class org.neodatis.odb.core.layers.layer3.engine.AbstractStorageEngineReader |
---|
baseIdentification, isClosed, objectReader, provider |
Constructor Summary | |
---|---|
AbstractStorageEngine(IBaseIdentification parameters)
The database file name |
Method Summary | |
---|---|
void |
addCommitListener(ICommitListener commitListener)
|
void |
addDeleteTriggerFor(java.lang.String className,
DeleteTrigger trigger)
|
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)
|
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 |
checkRuntimeCompatibility()
This is a runtime compatibility check. |
void |
close()
|
void |
commit()
|
long |
count(CriteriaQuery query)
|
CriteriaQuery |
criteriaQuery(java.lang.Class clazz)
|
CriteriaQuery |
criteriaQuery(java.lang.Class clazz,
ICriterion criterion)
|
OID |
delete(java.lang.Object object,
boolean cascade)
Actually deletes an object database |
void |
deleteObjectWithOid(OID oid,
boolean cascade)
Warning, |
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)
|
IObjectIntrospector |
getObjectIntrospector()
|
IObjectReader |
getObjectReader()
|
IObjectWriter |
getObjectWriter()
|
IRefactorManager |
getRefactorManager()
Returns the object used to refactor the database |
ITriggerManager |
getTriggerManager()
|
Values |
getValues(IValuesQuery query,
int startIndex,
int endIndex)
|
int |
getVersion()
|
protected void |
init()
|
protected OID |
internalDelete(java.lang.Object object,
boolean cascade,
java.util.Map<OID,OID> alreadyDeletedObjects)
|
protected OID |
internalStore(java.lang.Object object)
Store an object in ODBFactory database. |
protected OID |
internalStore(OID oid,
java.lang.Object object,
boolean forceUpdate)
Store an object with the specific id |
boolean |
isClosed()
|
boolean |
isLocal()
Used to know if the storage engine is executed in local mode (embedded mode) or client server mode |
void |
reconnect(java.lang.Object object)
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 metaModel2)
|
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)
|
java.lang.String |
toString()
Returns a string of the meta-model |
OID |
update(OID oid,
java.lang.Object object)
|
void |
updateMetaModel()
|
OID |
updateObject(NonNativeObjectInfo nnoi,
boolean forceUpdate)
Updates an object already transformed into meta representation! |
OID |
writeObjectInfo(OID oid,
NonNativeObjectInfo aoi,
long position,
boolean updatePointers)
Write an object already transformed into meta representation! |
Methods inherited from class org.neodatis.odb.core.layers.layer3.engine.AbstractStorageEngineReader |
---|
addIndexOn, config, defragmentTo, deleteIndex, getMetaModel, getObjectInfos, getObjects, getObjects, getSession, rebuildIndex |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.neodatis.odb.core.layers.layer3.IStorageEngine |
---|
addClasses, addIndexOn, buildDefaultSession, buildObjectIntrospector, buildObjectReader, buildObjectWriter, buildTriggerManager, defragmentTo, deleteIndex, getObjectInfos, getObjects, getObjects, getSession, rebuildIndex |
Field Detail |
---|
protected IObjectIntrospector objectIntrospector
protected IClassIntrospector classIntrospector
protected ITriggerManager triggerManager
protected IOdbList<ICommitListener> commitListeners
protected boolean isLocal
protected TransactionId currentTransactionId
protected IIntrospectionCallback introspectionCallbackForInsert
protected IIntrospectionCallback introspectionCallbackForUpdate
Constructor Detail |
---|
public AbstractStorageEngine(IBaseIdentification parameters)
Method Detail |
---|
protected void init()
public void addSession(ISession session, boolean readMetamodel)
addSession
in interface IStorageEngine
public CheckMetaModelResult checkMetaModelCompatibility(java.util.Map<java.lang.String,ClassInfo> currentCIs)
checkMetaModelCompatibility
in interface IStorageEngine
currentCIs
- public void checkRuntimeCompatibility()
public void updateMetaModel()
public OID store(java.lang.Object object)
IStorageEngine
store
in interface IStorageEngine
public OID store(OID oid, java.lang.Object object)
store
in interface IStorageEngine
public OID update(OID oid, java.lang.Object object)
protected OID internalStore(java.lang.Object object)
Transforms the object into meta representation and calls the internalStoreObject
object
-
java.io.IOException
protected OID internalStore(OID oid, java.lang.Object object, boolean forceUpdate)
oid
- object
-
public void deleteObjectWithOid(OID oid, boolean cascade)
deleteObjectWithOid
in interface IStorageEngine
public OID delete(java.lang.Object object, boolean cascade)
delete
in interface IStorageEngine
object
- cascade
- alreadyDeletedObjects
- Contain the oids of already deleted objects. This is to manage cyclic referenceprotected OID internalDelete(java.lang.Object object, boolean cascade, java.util.Map<OID,OID> alreadyDeletedObjects)
public java.lang.String toString()
toString
in class java.lang.Object
public void close()
close
in interface IStorageEngine
public long count(CriteriaQuery query)
count
in interface IStorageEngine
public IObjectReader getObjectReader()
getObjectReader
in interface IStorageEngine
public IObjectWriter getObjectWriter()
getObjectWriter
in interface IStorageEngine
public void commit()
commit
in interface IStorageEngine
public void rollback()
rollback
in interface IStorageEngine
public OID getObjectId(java.lang.Object object, boolean throwExceptionIfDoesNotExist)
getObjectId
in interface IStorageEngine
public java.lang.Object getObjectFromOid(OID oid)
getObjectFromOid
in interface IStorageEngine
public NonNativeObjectInfo getMetaObjectFromOid(OID oid)
getMetaObjectFromOid
in interface IStorageEngine
public ObjectInfoHeader getObjectInfoHeaderFromOid(OID oid, boolean useCache)
getObjectInfoHeaderFromOid
in interface IStorageEngine
public java.util.List<java.lang.Long> getAllObjectIds()
getAllObjectIds
in interface IStorageEngine
public java.util.List<FullIDInfo> getAllObjectIdInfos(java.lang.String objectType, boolean displayObjects)
getAllObjectIdInfos
in interface IStorageEngine
public void setVersion(int version)
setVersion
in interface IStorageEngine
public void setDatabaseId(DatabaseId databaseId)
setDatabaseId
in interface IStorageEngine
public void setNbClasses(long nbClasses)
setNbClasses
in interface IStorageEngine
public void setLastODBCloseStatus(boolean lastCloseStatus)
setLastODBCloseStatus
in interface IStorageEngine
public void setCurrentIdBlockInfos(long currentBlockPosition, int currentBlockNumber, OID maxId)
setCurrentIdBlockInfos
in interface IStorageEngine
public int getCurrentIdBlockNumber()
getCurrentIdBlockNumber
in interface IStorageEngine
public long getCurrentIdBlockPosition()
getCurrentIdBlockPosition
in interface IStorageEngine
public DatabaseId getDatabaseId()
getDatabaseId
in interface IStorageEngine
public OID getCurrentIdBlockMaxOid()
getCurrentIdBlockMaxOid
in interface IStorageEngine
public OID getMaxOid()
getMaxOid
in interface IStorageEngine
public void setMetaModel(MetaModel metaModel2)
setMetaModel
in interface IStorageEngine
public boolean isClosed()
isClosed
in interface IStorageEngine
public int getVersion()
getVersion
in interface IStorageEngine
public IBaseIdentification getBaseIdentification()
getBaseIdentification
in interface IStorageEngine
public OID writeObjectInfo(OID oid, NonNativeObjectInfo aoi, long position, boolean updatePointers)
IStorageEngine
writeObjectInfo
in interface IStorageEngine
public OID updateObject(NonNativeObjectInfo nnoi, boolean forceUpdate)
IStorageEngine
updateObject
in interface IStorageEngine
nnoi
- The Object Meta representation
public Values getValues(IValuesQuery query, int startIndex, int endIndex)
getValues
in interface IStorageEngine
public void addCommitListener(ICommitListener commitListener)
addCommitListener
in interface IStorageEngine
public IOdbList<ICommitListener> getCommitListeners()
getCommitListeners
in interface IStorageEngine
public IRefactorManager getRefactorManager()
IStorageEngine
getRefactorManager
in interface IStorageEngine
public void resetCommitListeners()
resetCommitListeners
in interface IStorageEngine
public boolean isLocal()
IStorageEngine
isLocal
in interface IStorageEngine
public TransactionId getCurrentTransactionId()
getCurrentTransactionId
in interface IStorageEngine
public void setCurrentTransactionId(TransactionId transactionId)
setCurrentTransactionId
in interface IStorageEngine
public void disconnect(java.lang.Object object)
IStorageEngine
disconnect
in interface IStorageEngine
public void reconnect(java.lang.Object object)
reconnect
in interface IStorageEngine
public ITriggerManager getTriggerManager()
getTriggerManager
in interface IStorageEngine
public void addDeleteTriggerFor(java.lang.String className, DeleteTrigger trigger)
addDeleteTriggerFor
in interface IStorageEngine
public void addInsertTriggerFor(java.lang.String className, InsertTrigger trigger)
addInsertTriggerFor
in interface IStorageEngine
public void addOidTriggerFor(java.lang.String className, OIDTrigger trigger)
addOidTriggerFor
in interface IStorageEngine
public void addSelectTriggerFor(java.lang.String className, SelectTrigger trigger)
addSelectTriggerFor
in interface IStorageEngine
public void addUpdateTriggerFor(java.lang.String className, UpdateTrigger trigger)
addUpdateTriggerFor
in interface IStorageEngine
public IObjectIntrospector getObjectIntrospector()
getObjectIntrospector
in interface IStorageEngine
public CriteriaQuery criteriaQuery(java.lang.Class clazz, ICriterion criterion)
criteriaQuery
in interface IStorageEngine
public CriteriaQuery criteriaQuery(java.lang.Class clazz)
criteriaQuery
in interface IStorageEngine
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |