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.Reporterzeugung;
32  import org.fhw.cabaweb.ojb.dataobjects.Sprachen;
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 17.05.2004
39   */
40  public class UseCaseReporterzeugung extends AbstractUseCase
41  {
42      /*** Konstruktor
43       * 
44       * @param broker Instanz des Persistence Brokers
45       */
46      public UseCaseReporterzeugung(PersistenceBroker broker)
47      {
48          super(broker);
49      }
50  
51      /***
52        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#erzeugen(java.lang.Object)
53        */
54      public final boolean erzeugen(Object arg)
55      {
56          Reporterzeugung newReporterzeugung = (Reporterzeugung) arg;
57          return anlegen(newReporterzeugung);
58      }
59  
60      /***
61        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#editieren(java.lang.Object)
62        */
63      public final boolean editieren(Object arg)
64      {
65          boolean retval = true;
66          Reporterzeugung editReporterzeugungTemp = (Reporterzeugung) arg;
67          Reporterzeugung editReporterzeugung = null;
68  
69          Collection liste =  null;
70  
71          Criteria criteria = new Criteria();
72  
73          if (editReporterzeugungTemp.getReportnamen().getReportnummer() != null)
74              criteria.addEqualTo("Reportnummer", editReporterzeugungTemp.getReportnamen().getReportnummer());
75          if (((Projekte) editReporterzeugungTemp.getReportnamen().getProjekte()).getProjektnummer() != null)
76              criteria.addEqualTo("Projektnummer", (editReporterzeugungTemp.getReportnamen().getProjekte()).getProjektnummer());
77          if (editReporterzeugungTemp.getSeite() != null)
78              criteria.addEqualTo("Seite", editReporterzeugungTemp.getSeite());
79          if (editReporterzeugungTemp.getPosition() != null)
80              criteria.addEqualTo("Position", editReporterzeugungTemp.getPosition());
81          if (((Sprachen) editReporterzeugungTemp.getSprachen()).getSprachnummer() != null)
82              criteria.addEqualTo("Sprachnummer", (editReporterzeugungTemp.getSprachen()).getSprachnummer());
83  
84          liste = sucheQBC(Reporterzeugung.class, criteria, null);
85          if(liste != null && liste.size() == 1)
86              editReporterzeugung = (Reporterzeugung) liste.iterator().next();
87  
88          // Editieren des existierenden Eintrags
89          editReporterzeugung.setGruppierungsname(editReporterzeugungTemp.getGruppierungsname());
90          editReporterzeugung.setUntergruppierungsname(editReporterzeugungTemp.getUntergruppierungsname());
91          editReporterzeugung.setFeldname(editReporterzeugungTemp.getFeldname());
92          editReporterzeugung.setText(editReporterzeugungTemp.getText());
93  
94          retval = beginTransaction();
95          if(retval != false)
96              retval = storeAndEndTransaction(editReporterzeugung);
97          
98          return retval;
99      }
100 
101     /***
102       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#loeschen(java.lang.Object)
103       */
104     public final boolean loeschen(Object arg)
105     {
106         boolean retval = true;
107 
108         Reporterzeugung deleteReporterzeugung = (Reporterzeugung) arg;
109 
110         Collection liste =  null;
111         Reporterzeugung objekt =  null;
112 
113         Criteria criteria = new Criteria();
114 
115         if (deleteReporterzeugung.getReportnamen().getReportnummer() != null)
116             criteria.addEqualTo("Reportnummer", deleteReporterzeugung.getReportnamen().getReportnummer());
117         if (((Projekte) deleteReporterzeugung.getReportnamen().getProjekte()).getProjektnummer() != null)
118             criteria.addEqualTo("Projektnummer", (deleteReporterzeugung.getReportnamen().getProjekte()).getProjektnummer());
119         if (deleteReporterzeugung.getSeite() != null)
120             criteria.addEqualTo("Seite", deleteReporterzeugung.getSeite());
121         if (deleteReporterzeugung.getPosition() != null)
122             criteria.addEqualTo("Position", deleteReporterzeugung.getPosition());
123         if (((Sprachen) deleteReporterzeugung.getSprachen()).getSprachnummer() != null)
124             criteria.addEqualTo("Sprachnummer", (deleteReporterzeugung.getSprachen()).getSprachnummer());
125 
126         liste = sucheQBC(Reporterzeugung.class, criteria, null);
127         if(liste != null && liste.size() == 1)
128             objekt = (Reporterzeugung) liste.iterator().next();
129 
130         retval = beginTransaction();
131         if(retval != false)
132             retval = deleteAndEndTransaction(objekt);
133         
134         return retval;
135     }
136 
137     /***
138       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekt(java.lang.Object)
139       */
140     public final Object sucheObjekt(Object arg)
141     {
142         Reporterzeugung suchReporterzeugung = (Reporterzeugung) arg;
143         Collection liste =  null;
144         Object rueckgabeWert =  null;
145 
146         Criteria criteria = new Criteria();
147 
148         if (suchReporterzeugung.getReportnamen().getReportnummer() != null)
149             criteria.addEqualTo("Reportnummer", suchReporterzeugung.getReportnamen().getReportnummer());
150         if (((Projekte) suchReporterzeugung.getReportnamen().getProjekte()).getProjektnummer() != null)
151             criteria.addEqualTo("Projektnummer", (suchReporterzeugung.getReportnamen().getProjekte()).getProjektnummer());
152         if (suchReporterzeugung.getSeite() != null)
153             criteria.addEqualTo("Seite", suchReporterzeugung.getSeite());
154         if (suchReporterzeugung.getPosition() != null)
155             criteria.addEqualTo("Position", suchReporterzeugung.getPosition());
156         if (((Sprachen) suchReporterzeugung.getSprachen()).getSprachnummer() != null)
157             criteria.addEqualTo("Sprachnummer", (suchReporterzeugung.getSprachen()).getSprachnummer());
158 
159         liste = sucheQBC(Reporterzeugung.class, criteria, null);
160         if(liste != null && liste.size() == 1)
161             rueckgabeWert = (Reporterzeugung) liste.iterator().next();
162 
163         return rueckgabeWert;
164     }
165 
166     /***
167       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekte(java.lang.Object)
168       */
169     public final Collection sucheObjekte(Object arg)
170     {
171         Reporterzeugung suchReporterzeugung = (Reporterzeugung) arg;
172         Collection rueckgabeWert =  null;
173         ArrayList orderBy = new ArrayList();
174 
175         Criteria criteria = new Criteria();
176 
177         if (suchReporterzeugung.getReportnamen() != null && suchReporterzeugung.getReportnamen().getReportnummer() != null)
178             criteria.addEqualTo("Reportnummer", suchReporterzeugung.getReportnamen().getReportnummer());
179         if (suchReporterzeugung.getReportnamen() != null && suchReporterzeugung.getReportnamen().getProjekte() != null && ((Projekte) suchReporterzeugung.getReportnamen().getProjekte()).getProjektnummer() != null)
180             criteria.addEqualTo("Projektnummer", (suchReporterzeugung.getReportnamen().getProjekte()).getProjektnummer());
181         if (suchReporterzeugung.getSeite() != null)
182             criteria.addEqualTo("Seite", suchReporterzeugung.getSeite());
183         if (suchReporterzeugung.getPosition() != null)
184             criteria.addEqualTo("Position", suchReporterzeugung.getPosition());
185         if (suchReporterzeugung.getSprachen() != null && ((Sprachen) suchReporterzeugung.getSprachen()).getSprachnummer() != null)
186             criteria.addEqualTo("Sprachnummer", (suchReporterzeugung.getSprachen()).getSprachnummer());
187         if (suchReporterzeugung.getGruppierungsname() != null)
188             criteria.addLike("Gruppierungsname", "%"+suchReporterzeugung.getGruppierungsname()+"%");
189         if (suchReporterzeugung.getUntergruppierungsname() != null)
190             criteria.addLike("Untergruppierungsname", "%"+suchReporterzeugung.getUntergruppierungsname()+"%");
191         if (suchReporterzeugung.getFeldname() != null)
192             criteria.addLike("Feldname", "%"+suchReporterzeugung.getFeldname()+"%");
193         if (suchReporterzeugung.getText() != null)
194             criteria.addLike("Text", "%"+suchReporterzeugung.getText()+"%");
195 
196         orderBy.add(0, new FieldHelper("Reportnummer", true));
197         orderBy.add(1, new FieldHelper("Projektnummer", true));
198         orderBy.add(2, new FieldHelper("Seite", true));
199         orderBy.add(3, new FieldHelper("Position", true));
200 
201         rueckgabeWert = sucheQBC(Reporterzeugung.class, criteria, orderBy);
202 
203         return rueckgabeWert;
204     }
205 }