1 21 package com.db4o.test.test2; 22 23 import java.util.*; 24 25 import com.db4o.*; 26 import com.db4o.foundation.*; 27 import com.db4o.test.*; 28 import com.db4o.test.types.*; 29 30 31 public abstract class RCollection implements RTestable{ 32 33 abstract public Object newInstance(); 34 35 TEntry entry(){ 36 return new TEntry(); 37 } 38 39 public Object set(Object obj, int ver){ 40 TEntry[] arr = entry().test(ver); 41 Collection col = (Collection)obj; 42 col.clear(); 43 for(int i = 0; i < arr.length; i ++){ 44 col.add(arr[i].key); 45 } 46 return obj; 47 } 48 49 public void compare(ObjectContainer con, Object obj, int ver){ 50 Collection col = (Collection)obj; 51 TEntry[] entries = new TEntry[col.size()]; 52 Iterator it = col.iterator(); 53 int i = 0; 54 while(it.hasNext()){ 55 entries[i] = new TEntry(); 56 entries[i].key = it.next(); 57 i++; 58 } 59 entry().compare(entries, ver, true); 60 } 61 62 public void specific(ObjectContainer con, int step){ 63 TEntry entry = entry().firstElement(); 64 Collection col = (Collection)newInstance(); 65 if(step > 0){ 66 col.add(entry.key); 67 ObjectSet set = con.get(col); 68 Collection4 sizeCalc = new Collection4(); 69 while(set.hasNext()){ 70 Object obj = set.next(); 71 if(obj.getClass() == col.getClass()){ 72 sizeCalc.add(obj); 73 } 74 } 75 if(sizeCalc.size() != step){ 76 Regression.addError("Collection member query not found"); 77 } 78 } 79 entry = entry().noElement(); 80 col.add(entry.key); 81 if(con.get(col).size() != 0){ 82 Regression.addError("Collection member query found too many"); 83 } 84 } 85 86 87 public boolean jdk2(){ 88 return true; 89 } 90 91 public boolean ver3(){ 92 return false; 93 } 94 } | Popular Tags |