KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > db4o > inside > marshall > ClassMarshaller0


1 /* Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com
2
3 This file is part of the db4o open source object database.
4
5 db4o is free software; you can redistribute it and/or modify it under
6 the terms of version 2 of the GNU General Public License as published
7 by the Free Software Foundation and as clarified by db4objects' GPL
8 interpretation policy, available at
9 http://www.db4o.com/about/company/legalpolicies/gplinterpretation/
10 Alternatively you can write to db4objects, Inc., 1900 S Norfolk Street,
11 Suite 350, San Mateo, CA 94403, USA.
12
13 db4o is distributed in the hope that it will be useful, but WITHOUT ANY
14 WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 for more details.
17
18 You should have received a copy of the GNU General Public License along
19 with this program; if not, write to the Free Software Foundation, Inc.,
20 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */

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 /**
30  * @exclude
31  */

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