1 21 package com.db4o; 22 23 import com.db4o.ext.*; 24 import com.db4o.inside.marshall.*; 25 import com.db4o.inside.slots.*; 26 27 30 class YapFieldVersion extends YapFieldVirtual { 31 32 YapFieldVersion(YapStream stream) { 33 super(); 34 i_name = VirtualField.VERSION; 35 i_handler = new YLong(stream); 36 } 37 38 public void addFieldIndex(MarshallerFamily mf, YapClass yapClass, YapWriter writer, Slot oldSlot) { 39 writer.writeLong(writer.getStream().generateTimeStampId()); 40 } 41 42 public void delete(MarshallerFamily mf, YapWriter a_bytes, boolean isUpdate) { 43 a_bytes.incrementOffset(linkLength()); 44 } 45 46 void instantiate1(Transaction a_trans, YapObject a_yapObject, YapReader a_bytes) { 47 a_yapObject.virtualAttributes().i_version = a_bytes.readLong(); 48 } 49 50 void marshall1(YapObject a_yapObject, YapWriter a_bytes, boolean a_migrating, boolean a_new) { 51 YapStream stream = a_bytes.getStream().i_parent; 52 VirtualAttributes va = a_yapObject.virtualAttributes(); 53 if (! a_migrating) { 54 va.i_version = stream.generateTimeStampId(); 55 } 56 if(va == null){ 57 a_bytes.writeLong(0); 58 }else{ 59 a_bytes.writeLong(va.i_version); 60 } 61 } 62 63 public int linkLength() { 64 return YapConst.LONG_LENGTH; 65 } 66 67 void marshallIgnore(YapReader writer) { 68 writer.writeLong(0); 69 } 70 71 72 } | Popular Tags |