1 21 package com.db4o; 22 23 import com.db4o.foundation.Tree; 24 25 28 public class TreeIntObject extends TreeInt { 29 30 public Object _object; 31 32 public TreeIntObject(int a_key) { 33 super(a_key); 34 } 35 36 public TreeIntObject(int a_key, Object a_object) { 37 super(a_key); 38 _object = a_object; 39 } 40 41 public Object shallowClone() { 42 return shallowCloneInternal(new TreeIntObject(_key)); 43 } 44 45 protected Tree shallowCloneInternal(Tree tree) { 46 TreeIntObject tio = (TreeIntObject) super.shallowCloneInternal(tree); 47 tio._object = _object; 48 return tio; 49 } 50 51 public Object getObject() { 52 return _object; 53 } 54 55 public void setObject(Object obj) { 56 _object = obj; 57 } 58 59 public Object read(YapReader a_bytes) { 60 int key = a_bytes.readInt(); 61 Object obj = null; 62 if (_object instanceof TreeInt) { 63 obj = new TreeReader(a_bytes, (Readable ) _object).read(); 64 } else { 65 obj = ((Readable ) _object).read(a_bytes); 66 } 67 return new TreeIntObject(key, obj); 68 } 69 70 public void write(YapReader a_writer) { 71 a_writer.writeInt(_key); 72 if (_object == null) { 73 a_writer.writeInt(0); 74 } else { 75 if (_object instanceof TreeInt) { 76 TreeInt.write(a_writer, (TreeInt) _object); 77 } else { 78 ((ReadWriteable) _object).write(a_writer); 79 } 80 } 81 } 82 83 public int ownLength() { 84 if (_object == null) { 85 return YapConst.INT_LENGTH * 2; 86 } 87 return YapConst.INT_LENGTH + ((Readable ) _object).byteCount(); 88 } 89 90 boolean variableLength() { 91 return true; 92 } 93 94 } 95
| Popular Tags
|