View Javadoc

1   ////////////////////////////////////////////////////////////////////////////////
2   //CabaWeb
3   //Copyright (C) 2004  Thomas Vogt <Thomas.Vogt@TVC-Software.com>
4   //
5   //This library is free software; you can redistribute it and/or
6   //modify it under the terms of the GNU Lesser General Public
7   //License as published by the Free Software Foundation; either
8   //version 2.1 of the License, or (at your option) any later version.
9   //
10  //This library is distributed in the hope that it will be useful,
11  //but WITHOUT ANY WARRANTY; without even the implied warranty of
12  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  //Lesser General Public License for more details.
14  //
15  //You should have received a copy of the GNU Lesser General Public
16  //License along with this library; if not, write to the Free Software
17  //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
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&uuml;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 }