public virtual NeoDatis.Odb.Core.Layers.Layer3.IIdManager GetServerIdManager(NeoDatis.Odb.Core.Layers.Layer3.IStorageEngine
                                                                              engine)
 {
     return(new NeoDatis.Odb.Impl.Core.Server.Layers.Layer3.Oid.DefaultServerIdManager
                (engine.GetObjectWriter(), engine.GetObjectReader(), engine.GetCurrentIdBlockPosition
                    (), engine.GetCurrentIdBlockNumber(), engine.GetCurrentIdBlockMaxOid()));
 }
 public override T Get(int index)
 {
     NeoDatis.Odb.OID oid = oids[index];
     try
     {
         if (returnInstance)
         {
             return((T)engine.GetObjectFromOid(oid));
         }
         return((T)engine.GetObjectReader().GetObjectFromOid(oid, false, false));
     }
     catch (System.Exception)
     {
         throw new NeoDatis.Odb.ODBRuntimeException(NeoDatis.Odb.Core.NeoDatisError.ErrorWhileGettingObjectFromListAtIndex
                                                    .AddParameter(index));
     }
 }
 // For query result handler
 public virtual NeoDatis.Odb.Core.Query.Execution.IMatchingObjectAction GetCollectionQueryResultAction
     (NeoDatis.Odb.Core.Layers.Layer3.IStorageEngine engine, NeoDatis.Odb.Core.Query.IQuery
     query, bool inMemory, bool returnObjects)
 {
     return(new NeoDatis.Odb.Impl.Core.Query.Criteria.CollectionQueryResultAction <object>(query
                                                                                           , inMemory, engine, returnObjects, engine.GetObjectReader().GetInstanceBuilder()
                                                                                           ));
 }