1 21 package com.db4o.inside.marshall; 22 23 import com.db4o.*; 24 25 26 public class PrimitiveMarshaller0 extends PrimitiveMarshaller { 27 28 public boolean useNormalClassRead(){ 29 return true; 30 } 31 32 public int writeNew(Transaction trans, YapClassPrimitive yapClassPrimitive, Object obj, boolean topLevel, YapWriter parentWriter, boolean withIndirection, boolean restoreLinkOffset){ 33 34 int id = 0; 35 36 if(obj != null){ 37 38 TypeHandler4 handler = yapClassPrimitive.i_handler; 39 40 YapStream stream = trans.stream(); 41 id = stream.newUserObject(); 42 int address = -1; 43 int length = objectLength(handler); 44 if(! stream.isClient()){ 45 address = trans.i_file.getSlot(length); 46 } 47 trans.setPointer(id, address, length); 48 49 YapWriter writer = new YapWriter(trans, length); 50 writer.useSlot(id, address, length); 51 if (Deploy.debug) { 52 writer.writeBegin(YapConst.YAPOBJECT); 53 } 54 writer.writeInt(yapClassPrimitive.getID()); 55 56 handler.writeNew(_family, obj, false, writer, true, false); 57 58 writer.writeEnd(); 59 stream.writeNew(yapClassPrimitive, writer); 60 } 61 62 if(parentWriter != null){ 63 parentWriter.writeInt(id); 64 } 65 66 return id; 67 } 68 69 70 } 71 | Popular Tags |