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.Berechnungsauftraege;
31  import org.fhw.cabaweb.ojb.dataobjects.Projekte;
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 03.05.2004
38   */
39  public class UseCaseBerechnungsauftraege extends AbstractUseCase
40  {
41      /*** Konstruktor
42       * 
43       * @param broker Instanz des Persistence Brokers
44       */
45      public UseCaseBerechnungsauftraege(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          Berechnungsauftraege newBerechnungsauftraege = (Berechnungsauftraege) arg;
56          return anlegen(newBerechnungsauftraege);
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  
66          Berechnungsauftraege editBerechnungsauftraegeTemp = (Berechnungsauftraege) arg;
67          Berechnungsauftraege editBerechnungsauftraege = null;
68  
69          Collection liste =  null;
70  
71          Criteria criteria = new Criteria();
72  
73          if (((Projekte) editBerechnungsauftraegeTemp.getProjekte()).getProjektnummer() != null)
74              criteria.addEqualTo("Projektnummer", (editBerechnungsauftraegeTemp.getProjekte()).getProjektnummer());
75  
76          liste = sucheQBC(Berechnungsauftraege.class, criteria, null);
77          if(liste != null && liste.size() == 1)
78              editBerechnungsauftraege = (Berechnungsauftraege) liste.iterator().next();
79  
80          // Editieren des existierenden Eintrags
81          editBerechnungsauftraege.setDatum(editBerechnungsauftraegeTemp.getDatum());
82          editBerechnungsauftraege.setUhrzeit(editBerechnungsauftraegeTemp.getUhrzeit());
83          editBerechnungsauftraege.setArtDerBerechnung(editBerechnungsauftraegeTemp.getArtDerBerechnung());
84          editBerechnungsauftraege.setWiederholung(editBerechnungsauftraegeTemp.getWiederholung());
85  
86          retval = beginTransaction();
87              
88          if(retval != false)
89              retval = storeAndEndTransaction(editBerechnungsauftraege);
90          
91          return retval;
92      }
93  
94      /***
95        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#loeschen(java.lang.Object)
96        */
97      public final boolean loeschen(Object arg)
98      {
99          boolean retval = true;
100 
101         Berechnungsauftraege deleteBerechnungsauftraege = (Berechnungsauftraege) arg;
102 
103         Collection liste =  null;
104         Berechnungsauftraege objekt =  null;
105 
106         Criteria criteria = new Criteria();
107 
108         if (((Projekte) deleteBerechnungsauftraege.getProjekte()).getProjektnummer() != null)
109             criteria.addEqualTo("Projektnummer", (deleteBerechnungsauftraege.getProjekte()).getProjektnummer());
110 
111         liste = sucheQBC(Berechnungsauftraege.class, criteria, null);
112         if(liste != null && liste.size() == 1)
113             objekt = (Berechnungsauftraege) liste.iterator().next();
114 
115         retval = beginTransaction();
116         if(retval != false)
117             retval = deleteAndEndTransaction(objekt);
118         
119         return retval;
120     }
121 
122    /***
123       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekt(java.lang.Object)
124       */
125 	public final Object sucheObjekt(Object arg)
126 	{
127         Berechnungsauftraege suchBerechnungsauftraege = (Berechnungsauftraege) arg;
128         Collection liste =  null;
129         Object rueckgabeWert =  null;
130 
131         Criteria criteria = new Criteria();
132 
133         if (((Projekte) suchBerechnungsauftraege.getProjekte()).getProjektnummer() != null)
134             criteria.addEqualTo("Projektnummer", (suchBerechnungsauftraege.getProjekte()).getProjektnummer());
135 
136         liste = sucheQBC(Berechnungsauftraege.class, criteria, null);
137         
138         if(liste != null && liste.size() == 1)
139         {
140             rueckgabeWert = (Berechnungsauftraege) liste.iterator().next();
141         }
142 
143         return rueckgabeWert;
144 	}
145 
146     /***
147       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekte(java.lang.Object)
148       */
149 	public final Collection sucheObjekte(Object arg)
150 	{
151         Berechnungsauftraege suchBerechnungsauftraege = (Berechnungsauftraege) arg;
152         Collection rueckgabeWert =  null;
153         ArrayList orderBy = new ArrayList();
154 
155         Criteria criteria = new Criteria();
156 
157         if (suchBerechnungsauftraege.getProjekte() != null && ((Projekte) suchBerechnungsauftraege.getProjekte()).getProjektnummer() != null)
158             criteria.addEqualTo("Projektnummer", (suchBerechnungsauftraege.getProjekte()).getProjektnummer());
159         if (suchBerechnungsauftraege.getDatum() != null)
160             criteria.addLessOrEqualThan("Datum", suchBerechnungsauftraege.getDatum());
161         if (suchBerechnungsauftraege.getUhrzeit() != null)
162             criteria.addLessOrEqualThan("Uhrzeit", suchBerechnungsauftraege.getUhrzeit());
163         if (suchBerechnungsauftraege.getArtDerBerechnung() != null)
164             criteria.addEqualTo("ArtDerBerechnung", suchBerechnungsauftraege.getArtDerBerechnung());
165         if (suchBerechnungsauftraege.getWiederholung() != null)
166             criteria.addEqualTo("Wiederholung", suchBerechnungsauftraege.getWiederholung());
167 
168         orderBy.add(0, new FieldHelper("Projektnummer", true));
169 
170         rueckgabeWert = sucheQBC(Berechnungsauftraege.class, criteria, orderBy);
171 
172         return rueckgabeWert;
173 	}
174 }