public virtual NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo BuildNnoi
     (object o, NeoDatis.Odb.Core.Layers.Layer2.Meta.ClassInfo classInfo, NeoDatis.Odb.Core.Layers.Layer2.Meta.AbstractObjectInfo
     [] values, long[] attributesIdentification, int[] attributeIds, System.Collections.Generic.IDictionary
     <object, NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo> alreadyReadObjects
     )
 {
     NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo nnoi = new NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo
                                                                         (o, classInfo, values, attributesIdentification, attributeIds);
     if (storageEngine != null)
     {
         // for unit test purpose
         NeoDatis.Odb.Core.Transaction.ICache cache = storageEngine.GetSession(true).GetCache
                                                          ();
         // Check if object is in the cache, if so sets its oid
         NeoDatis.Odb.OID oid = cache.GetOid(o, false);
         if (oid != null)
         {
             nnoi.SetOid(oid);
             // Sets some values to the new header to keep track of the infos
             // when
             // executing NeoDatis without closing it, just committing.
             // Bug reported by Andy
             NeoDatis.Odb.Core.Layers.Layer2.Meta.ObjectInfoHeader oih = cache.GetObjectInfoHeaderFromOid
                                                                             (oid, true);
             nnoi.GetHeader().SetObjectVersion(oih.GetObjectVersion());
             nnoi.GetHeader().SetUpdateDate(oih.GetUpdateDate());
             nnoi.GetHeader().SetCreationDate(oih.GetCreationDate());
         }
     }
     return(nnoi);
 }
		public virtual NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo BuildNnoi
			(object o, NeoDatis.Odb.Core.Layers.Layer2.Meta.ClassInfo classInfo, NeoDatis.Odb.Core.Layers.Layer2.Meta.AbstractObjectInfo
			[] values, long[] attributesIdentification, int[] attributeIds, System.Collections.Generic.IDictionary
			<object, NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo> alreadyReadObjects
			)
		{
			NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo nnoi = new NeoDatis.Odb.Core.Layers.Layer2.Meta.NonNativeObjectInfo
				(o, classInfo, values, attributesIdentification, attributeIds);
			if (storageEngine != null)
			{
				// for unit test purpose
				NeoDatis.Odb.Core.Transaction.ICache cache = storageEngine.GetSession(true).GetCache
					();
				// Check if object is in the cache, if so sets its oid
				NeoDatis.Odb.OID oid = cache.GetOid(o, false);
				if (oid != null)
				{
					nnoi.SetOid(oid);
					// Sets some values to the new header to keep track of the infos
					// when
					// executing NeoDatis without closing it, just committing.
					// Bug reported by Andy
					NeoDatis.Odb.Core.Layers.Layer2.Meta.ObjectInfoHeader oih = cache.GetObjectInfoHeaderFromOid
						(oid, true);
					nnoi.GetHeader().SetObjectVersion(oih.GetObjectVersion());
					nnoi.GetHeader().SetUpdateDate(oih.GetUpdateDate());
					nnoi.GetHeader().SetCreationDate(oih.GetCreationDate());
				}
			}
			return nnoi;
		}