1 21 package com.db4o.test; 22 23 import java.util.*; 24 25 import com.db4o.*; 26 import com.db4o.foundation.*; 27 28 public class CascadeToVector { 29 30 public Vector vec; 31 32 public void configure() { 33 Db4o.configure().objectClass(this).cascadeOnUpdate(true); 34 Db4o.configure().objectClass(this).cascadeOnDelete(true); 35 } 36 37 public void store() { 38 Test.deleteAllInstances(this); 39 Test.deleteAllInstances(new Atom()); 40 CascadeToVector ctv = new CascadeToVector(); 41 ctv.vec = new Vector(); 42 ctv.vec.addElement(new Atom("stored1")); 43 ctv.vec.addElement(new Atom(new Atom("storedChild1"), "stored2")); 44 Test.store(ctv); 45 } 46 47 public void test() { 48 49 Test.forEach(this, new Visitor4() { 50 public void visit(Object obj) { 51 CascadeToVector ctv = (CascadeToVector) obj; 52 Enumeration i = ctv.vec.elements(); 53 while(i.hasMoreElements()){ 54 Atom atom = (Atom) i.nextElement(); 55 atom.name = "updated"; 56 if(atom.child != null){ 57 atom.child.name = "updated"; 59 } 60 } 61 Test.store(ctv); 62 } 63 }); 64 Test.reOpen(); 65 66 Test.forEach(this, new Visitor4() { 67 public void visit(Object obj) { 68 CascadeToVector ctv = (CascadeToVector) obj; 69 Enumeration i = ctv.vec.elements(); 70 while(i.hasMoreElements()){ 71 Atom atom = (Atom) i.nextElement(); 72 Test.ensure(atom.name.equals("updated")); 73 if(atom.child != null){ 74 Test.ensure( ! atom.child.name.equals("updated")); 75 } 76 } 77 } 78 }); 79 80 81 83 Test.reOpen(); 84 Test.deleteAllInstances(this); 85 Test.ensureOccurrences(new Atom(), 1); 86 } 87 } 88 | Popular Tags |