1 21 package com.db4o.inside.marshall; 22 23 import com.db4o.*; 24 import com.db4o.inside.btree.*; 25 import com.db4o.inside.classindex.*; 26 import com.db4o.inside.convert.conversions.*; 27 28 29 32 public class ClassMarshaller0 extends ClassMarshaller{ 33 34 protected void readIndex(YapStream stream, YapClass clazz, YapReader reader) { 35 int indexID = reader.readInt(); 36 if(! stream.maintainsIndices() || ! (stream instanceof YapFile)){ 37 return; 38 } 39 if(btree(clazz) != null){ 40 return; 41 } 42 clazz.index().read(stream, validIndexId(indexID)); 43 if(isOldClassIndex(indexID)){ 44 new ClassIndexesToBTrees_5_5().convert((YapFile)stream, indexID, btree(clazz)); 45 stream.setDirtyInSystemTransaction(clazz); 46 } 47 } 48 49 private BTree btree(YapClass clazz) { 50 return BTreeClassIndexStrategy.btree(clazz); 51 } 52 53 private int validIndexId(int indexID) { 54 return isOldClassIndex(indexID) ? 0 : -indexID; 55 } 56 57 private boolean isOldClassIndex(int indexID) { 58 return indexID > 0; 59 } 60 61 protected int indexIDForWriting(int indexID){ 62 return indexID; 63 } 64 } 65 | Popular Tags |