1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.fhw.cabaweb.data.abstracts;
21
22 import java.util.Collection;
23 import java.util.Locale;
24
25 import org.apache.commons.logging.Log;
26 import org.apache.commons.logging.LogFactory;
27 import org.apache.ojb.broker.PersistenceBroker;
28 import org.apache.ojb.broker.PersistenceBrokerFactory;
29
30 import org.fhw.cabaweb.ojb.interfaces.UseCase;
31
32 /***
33 * Abstrakte Klasse für die Daten Kapselung
34 *
35 * @author <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
36 * @version Version 1.0 07.05.2004
37 */
38 public abstract class AbstractDataInterface
39 {
40 /***
41 * The <code>Log</code> instance for this application.
42 */
43 protected Log log = LogFactory.getLog("org.fhw.cabaweb.data.abstracts.AbstractDataInterface");
44
45 /*** Instanz des Persistenzbrokers */
46 protected PersistenceBroker broker;
47
48 /*** Instanz der aktuellen Locale */
49 protected Locale locale;
50
51 /*** Instanz des OJB UseCase Interfaces */
52 protected UseCase useCase;
53
54 /***
55 * AbstractDataInterface Konstruktor.
56 *
57 * Locale Default de_DE
58 */
59 public AbstractDataInterface()
60 {
61 this.locale = new Locale("de", "DE");
62
63 if (log.isDebugEnabled())
64 {
65 log.debug(" Set Default Locale " + locale.getDisplayLanguage());
66 }
67 }
68
69 /***
70 * AbstractDataInterface Konstruktor.
71 *
72 * @param locale Die Locale (Sprache)
73 */
74 public AbstractDataInterface(Locale locale)
75 {
76 if (locale == null)
77 locale = new Locale("de", "DE");
78
79 if (log.isDebugEnabled())
80 {
81 log.debug(" Set Locale " + locale.getDisplayLanguage());
82 }
83
84 this.locale = locale;
85 }
86
87 /***
88 * Holt die Locale Variable.
89 *
90 * @return locale Die Locale (Sprache)
91 */
92 protected Locale getLocale()
93 {
94 return this.locale;
95 }
96
97 /***
98 * Setzt die Locale Variable.
99 *
100 * @param locale Die Locale (Sprache)
101 */
102 public void setLocale(Locale locale)
103 {
104 if (locale == null)
105 locale = new Locale("de", "DE");
106
107 if (log.isDebugEnabled())
108 {
109 log.debug(" Set Locale " + locale.getDisplayLanguage());
110 }
111
112 this.locale = locale;
113 }
114
115 /***
116 * Methode zum setzen des PersistenceBorkers. MUSS vor jeder Aktion ausgeführt werden.
117 */
118 protected void setUp()
119 {
120 this.broker = null;
121
122 try
123 {
124 this.broker = PersistenceBrokerFactory.defaultPersistenceBroker();
125 }
126 catch (Throwable t)
127 {
128 t.printStackTrace();
129 }
130 }
131
132 /***
133 * Methode zum löschen des PersistenceBorkers. MUSS vor nach Aktion ausgeführt werden.
134 */
135 protected void tearDown()
136 {
137 try
138 {
139 broker.close();
140 }
141 catch (Throwable t)
142 {
143 t.printStackTrace();
144 }
145 }
146
147 /***
148 * Umsetzen der Daten des gelieferten Objekts und Delegation der weiteren
149 * Verarbeitung an die OJB Klassen.
150 *
151 * @param arg Das Objekt das gespeichert werden soll
152 * @return Gibt true zurueck wenn der Vorgang erfolgreich abgeschlossen wurde, sonst false.
153 */
154 public abstract boolean erzeugen(Object arg);
155
156 /***
157 * Umsetzen der Daten des gelieferten Objekts und Delegation der weiteren
158 * Verarbeitung an die OJB Klassen.
159 * Dass Objekt wird anhand seines Primary Keys indentifiziert.
160 *
161 * @param arg Das Objekt das editiert werden soll
162 * @return Gibt true zurueck wenn der Vorgang erfolgreich abgeschlossen wurde, sonst false.
163 */
164 public abstract boolean editieren(Object arg);
165
166 /***
167 * Methode zum loeschen eines Objekts.
168 * Dass Objekt wird anhand seines Primary Keys indentifiziert.
169 *
170 * @param arg Das Objekt das gelöscht werden soll
171 * @return Gibt true zurueck wenn der Vorgang erfolgreich abgeschlossen wurde, sonst false.
172 */
173 public abstract boolean loeschen(Object arg);
174
175 /***
176 * Methode zum suchen eines Objekts.
177 * Dass Objekt wird anhand seines Primary Keys indentifiziert.
178 *
179 * @param arg Das Objekt mit den PrimaryKeys nach denen gesucht werden soll
180 * @return Object mit dem Inhalt des gesuchten Objekts
181 */
182 protected abstract Object sucheObjekt(Object arg);
183
184 /***
185 * Methode zum suchen mehrerer Objekte
186 *
187 * @param arg Das Objekt mit den Argumenten nach denen gesucht werden soll
188 * @return Collection mit den gefundenen Objekten
189 */
190 protected abstract Collection sucheObjekte(Object arg);
191
192 /***
193 * Methode zur Suche aller Objekte
194 *
195 * @return Collection mit allen Objekten
196 */
197 public abstract Collection sucheAlle();
198
199 /***
200 * Methode zum Aufräumen des Transaktionscaches
201 *
202 * @return Wurde der Cache aufgeräumt ??
203 */
204 public abstract boolean clearCache();
205
206 /***
207 * Destruktor - wird (vielleicht) vom Garbage Collector aufgerufen
208 */
209 protected void finalize()
210 {
211 }
212 }