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.ojb;
21  
22  import java.util.ArrayList;
23  import java.util.Collection;
24  
25  import org.apache.commons.logging.Log;
26  import org.apache.commons.logging.LogFactory;
27  import org.apache.ojb.broker.metadata.FieldHelper;
28  import org.apache.ojb.broker.query.Criteria;
29  import org.apache.ojb.broker.PersistenceBroker;
30  
31  import org.fhw.cabaweb.ojb.abstracts.AbstractUseCase;
32  import org.fhw.cabaweb.ojb.dataobjects.Gruppenmitglieder;
33  
34  /***
35   * Abstrakte Klasse f&uuml;r die OJB Kapselung der Datenbankoperationen
36   *
37   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
38   * @version Version 1.0 18.05.2004
39   */
40  public class UseCaseGruppenmitglieder extends AbstractUseCase
41  {
42      /***
43       * The <code>Log</code> instance for this application.
44       */
45      private Log log = LogFactory.getLog("org.fhw.cabaweb.ojb.UseCaseGruppenmitglieder");
46  
47      /*** Konstruktor
48       * 
49       * @param broker Instanz des Persistence Brokers
50       */
51      public UseCaseGruppenmitglieder(PersistenceBroker broker)
52      {
53          super(broker);
54      }
55  
56      /***
57        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#erzeugen(java.lang.Object)
58        */
59      public final boolean erzeugen(Object arg)
60      {
61          boolean retval = true;
62  
63          Gruppenmitglieder newGruppenmitglieder = (Gruppenmitglieder) arg;
64  
65          if (log.isDebugEnabled()) 
66          {
67              log.debug(" Anlegen Objekt: " + newGruppenmitglieder);
68          }
69          
70          retval = anlegen(newGruppenmitglieder);
71          
72          if (log.isDebugEnabled()) 
73          {
74              log.debug(" Anlegen Done: " + retval);
75          }
76  
77          return retval;
78      }
79  
80      /***
81        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#editieren(java.lang.Object)
82        */
83      public final boolean editieren(Object arg)
84      {
85          boolean retval = true;
86  
87          Gruppenmitglieder editGruppenmitgliederTemp = (Gruppenmitglieder) arg;
88          Gruppenmitglieder editGruppenmitglieder = null;
89  
90          Collection liste =  null;
91  
92          Criteria criteria = new Criteria();
93  
94          if (editGruppenmitgliederTemp.getMitgliedsnummer() != null)
95              criteria.addEqualTo("Mitgliedsnummer", editGruppenmitgliederTemp.getMitgliedsnummer());
96          if (editGruppenmitgliederTemp.getBenutzerrolle() != null && editGruppenmitgliederTemp.getBenutzerrolle().getRollenID() != null)
97              criteria.addEqualTo("RollenID", editGruppenmitgliederTemp.getBenutzerrolle().getRollenID());
98          if (editGruppenmitgliederTemp.getProjektgruppe() != null && editGruppenmitgliederTemp.getProjektgruppe().getProjekte() != null && 
99              editGruppenmitgliederTemp.getProjektgruppe().getProjekte().getProjektnummer() != null)
100             criteria.addEqualTo("Projektnummer", editGruppenmitgliederTemp.getProjektgruppe().getProjekte().getProjektnummer());
101         if (editGruppenmitgliederTemp.getProjektgruppe() != null && editGruppenmitgliederTemp.getProjektgruppe().getGruppennummer() != null)
102             criteria.addEqualTo("Gruppennummer", editGruppenmitgliederTemp.getProjektgruppe().getGruppennummer());
103         
104         liste = sucheQBC(Gruppenmitglieder.class, criteria, null);
105         if(liste != null && liste.size() == 1)
106             editGruppenmitglieder = (Gruppenmitglieder) liste.iterator().next();
107 
108         // Editieren des existierenden Eintrags
109         editGruppenmitglieder.setIstZugeordnet(editGruppenmitgliederTemp.getIstZugeordnet());
110         editGruppenmitglieder.setLoginName(editGruppenmitgliederTemp.getLoginName());
111         editGruppenmitglieder.setMitgliedsname(editGruppenmitgliederTemp.getMitgliedsname());
112         editGruppenmitglieder.setMitgliedsvorname(editGruppenmitgliederTemp.getMitgliedsvorname());
113         editGruppenmitglieder.setMitgliedsadresse1(editGruppenmitgliederTemp.getMitgliedsadresse1());
114         editGruppenmitglieder.setMitgliedsadresse2(editGruppenmitgliederTemp.getMitgliedsadresse2());
115         editGruppenmitglieder.setMitgliedsplz(editGruppenmitgliederTemp.getMitgliedsplz());
116         editGruppenmitglieder.setMitgliedsort(editGruppenmitgliederTemp.getMitgliedsort());
117         editGruppenmitglieder.setMitgliedskennzeichen(editGruppenmitgliederTemp.getMitgliedskennzeichen());
118         editGruppenmitglieder.setMitgliedsemailadresse(editGruppenmitgliederTemp.getMitgliedsemailadresse());
119         editGruppenmitglieder.setPassworthash(editGruppenmitgliederTemp.getPassworthash());
120         editGruppenmitglieder.setAktiv(editGruppenmitgliederTemp.getAktiv());
121         editGruppenmitglieder.setLetzterlogin(editGruppenmitgliederTemp.getLetzterlogin());
122 
123         retval = beginTransaction();
124         if(retval != false)
125             retval = storeAndEndTransaction(editGruppenmitglieder);
126         
127         if (log.isDebugEnabled()) 
128         {
129             log.debug(" Criteria: " + criteria);
130             log.debug(" Edit Done: " + retval);
131         }
132         
133         return retval;
134     }
135 
136     /***
137       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#loeschen(java.lang.Object)
138       */
139     public final boolean loeschen(Object arg)
140     {
141         boolean retval = true;
142 
143         Gruppenmitglieder deleteGruppenmitglieder = (Gruppenmitglieder) arg;
144 
145         Collection liste =  null;
146         Gruppenmitglieder objekt =  null;
147 
148         Criteria criteria = new Criteria();
149 
150         if (deleteGruppenmitglieder.getMitgliedsnummer() != null)
151             criteria.addEqualTo("Mitgliedsnummer", deleteGruppenmitglieder.getMitgliedsnummer());
152         if (deleteGruppenmitglieder.getBenutzerrolle() != null && deleteGruppenmitglieder.getBenutzerrolle().getRollenID() != null)
153             criteria.addEqualTo("RollenID", deleteGruppenmitglieder.getBenutzerrolle().getRollenID());
154         if (deleteGruppenmitglieder.getProjektgruppe() != null && deleteGruppenmitglieder.getProjektgruppe().getProjekte() != null && 
155             deleteGruppenmitglieder.getProjektgruppe().getProjekte().getProjektnummer() != null)
156             criteria.addEqualTo("Projektnummer", deleteGruppenmitglieder.getProjektgruppe().getProjekte().getProjektnummer());
157         if (deleteGruppenmitglieder.getProjektgruppe() != null && deleteGruppenmitglieder.getProjektgruppe().getGruppennummer() != null)
158             criteria.addEqualTo("Gruppennummer", deleteGruppenmitglieder.getProjektgruppe().getGruppennummer());
159 
160         liste = sucheQBC(Gruppenmitglieder.class, criteria, null);
161         if(liste != null && liste.size() == 1)
162             objekt = (Gruppenmitglieder) liste.iterator().next();
163 
164         retval = beginTransaction();
165         if(retval != false)
166         retval = deleteAndEndTransaction(objekt);
167         
168         if (log.isDebugEnabled()) 
169         {
170             log.debug(" Criteria: " + criteria);
171             log.debug(" Delete Done: " + retval);
172         }
173 
174         return retval;
175     }
176 
177     /***
178       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekt(java.lang.Object)
179       */
180     public final Object sucheObjekt(Object arg)
181     {
182         Gruppenmitglieder suchGruppenmitglieder = (Gruppenmitglieder) arg;
183         Collection liste =  null;
184         Object rueckgabeWert =  null;
185 
186         Criteria criteria = new Criteria();
187 
188         if (suchGruppenmitglieder.getMitgliedsnummer() != null)
189             criteria.addEqualTo("Mitgliedsnummer", suchGruppenmitglieder.getMitgliedsnummer());
190         if (suchGruppenmitglieder.getBenutzerrolle() != null && suchGruppenmitglieder.getBenutzerrolle().getRollenID() != null)
191             criteria.addEqualTo("RollenID", suchGruppenmitglieder.getBenutzerrolle().getRollenID());
192         if (suchGruppenmitglieder.getProjektgruppe() != null && suchGruppenmitglieder.getProjektgruppe().getProjekte() != null && 
193             suchGruppenmitglieder.getProjektgruppe().getProjekte().getProjektnummer() != null)
194             criteria.addEqualTo("Projektnummer", suchGruppenmitglieder.getProjektgruppe().getProjekte().getProjektnummer());
195         if (suchGruppenmitglieder.getProjektgruppe() != null && suchGruppenmitglieder.getProjektgruppe().getGruppennummer() != null)
196             criteria.addEqualTo("Gruppennummer", suchGruppenmitglieder.getProjektgruppe().getGruppennummer());
197 
198         liste = sucheQBC(Gruppenmitglieder.class, criteria, null);
199         if(liste != null && liste.size() == 1)
200             rueckgabeWert = (Gruppenmitglieder) liste.iterator().next();
201 
202         if (log.isDebugEnabled()) 
203         {
204             log.debug(" Criteria: " + criteria);
205             log.debug(" Object: " + rueckgabeWert);
206         }
207 
208         return rueckgabeWert;
209     }
210 
211     /***
212       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekte(java.lang.Object)
213       */
214     public final Collection sucheObjekte(Object arg)
215     {
216         Gruppenmitglieder suchGruppenmitglieder = (Gruppenmitglieder) arg;
217         Collection rueckgabeWert =  null;
218         ArrayList orderBy = new ArrayList();
219 
220         Criteria criteria = new Criteria();
221             
222         if (suchGruppenmitglieder.getMitgliedsnummer() != null)
223             criteria.addEqualTo("Mitgliedsnummer", suchGruppenmitglieder.getMitgliedsnummer());
224         if (suchGruppenmitglieder.getBenutzerrolle() != null && suchGruppenmitglieder.getBenutzerrolle().getRollenID() != null)
225             criteria.addEqualTo("RollenID", suchGruppenmitglieder.getBenutzerrolle().getRollenID());
226         if (suchGruppenmitglieder.getProjektgruppe() != null && suchGruppenmitglieder.getProjektgruppe().getProjekte() != null && 
227             suchGruppenmitglieder.getProjektgruppe().getProjekte().getProjektnummer() != null)
228             criteria.addEqualTo("Projektnummer", suchGruppenmitglieder.getProjektgruppe().getProjekte().getProjektnummer());
229         if (suchGruppenmitglieder.getProjektgruppe() != null && suchGruppenmitglieder.getProjektgruppe().getGruppennummer() != null)
230             criteria.addEqualTo("Gruppennummer", suchGruppenmitglieder.getProjektgruppe().getGruppennummer());
231         if (suchGruppenmitglieder.getIstZugeordnet() != null)
232             criteria.addEqualTo("IstZugeordnet", suchGruppenmitglieder.getIstZugeordnet());
233         if (suchGruppenmitglieder.getLoginName() != null)
234             criteria.addEqualTo("LogInName", suchGruppenmitglieder.getLoginName());
235         if (suchGruppenmitglieder.getMitgliedsname() != null)
236             criteria.addLike("MitgliedName", "%"+suchGruppenmitglieder.getMitgliedsname()+"%");
237         if (suchGruppenmitglieder.getMitgliedsvorname() != null)
238             criteria.addLike("MitgliedVorname", "%"+suchGruppenmitglieder.getMitgliedsvorname()+"%");
239         if (suchGruppenmitglieder.getMitgliedsadresse1() != null)
240             criteria.addLike("MitgliedAdresse1", "%"+suchGruppenmitglieder.getMitgliedsadresse1()+"%");
241         if (suchGruppenmitglieder.getMitgliedsadresse2() != null)
242             criteria.addLike("MitgliedAdresse2", "%"+suchGruppenmitglieder.getMitgliedsadresse2()+"%");
243         if (suchGruppenmitglieder.getMitgliedsplz() != null)
244             criteria.addEqualTo("MitgliedPLZ", suchGruppenmitglieder.getMitgliedsplz());
245         if (suchGruppenmitglieder.getMitgliedsort() != null)
246             criteria.addLike("MitgliedOrt", "%"+suchGruppenmitglieder.getMitgliedsort()+"%");
247         if (suchGruppenmitglieder.getMitgliedskennzeichen() != null)
248             criteria.addLike("MitgliedKennzeichen", "%"+suchGruppenmitglieder.getMitgliedskennzeichen()+"%");
249         if (suchGruppenmitglieder.getMitgliedsemailadresse() != null)
250             criteria.addLike("MitgliedEMailAdresse", "%"+suchGruppenmitglieder.getMitgliedsemailadresse()+"%");
251         if (suchGruppenmitglieder.getAktiv() != null)
252             criteria.addEqualTo("Aktiv", suchGruppenmitglieder.getAktiv());
253         /* Die folgenden Felder werden für einen Suche nicht verwendet 
254         if (suchGruppenmitglieder.getPassworthash() != null)
255             criteria.addEqualTo("PasswortHash", suchGruppenmitglieder.getPassworthash());
256         if (suchGruppenmitglieder.getLetzterlogin() != null)
257             criteria.addEqualTo("LetzterLogIn", suchGruppenmitglieder.getLetzterlogin());
258         */
259 
260         orderBy.add(0, new FieldHelper("Mitgliedsnummer", true));
261         orderBy.add(1, new FieldHelper("RollenID", true));
262         orderBy.add(2, new FieldHelper("Projektnummer", true));
263         orderBy.add(3, new FieldHelper("Gruppennummer", true));
264 
265         rueckgabeWert = sucheQBC(Gruppenmitglieder.class, criteria, orderBy);
266 
267         if (log.isDebugEnabled()) 
268         {
269             log.debug(" Criteria: " + criteria);
270             log.debug(" Anzahl der Objekte: " + rueckgabeWert.size());
271         }
272 
273         return rueckgabeWert;
274     }
275 }