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.ojb.broker.metadata.FieldHelper;
26  import org.apache.ojb.broker.query.Criteria;
27  import org.apache.ojb.broker.PersistenceBroker;
28  
29  import org.fhw.cabaweb.ojb.abstracts.AbstractUseCase;
30  import org.fhw.cabaweb.ojb.dataobjects.Projekte;
31  import org.fhw.cabaweb.ojb.dataobjects.Projektgruppen;
32  
33  /***
34   * Abstrakte Klasse f&uuml;r die OJB Kapselung der Datenbankoperationen
35   *
36   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
37   * @version Version 1.0 16.05.2004
38   */
39  public class UseCaseProjektgruppen extends AbstractUseCase
40  {
41      /*** Konstruktor
42       * 
43       * @param broker Instanz des Persistence Brokers
44       */
45      public UseCaseProjektgruppen(PersistenceBroker broker)
46      {
47          super(broker);
48      }
49  
50      /***
51        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#erzeugen(java.lang.Object)
52        */
53      public final boolean erzeugen(Object arg)
54      {
55          Projektgruppen newProjektgruppen = (Projektgruppen) arg;
56          return anlegen(newProjektgruppen);
57      }
58  
59      /***
60        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#editieren(java.lang.Object)
61        */
62      public final boolean editieren(Object arg)
63      {
64          boolean retval = true;
65          Projektgruppen editProjektgruppenTemp = (Projektgruppen) arg;
66          Projektgruppen editProjektgruppen = null;
67  
68          Collection liste =  null;
69  
70          Criteria criteria = new Criteria();
71  
72          if (editProjektgruppenTemp.getGruppennummer() != null)
73              criteria.addEqualTo("Gruppennummer", editProjektgruppenTemp.getGruppennummer());
74          if (editProjektgruppenTemp.getProjekte() != null && ((Projekte) editProjektgruppenTemp.getProjekte()).getProjektnummer() != null)
75              criteria.addEqualTo("Projektnummer", (editProjektgruppenTemp.getProjekte()).getProjektnummer());
76  
77          liste = sucheQBC(Projektgruppen.class, criteria, null);
78          
79          if (log.isDebugEnabled()) 
80          {
81              log.debug(" Found " + liste.size() + " Datasets");
82          }
83  
84          if(liste != null && liste.size() == 1)
85              editProjektgruppen = (Projektgruppen) liste.iterator().next();
86  
87          // Editieren des existierenden Eintrags
88          editProjektgruppen.setGruppenname(editProjektgruppenTemp.getGruppenname());
89          editProjektgruppen.setAktiv(editProjektgruppenTemp.getAktiv());
90  
91          retval = beginTransaction();
92          if(retval != false)
93              retval = storeAndEndTransaction(editProjektgruppen);
94          
95          return retval;
96      }
97  
98      /***
99        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#loeschen(java.lang.Object)
100       */
101     public final boolean loeschen(Object arg)
102     {
103         boolean retval = true;
104 
105         Projektgruppen deleteProjektgruppen = (Projektgruppen) arg;
106 
107         Collection liste =  null;
108         Projektgruppen objekt =  null;
109 
110         Criteria criteria = new Criteria();
111 
112         if (deleteProjektgruppen.getGruppennummer() != null)
113             criteria.addEqualTo("Gruppennummer", deleteProjektgruppen.getGruppennummer());
114         if (((Projekte) deleteProjektgruppen.getProjekte()).getProjektnummer() != null)
115             criteria.addEqualTo("Projektnummer", (deleteProjektgruppen.getProjekte()).getProjektnummer());
116 
117         liste = sucheQBC(Projektgruppen.class, criteria, null);
118         
119         if (log.isDebugEnabled()) 
120         {
121             log.debug(" Found " + liste.size() + " Datasets");
122         }
123 
124         if(liste != null && liste.size() == 1)
125             objekt = (Projektgruppen) liste.iterator().next();
126 
127         retval = beginTransaction();
128         if(retval != false)
129             retval = deleteAndEndTransaction(objekt);
130         
131         return retval;
132     }
133 
134     /***
135       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekt(java.lang.Object)
136       */
137 	public final Object sucheObjekt(Object arg)
138 	{
139         Projektgruppen suchProjektgruppen = (Projektgruppen) arg;
140         Collection liste =  null;
141         Object rueckgabeWert =  null;
142 
143         Criteria criteria = new Criteria();
144 
145         if (suchProjektgruppen.getGruppennummer() != null)
146             criteria.addEqualTo("Gruppennummer", suchProjektgruppen.getGruppennummer());
147         if (suchProjektgruppen.getProjekte() != null && ((Projekte) suchProjektgruppen.getProjekte()).getProjektnummer() != null)
148             criteria.addEqualTo("Projektnummer", (suchProjektgruppen.getProjekte()).getProjektnummer());
149 
150         liste = sucheQBC(Projektgruppen.class, criteria, null);
151         
152         if(liste != null && liste.size() == 1)
153         rueckgabeWert = (Projektgruppen) liste.iterator().next();
154 
155         if (log.isDebugEnabled()) 
156         {
157             log.debug(" Found " + liste.size() + " Datasets -> Return " + rueckgabeWert);
158         }
159 
160         return rueckgabeWert;
161 	}
162 
163     /***
164       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekte(java.lang.Object)
165       */
166 	public final Collection sucheObjekte(Object arg)
167 	{
168         Projektgruppen suchProjektgruppen = (Projektgruppen) arg;
169         Collection rueckgabeWert =  null;
170         ArrayList orderBy = new ArrayList();
171 
172         Criteria criteria = new Criteria();
173 
174         if (suchProjektgruppen.getGruppennummer() != null)
175             criteria.addEqualTo("Gruppennummer", suchProjektgruppen.getGruppennummer());
176         if (suchProjektgruppen.getProjekte() != null && ((Projekte) suchProjektgruppen.getProjekte()).getProjektnummer() != null)
177             criteria.addEqualTo("Projektnummer", (suchProjektgruppen.getProjekte()).getProjektnummer());
178         if (suchProjektgruppen.getGruppenname() != null)
179             criteria.addLike("Gruppenname", "%"+suchProjektgruppen.getGruppenname()+"%");
180         if (suchProjektgruppen.getPasswort() != null)
181             criteria.addEqualTo("Passwort", suchProjektgruppen.getPasswort());
182         if (suchProjektgruppen.getAktiv() != null)
183             criteria.addEqualTo("Aktiv", suchProjektgruppen.getAktiv());
184 
185         orderBy.add(0, new FieldHelper("Projektnummer", true));
186         orderBy.add(1, new FieldHelper("Gruppennummer", true));
187 
188         rueckgabeWert = sucheQBC(Projektgruppen.class, criteria, orderBy);
189 
190         if (log.isDebugEnabled()) 
191         {
192             log.debug(" Found " + rueckgabeWert.size() + " Objects.");
193         }
194 
195         return rueckgabeWert;
196 	}
197 }