main
1using Db4objects.Db4o;
2using Db4objects.Db4o.Config;
3using Gorilla.Commons.Infrastructure.FileSystem;
4using gorilla.commons.utility;
5using momoney.database.transactions;
6
7namespace momoney.database.db4o
8{
9 public class ConnectionFactory : IConnectionFactory
10 {
11 readonly IConfigureDatabaseStep setup;
12 readonly IConfigureObjectContainerStep setup_container;
13
14 public ConnectionFactory(IConfigureDatabaseStep setup, IConfigureObjectContainerStep setup_container)
15 {
16 this.setup = setup;
17 this.setup_container = setup_container;
18 }
19
20 public DatabaseConnection open_connection_to(File the_path_to_the_database_file)
21 {
22 var configuration = Db4oFactory.NewConfiguration();
23 setup.configure(configuration);
24 return new ObjectDatabaseConnection(get_container(the_path_to_the_database_file, configuration));
25 }
26
27 IObjectContainer get_container(File the_path_to_the_database_file, IConfiguration configuration)
28 {
29 return Db4oFactory
30 .OpenFile(configuration, the_path_to_the_database_file.path)
31 .and_configure_with(setup_container);
32 }
33 }
34}