예제 #1
0
 public virtual object GetCurrentInstance(NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo
                                          nnoi)
 {
     //FIXME no need
     if (nnoi.GetObject() != null)
     {
         return(nnoi.GetObject());
     }
     return(instanceBuilder.BuildOneInstance(nnoi));
 }
예제 #2
0
        /// <summary>
        /// Check if the object at position currentPosition matches the query, returns true
        /// This method must compute the next object position and the orderBy key if it exists!
        /// </summary>
        public override bool MatchObjectWithOid(NeoDatis.Odb.OID oid, bool loadObjectInfo
                                                , bool inMemory)
        {
            NeoDatis.Odb.Core.Layers.Layer2.Meta.AbstractObjectInfo aoitemp = objectReader.ReadNonNativeObjectInfoFromOid
                                                                                  (classInfo, oid, true, true);
            bool objectMatches = false;

            if (!aoitemp.IsDeletedObject())
            {
                currentNnoi   = (NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo)aoitemp;
                currentObject = instanceBuilder.BuildOneInstance(currentNnoi);
                objectMatches = query == null || NeoDatis.Odb.Core.Query.QueryManager.Match(query
                                                                                            , currentObject);
                nextOID = currentNnoi.GetNextObjectOID();
            }
            return(objectMatches);
        }
        public override T Get(int index)
        {
            object o = base[index];

            NeoDatis.Odb.Core.Layers.Layer2.Meta.AbstractObjectInfo aoi = (NeoDatis.Odb.Core.Layers.Layer2.Meta.AbstractObjectInfo
                                                                           )o;
            try
            {
                if (aoi.IsNull())
                {
                    return(default(T));
                }
                if (returnInstance)
                {
                    if (aoi.IsNative())
                    {
                        return((T)aoi.GetObject());
                    }
                    if (instanceBuilder == null)
                    {
                        // Lookup the instance builder
                        instanceBuilder = (NeoDatis.Odb.Core.Layers.Layer2.Instance.IInstanceBuilder)NeoDatis.Odb.Core.Lookup.LookupFactory
                                          .Get(sessionId).Get(NeoDatis.Odb.Impl.Core.Lookup.Lookups.InstanceBuilder);
                        if (instanceBuilder == null)
                        {
                            throw new NeoDatis.Odb.ODBRuntimeException(NeoDatis.Odb.Core.NeoDatisError.LookupKeyNotFound
                                                                       .AddParameter(NeoDatis.Odb.Impl.Core.Lookup.Lookups.InstanceBuilder));
                        }
                    }
                    return((T)instanceBuilder.BuildOneInstance((NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo
                                                                )aoi));
                }
                // No need to return Instance return the layer 2 representation
                o = aoi;
                return((T)o);
            }
            catch (System.Exception e)
            {
                throw new NeoDatis.Odb.ODBRuntimeException(NeoDatis.Odb.Core.NeoDatisError.ErrorWhileGettingObjectFromListAtIndex
                                                           .AddParameter(index), e);
            }
        }