1 21 package com.db4o.inside.marshall; 22 23 import com.db4o.*; 24 25 26 public class StringMarshaller0 extends StringMarshaller { 27 28 public boolean inlinedStrings(){ 29 return false; 30 } 31 32 public void calculateLengths(Transaction trans, ObjectHeaderAttributes header, boolean topLevel, Object obj, boolean withIndirection) { 33 } 35 36 public Object writeNew(Object a_object, boolean topLevel, YapWriter a_bytes, boolean redirect) { 37 if (a_object == null) { 38 a_bytes.writeEmbeddedNull(); 39 return null; 40 } 41 42 YapStream stream = a_bytes.getStream(); 43 String str = (String ) a_object; 44 int length = stream.stringIO().length(str); 45 46 YapWriter bytes = new YapWriter(a_bytes.getTransaction(), length); 47 48 writeShort(stream, str, bytes); 49 50 bytes.setID(a_bytes._offset); 51 52 a_bytes.getStream().writeEmbedded(a_bytes, bytes); 53 a_bytes.incrementOffset(YapConst.ID_LENGTH); 54 a_bytes.writeInt(length); 55 return bytes; 56 } 57 58 public YapReader readIndexEntry(YapWriter parentSlot) throws CorruptionException{ 59 return parentSlot.getStream().readWriterByAddress(parentSlot.getTransaction(), parentSlot.readInt(), parentSlot.readInt()); 60 } 61 62 public YapReader readSlotFromParentSlot(YapStream stream, YapReader reader) throws CorruptionException { 63 return reader.readEmbeddedObject(stream.getTransaction()); 64 } 65 66 public void defrag(SlotReader reader) { 67 } 68 } 69 | Popular Tags |