1 21 package com.db4o.test; 22 23 import com.db4o.*; 24 import com.db4o.query.*; 25 26 27 public class MultiLevelIndex { 28 29 public MultiLevelIndex _child; 30 public int _i; 31 public int _level; 32 33 public void configure(){ 34 Db4o.configure().objectClass(this).objectField("_child").indexed(true); 35 Db4o.configure().objectClass(this).objectField("_i").indexed(true); 36 } 37 38 public void store(){ 39 Test.deleteAllInstances(this); 40 store1(3); 41 store1(2); 42 store1(5); 43 store1(1); 44 for (int i = 6; i < 103; i++) { 45 store1(i); 46 } 47 } 48 49 private void store1(int val){ 50 MultiLevelIndex root = new MultiLevelIndex(); 51 root._i = val; 52 root._child = new MultiLevelIndex(); 53 root._child._level = 1; 54 root._child._i = - val ; 55 Test.store(root); 56 } 57 58 public void test(){ 59 Query q = Test.query(); 60 q.constrain(MultiLevelIndex.class); 61 q.descend("_child").descend("_i").constrain(new Integer (- 102)); 62 long start = System.currentTimeMillis(); 63 ObjectSet objectSet = q.execute(); 64 long stop = System.currentTimeMillis(); 65 long duration = stop - start; 66 System.out.println("MultiLevelIndex time: " + duration + "ms"); 67 68 69 Test.ensure(objectSet.size() == 1); 70 MultiLevelIndex mli = (MultiLevelIndex)objectSet.next(); 71 Test.ensure(mli._i == 102); 72 73 } 74 75 76 77 78 } 79 | Popular Tags |