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  
32  /***
33   * Abstrakte Klasse f&uuml;r die OJB Kapselung der Datenbankoperationen
34   *
35   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
36   * @version Version 1.0 13.04.2004
37   */
38  public class UseCaseProjekte extends AbstractUseCase
39  {
40      /*** Konstruktor
41       * 
42       * @param broker Instanz des Persistence Brokers
43       */
44      public UseCaseProjekte(PersistenceBroker broker)
45      {
46          super(broker);
47      }
48  
49  	/***
50  	 * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#erzeugen(java.lang.Object)
51  	 */
52      public final boolean erzeugen(Object arg)
53      {
54          Projekte newProjekt = (Projekte) arg;
55          return anlegen(newProjekt);
56      }
57  
58      /***
59        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#editieren(java.lang.Object)
60        */
61      public final boolean editieren(Object arg)
62      {
63          boolean retval = true;
64          Projekte editProjektTemp = (Projekte) arg;
65          Projekte editProjekt = null;
66  
67          retval = beginTransaction();
68  
69          editProjekt = (Projekte) sucheQBE(editProjektTemp);
70  
71          // Editieren des existierenden Eintrags
72          editProjekt.setProjektname(editProjektTemp.getProjektname());
73          editProjekt.setAktuellesQuartal(editProjektTemp.getAktuellesQuartal());
74          editProjekt.setAktiv(editProjektTemp.getAktiv());
75  
76          if(retval != false)
77              retval = storeAndEndTransaction(editProjekt);
78          
79          return retval;
80      }
81  
82      /***
83        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#loeschen(java.lang.Object)
84        */
85      public final boolean loeschen(Object arg)
86      {
87          boolean retval = true;
88  
89          Projekte deleteProjekt = (Projekte) arg;
90  
91          retval = beginTransaction();
92  
93          deleteProjekt = (Projekte) sucheQBE(deleteProjekt);
94  
95          if(retval != false)
96              retval = deleteAndEndTransaction(deleteProjekt);
97          
98          return retval;
99      }
100 
101     /***
102       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekt(java.lang.Object)
103       */
104 	public final Object sucheObjekt(Object arg)
105 	{
106         Projekte suchProjekt = (Projekte) arg;
107         Object rueckgabeWert =  null;
108 
109         beginTransaction();
110 
111         suchProjekt = (Projekte) sucheQBE(suchProjekt);
112 
113         endTransaction();
114 
115         rueckgabeWert = suchProjekt;
116 
117         return rueckgabeWert;
118 	}
119 
120     /***
121       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekte(java.lang.Object)
122       */
123 	public final Collection sucheObjekte(Object arg)
124 	{
125         Projekte suchProjekt = (Projekte) arg;
126         Collection rueckgabeWert =  null;
127         ArrayList orderBy = new ArrayList();
128 
129         Criteria criteria = new Criteria();
130 
131         if (suchProjekt.getProjektnummer() != null)
132             criteria.addEqualTo("Projektnummer", suchProjekt.getProjektnummer());
133         if (suchProjekt.getProjektname() != null)
134             criteria.addLike("Projektname", "%"+suchProjekt.getProjektname()+"%");
135         if (suchProjekt.getAktuellesQuartal() != null)
136             criteria.addEqualTo("AktuellesQuartal", suchProjekt.getAktuellesQuartal());
137         if (suchProjekt.getAktiv() != null)
138             criteria.addEqualTo("Aktiv", suchProjekt.getAktiv());
139             
140         orderBy.add(0, new FieldHelper("Projektnummer", true));
141 
142         rueckgabeWert = sucheQBC(Projekte.class, criteria, orderBy);
143 
144         return rueckgabeWert;
145 	}
146 }