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; }