Esempio n. 1
0
        /// <summary>Execute query using index</summary>
        /// <param name="inMemory"></param>
        /// <param name="returnObjects"></param>
        /// <returns></returns>
        /// <exception cref="System.Exception">System.Exception</exception>
        private NeoDatis.Odb.Objects <T> ExecuteForOneOid <T>(bool inMemory, bool returnObjects
                                                              , NeoDatis.Odb.Core.Query.Execution.IMatchingObjectAction queryResultAction)
        {
            if (NeoDatis.Odb.OdbConfiguration.IsDebugEnabled(LogId))
            {
                NeoDatis.Tool.DLogger.Debug("loading Object with oid " + query.GetOidOfObjectToQuery
                                                () + " - class " + classInfo.GetFullClassName());
            }
            if (ExecuteStartAndEndOfQueryAction())
            {
                queryResultAction.Start();
            }
            PrepareQuery();
            NeoDatis.Odb.OID oid = query.GetOidOfObjectToQuery();
            // FIXME Why calling this method
            long position      = objectReader.GetObjectPositionFromItsOid(oid, true, true);
            bool objectMatches = MatchObjectWithOid(oid, returnObjects, inMemory);

            queryResultAction.ObjectMatch(oid, GetCurrentObjectMetaRepresentation(), orderByKey
                                          );
            queryResultAction.End();
            return(queryResultAction.GetObjects <T>());
        }