Collections Activation

For built-in db4o collections:

Java: Db4oCollection.activationDepth(activationDepth)

configures the activation depth for the objects returned from this collection. Default activation depth value for collections is 1, for hashmaps - 2.

ActivationExample.java: testCollectionDef
01private static void testCollectionDef(){ 02 storeCollection(); 03 Configuration configuration = Db4o.newConfiguration(); 04 configuration.activationDepth(5); 05 ObjectContainer container = Db4o.openFile(configuration, DB4O_FILE_NAME); 06 try { 07 ObjectSet result = container.get(List.class); 08 listResult(result); 09 P2LinkedList list = (P2LinkedList)result.get(0); 10 System.out.println("Default List activation depth: " + list.activationDepth()); 11 for (int i = 0; i < list.size(); i++){ 12 System.out.println("List element: " + list.get(i)); 13 } 14 } finally { 15 container.close(); 16 } 17 }

Let's change the activation depth:

ActivationExample.java: testCollectionActivation
01private static void testCollectionActivation(){ 02 storeCollection(); 03 Configuration configuration = Db4o.newConfiguration(); 04 configuration.activationDepth(5); 05 ObjectContainer container = Db4o.openFile(DB4O_FILE_NAME); 06 try { 07 ObjectSet result = container.get(List.class); 08 listResult(result); 09 P2LinkedList list = (P2LinkedList)result.get(0); 10 System.out.println("Setting list activation depth to 0 "); 11 list.activationDepth(0); 12 for (int i = 0; i < list.size(); i++){ 13 System.out.println("List element: " + list.get(i)); 14 } 15 } finally { 16 container.close(); 17 } 18 }

Specify a value less than zero to use the default activation depth configured for the ObjectContainer or for individual objects.