InformationsAnzeigerFactory.java
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 == nullinstance = 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