Source code: marauroa/game/PlayerDatabaseFactory.java
1 /* $Id: PlayerDatabaseFactory.java,v 1.4 2003/12/08 01:12:19 arianne_rpg Exp $ */
2 /***************************************************************************
3 * (C) Copyright 2003 - Marauroa *
4 ***************************************************************************
5 ***************************************************************************
6 * *
7 * This program is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation; either version 2 of the License, or *
10 * (at your option) any later version. *
11 * *
12 ***************************************************************************/
13 package marauroa.game;
14
15 import marauroa.*;
16
17 /** MessageFactory is the class that is in charge of creating the correct object
18 * for the database choosed in the configuration file. */
19 public class PlayerDatabaseFactory
20 {
21 /** This method returns an instance of PlayerDatabase choosen using the Configuration file.
22 * @return A shared instance of PlayerDatabase */
23 public static PlayerDatabase getDatabase() throws PlayerDatabase.NoDatabaseConfException
24 {
25 marauroad.trace("PlayerDatabaseFactory::getDatabase",">");
26 try
27 {
28 Configuration conf=Configuration.getConfiguration();
29
30 String database_type=conf.get("marauroa_DATABASE");
31
32 if(database_type.equals("MemoryPlayerDatabase"))
33 {
34 marauroad.trace("PlayerDatabaseFactory::getDatabase","D","Choosen MemoryPlayerDatabase");
35 return MemoryPlayerDatabase.getDatabase();
36 }
37
38 if(database_type.equals("JDBCPlayerDatabase"))
39 {
40 marauroad.trace("PlayerDatabaseFactory::getDatabase","D","Choosen JDBCPlayerDatabase");
41 return JDBCPlayerDatabase.getDatabase();
42 }
43
44 marauroad.trace("PlayerDatabaseFactory::getDatabase","X","No PlayerDatabase choosen");
45 throw new PlayerDatabase.NoDatabaseConfException();
46 }
47 catch(Exception e)
48 {
49 marauroad.trace("PlayerDatabaseFactory::getDatabase","X",e.getMessage());
50 throw new PlayerDatabase.NoDatabaseConfException();
51 }
52 finally
53 {
54 marauroad.trace("PlayerDatabaseFactory::getDatabase","<");
55 }
56 }
57
58 /** This method returns an instance of PlayerDatabase choosen using the param.
59 * @param type A String containing the type of database
60 * @return A shared instance of PlayerDatabase */
61 public static PlayerDatabase getDatabase(String database_type) throws PlayerDatabase.NoDatabaseConfException
62 {
63 marauroad.trace("PlayerDatabaseFactory::getDatabase",">");
64 try
65 {
66 if(database_type.equals("MemoryPlayerDatabase"))
67 {
68 marauroad.trace("PlayerDatabaseFactory::getDatabase","D","Choosen MemoryPlayerDatabase");
69 return MemoryPlayerDatabase.getDatabase();
70 }
71
72 if(database_type.equals("JDBCPlayerDatabase"))
73 {
74 marauroad.trace("PlayerDatabaseFactory::getDatabase","D","Choosen JDBCPlayerDatabase");
75 return JDBCPlayerDatabase.getDatabase();
76 }
77
78 marauroad.trace("PlayerDatabaseFactory::getDatabase","X","No PlayerDatabase choosen");
79 throw new PlayerDatabase.NoDatabaseConfException();
80 }
81 catch(Exception e)
82 {
83 marauroad.trace("PlayerDatabaseFactory::getDatabase","X",e.getMessage());
84 throw new PlayerDatabase.NoDatabaseConfException();
85 }
86 finally
87 {
88 marauroad.trace("PlayerDatabaseFactory::getDatabase","<");
89 }
90 }
91 }