01 /*
02 * Created on 10.06.2004
03 */
04 package de.fub.tip.datenbank.factory;
05
06 import javax.sql.DataSource;
07
08 import de.fub.tip.datenbank.logik.InformationsAnzeiger;
09
10
11 /**
12 * Sinn: Fabrik zur Herstellung von <code>InformationsAnzeiger</code>
13 * -Objekten
14 *
15 * @see de.fub.tip.datenbank.logik.InformationsAnzeiger
16 *
17 * @author hirsch, 10.06.2004
18 * @version 2004-06-10
19 * $Id: InformationsAnzeigerFactory.java,v 1.1 2004/06/10 11:28:42 hirsch Exp $
20 */
21 public class InformationsAnzeigerFactory implements LogicFactory {
22 /** die eigentliche Singleton-Instanz */
23 private static InformationsAnzeigerFactory instance = null;
24 /** Datenquelle, auf der das Logikobjekt arbeitet, das von der Fabrik gebaut wird*/
25 private static DataSource datasource = null;
26
27 /**
28 * erzeugt eine Fabrik als Singleton mit der übergebenen Datenquelle
29 * @param ds Datenquelle für die Fabrik
30 */
31 private InformationsAnzeigerFactory(DataSource ds) {
32 datasource = ds;
33 } // end of class
34
35 /**
36 *
37 * @param ds Datenquelle zum Weiterreichen an die Logk-Instanzen
38 * @return FabrikObjekt
39 */
40 public static InformationsAnzeigerFactory getInstance(DataSource ds) {
41 if (instance == null) instance = new InformationsAnzeigerFactory(ds);
42
43 // da später mal *wirklich* verschiedene Datenquellen benutzt werden können
44 // und nur derzeit nur mit STRUTS gearbeitet wird, muss jede Fabrik als
45 // flexiblen Teil die Datenquelle haben!
46 // Da dieser Teil immer der Methode übergeben wird,
47 // kann er hier angepasst werden, statt mit einer
48 // <code>setDataSource()</code>-Methode.
49 datasource = ds;
50
51 return instance;
52 } // end of getInstance
53
54 /**
55 * gibt einen <code>InformationsAnzeiger</code> zurück
56 * @see de.fub.tip.datenbank.factory.LogicFactory#getLogicObject()
57 */
58 public LogicObject getLogicObject() {
59 return new InformationsAnzeiger(datasource);
60 } // end of getLogicObject
61 } // end of class
62
|