package com.db4o.samples;

import java.io.File;
import com.db4o.*;
import com.db4o.lib.Logger;

public class S16_Multiple_ObjectContainers
{
	
	public static void main(String[] args)
	{
		Logger.log("*** S16 Multiple ObjectContainers");
		
		new File("multipleFiles.yap").delete(); 
		// Delete second file, so we don't get multiple Alices in this demo.

		Individual templateAlice = new Individual();
		templateAlice.firstName = "Alice";
		templateAlice.addresses = new Address[0];
		ObjectContainer db = Db4o.openFile("samples.yap");
		Individual alice = (Individual)db.get(templateAlice).next();
		// Retrieve Alice and her address.
		
		
		ObjectContainer db2 = Db4o.openFile("multipleFiles.yap");
		// open a second ObjectContainer
		
		
		db2.set(alice);
		// This stores Alice and her address to the second container.
		// During one session, a persistent object can be managed by
		// an arbitrary number of ObjectContainers.
		
		
		db.close();
		db2.close();
		// close both containers
		
		
		Logger.log("All objects in the second ObjectContainer 'mulitpleFiles.yap':");
		db2 = Db4o.openFile("multipleFiles.yap");
		ObjectSet set = db2.get(null);
		while(set.hasNext()){
			Logger.log(db2, set.next());
		}
		db2.close();
		
	}
}
