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.Projektbeschreibungen;
31  import org.fhw.cabaweb.ojb.dataobjects.Projekte;
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 13.04.2004
39   */
40  public class UseCaseProjektbeschreibungen extends AbstractUseCase
41  {
42      /*** Konstruktor
43       * 
44       * @param broker Instanz des Persistence Brokers
45       */
46      public UseCaseProjektbeschreibungen(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          Projektbeschreibungen newProjektbeschreibungen = (Projektbeschreibungen) arg;
57          return anlegen(newProjektbeschreibungen);
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          Projektbeschreibungen editProjektbeschreibungenTemp = (Projektbeschreibungen) arg;
67          Projektbeschreibungen editProjektbeschreibungen = null;
68  
69          Collection liste =  null;
70  
71          Criteria criteria = new Criteria();
72  
73          if (((Projekte) editProjektbeschreibungenTemp.getProjekte()).getProjektnummer() != null)
74              criteria.addEqualTo("Projektnummer", (editProjektbeschreibungenTemp.getProjekte()).getProjektnummer());
75          if (((Sprachen) editProjektbeschreibungenTemp.getSprachen()).getSprachnummer() != null)
76              criteria.addEqualTo("Sprachnummer", (editProjektbeschreibungenTemp.getSprachen()).getSprachnummer());
77  
78          liste = sucheQBC(Projektbeschreibungen.class, criteria, null);
79          if(liste != null && liste.size() == 1)
80              editProjektbeschreibungen = (Projektbeschreibungen) liste.iterator().next();
81  
82          // Editieren des existierenden Eintrags
83          editProjektbeschreibungen.setKurzbeschreibung(editProjektbeschreibungenTemp.getKurzbeschreibung());
84          editProjektbeschreibungen.setBeschreibung(editProjektbeschreibungenTemp.getBeschreibung());
85  
86          retval = beginTransaction();
87          if(retval != false)
88              retval = storeAndEndTransaction(editProjektbeschreibungen);
89          
90          return retval;
91      }
92  
93      /***
94        * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#loeschen(java.lang.Object)
95        */
96      public final boolean loeschen(Object arg)
97      {
98          boolean retval = true;
99  
100         Projektbeschreibungen deleteProjektbeschreibungen = (Projektbeschreibungen) arg;
101 
102         Collection liste =  null;
103         Projektbeschreibungen objekt =  null;
104 
105         Criteria criteria = new Criteria();
106 
107         if (((Projekte) deleteProjektbeschreibungen.getProjekte()).getProjektnummer() != null)
108             criteria.addEqualTo("Projektnummer", (deleteProjektbeschreibungen.getProjekte()).getProjektnummer());
109         if (((Sprachen) deleteProjektbeschreibungen.getSprachen()).getSprachnummer() != null)
110             criteria.addEqualTo("Sprachnummer", (deleteProjektbeschreibungen.getSprachen()).getSprachnummer());
111 
112         liste = sucheQBC(Projektbeschreibungen.class, criteria, null);
113         if(liste != null && liste.size() == 1)
114         objekt = (Projektbeschreibungen) liste.iterator().next();
115 
116         retval = beginTransaction();
117         if(retval != false)
118             retval = deleteAndEndTransaction(objekt);
119         
120         return retval;
121     }
122 
123     /***
124       * @see org.fhw.cabaweb.ojb.abstracts.AbstractUseCase#sucheObjekt(java.lang.Object)
125       */
126 	public final Object sucheObjekt(Object arg)
127 	{
128         Projektbeschreibungen suchProjektbeschreibungen = (Projektbeschreibungen) arg;
129         Collection liste =  null;
130         Object rueckgabeWert =  null;
131 
132         Criteria criteria = new Criteria();
133 
134         if (((Projekte) suchProjektbeschreibungen.getProjekte()).getProjektnummer() != null)
135             criteria.addEqualTo("Projektnummer", (suchProjektbeschreibungen.getProjekte()).getProjektnummer());
136         if (((Sprachen) suchProjektbeschreibungen.getSprachen()).getSprachnummer() != null)
137             criteria.addEqualTo("Sprachnummer", (suchProjektbeschreibungen.getSprachen()).getSprachnummer());
138 
139         liste = sucheQBC(Projektbeschreibungen.class, criteria, null);
140         if(liste != null && liste.size() == 1)
141             rueckgabeWert = (Projektbeschreibungen) liste.iterator().next();
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         Projektbeschreibungen suchProjektbeschreibungen = (Projektbeschreibungen) arg;
152         Collection rueckgabeWert =  null;
153         ArrayList orderBy = new ArrayList();
154 
155         Criteria criteria = new Criteria();
156 
157         if (suchProjektbeschreibungen.getProjekte() != null && ((Projekte) suchProjektbeschreibungen.getProjekte()).getProjektnummer() != null)
158             criteria.addEqualTo("Projektnummer", (suchProjektbeschreibungen.getProjekte()).getProjektnummer());
159         if (suchProjektbeschreibungen.getSprachen() != null && ((Sprachen) suchProjektbeschreibungen.getSprachen()).getSprachnummer() != null)
160             criteria.addEqualTo("Sprachnummer", (suchProjektbeschreibungen.getSprachen()).getSprachnummer());
161         if (suchProjektbeschreibungen.getKurzbeschreibung() != null)
162             criteria.addLike("Kurzbeschreibung", "%"+suchProjektbeschreibungen.getKurzbeschreibung()+"%");
163         if (suchProjektbeschreibungen.getBeschreibung() != null)
164             criteria.addLike("Beschreibung", "%"+suchProjektbeschreibungen.getBeschreibung()+"%");
165             
166         orderBy.add(0, new FieldHelper("Projektnummer", true));
167         orderBy.add(1, new FieldHelper("Sprachnummer", true));
168 
169         rueckgabeWert = sucheQBC(Projektbeschreibungen.class, criteria, orderBy);
170 
171         return rueckgabeWert;
172 	}
173 }