View Javadoc

1   package org.minetti.astrodevice.server.hibernate.dao;
2   
3   import java.util.HashMap;
4   import java.util.Map;
5   import javax.persistence.Persistence;
6   import org.minetti.astrodevice.server.core.dao.DaoSession;
7   import org.minetti.astrodevice.server.core.dao.DeviceSpecificationDao;
8   import org.minetti.astrodevice.server.core.dao.ObservingSiteDao;
9   import org.minetti.astrodevice.server.core.dao.DaoTransaction;
10  import org.minetti.astrodevice.server.core.module.DaoModule;
11  
12  /**
13   * DAO module using the Hibernate framework.
14   * @author Jean-Philippe MINETTI
15   */
16  public final class DaoModuleImpl
17  		implements DaoModule {
18  
19  	/**
20  	 * DAO factory.
21  	 */
22  	private DaoFactory daoFactory = null;
23  
24  	/**
25  	 * Constructor.
26  	 */
27  	public DaoModuleImpl () {
28  		super();
29  	}
30  
31  	/*
32  	 * (non-Javadoc)
33  	 * @see org.minetti.astrodevice.server.core.module.Module#getName()
34  	 */
35  	public String getName () {
36  		return "dao/hibernate";
37  	}
38  
39  	/*
40  	 * (non-Javadoc)
41  	 * @see org.minetti.astrodevice.server.core.module.Module#start()
42  	 */
43  	public void start () {
44  
45  		// TODO Temporaire
46  		final Map<String, String> propertyMap = new HashMap<String, String>();
47  		propertyMap.put("hibernate.connection.driver_class", "com.mysql.jdbc.Driver");
48  		propertyMap.put("hibernate.connection.url", "jdbc:mysql://localhost:3306/astroDeviceServer");
49  		propertyMap.put("hibernate.connection.username", "astro");
50  		propertyMap.put("hibernate.connection.password", "astro");
51  		propertyMap.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
52  		// TODO Temporaire
53  
54  		this.daoFactory = new DaoFactory(Persistence.createEntityManagerFactory("astroDeviceServer", propertyMap));
55  	}
56  
57  	/*
58  	 * (non-Javadoc)
59  	 * @see org.minetti.astrodevice.server.core.module.Module#stop()
60  	 */
61  	public void stop () {
62  		this.daoFactory.close();
63  	}
64  
65  	/*
66  	 * (non-Javadoc)
67  	 * @see org.minetti.astrodevice.server.core.module.DaoModule#newDaoSession()
68  	 */
69  	public DaoSession newDaoSession () {
70  		return this.daoFactory.newDaoSession();
71  	}
72  
73  	/*
74  	 * (non-Javadoc)
75  	 * @see
76  	 * org.minetti.astrodevice.server.core.module.DaoModule#newDaoTransaction(org.minetti.astrodevice
77  	 * .server.core.dao.DaoSession)
78  	 */
79  	public DaoTransaction newDaoTransaction (final DaoSession session) {
80  		return this.daoFactory.newDaoTransaction(session);
81  	}
82  
83  	/*
84  	 * (non-Javadoc)
85  	 * @see
86  	 * org.minetti.astrodevice.server.core.module.DaoModule#newObservingSiteDao(org.minetti.astrodevice
87  	 * .server.core.dao.DaoSession)
88  	 */
89  	public ObservingSiteDao newObservingSiteDao (final DaoSession session) {
90  		return this.daoFactory.newObservingSiteDao(session);
91  	}
92  
93  	/*
94  	 * (non-Javadoc)
95  	 * @see
96  	 * org.minetti.astrodevice.server.core.module.DaoModule#newDeviceSpecificationDao(org.minetti
97  	 * .astrodevice.server.core.dao.DaoSession)
98  	 */
99  	public DeviceSpecificationDao newDeviceSpecificationDao (final DaoSession session) {
100 		return this.daoFactory.newDeviceSpecificationDao(session);
101 	}
102 
103 	/*
104 	 * (non-Javadoc)
105 	 * @see java.lang.Object#toString()
106 	 */
107 	@Override
108 	public String toString () {
109 		return "DaoFactory[" + getName() + "]";
110 	}
111 
112 }