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.calculation.common;
21  
22  import java.util.ArrayList;
23  
24  import org.apache.commons.logging.Log;
25  import org.apache.commons.logging.LogFactory;
26  import org.fhw.cabaweb.data.DataInterfaceErgebnissdaten;
27  import org.fhw.cabaweb.data.dataobjects.Ergebniss;
28  import org.fhw.cabaweb.data.dataobjects.Voreinstellung;
29  import org.fhw.cabaweb.math.Common;
30  
31  /***
32   * Klasse f&uuml;r mehrfach verwendete Methoden.
33   *
34   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
35   * @version Version 1.0 18.08.2004
36   */
37  public final class CommonCalculation
38  {
39      /*** Commons Logging Instanz */
40      private static Log log = LogFactory.getLog("org.fhw.cabaweb.calculation.CommonCalculation");
41  
42      /* ----- Konstruktoren / Destruktoren ----- */
43  
44      /***
45       * Standardkonstruktor der nicht zug&auml;nglich sein soll, da dies eine Utility Klasse ist
46       */
47      protected CommonCalculation()
48      {
49          throw new UnsupportedOperationException(); // Aufrufe aus eventuellen SubKlassen verhindern
50      }
51  
52      /***
53       * Sucht in der übergebenen ArrayList nach einem Feldnamen
54       * Gibt das Element zur&uuml;ck (Falls nicht gefunden null)
55       *
56       * @param liste Die Liste
57       * @param feldname Der zu suchende Feldname
58       * @return Der Inhalt
59       */
60      public static final Ergebniss SucheErgebnissFeldname(ArrayList liste, String feldname)
61      {
62          Ergebniss inhalt = null;
63  
64          if (log.isDebugEnabled())
65          {
66              log.debug(" Suche Feld : " + feldname);
67          }
68  
69          for (int i = 0; i < liste.size(); i++)
70          {
71              inhalt = (Ergebniss) liste.get(i);
72  
73              if (inhalt != null && ((String) inhalt.getFeldname()).compareTo(feldname) == 0)
74              {
75                  break;
76              }
77              else
78              {
79                  inhalt = null;
80              }
81          }
82  
83          if (log.isDebugEnabled() && inhalt != null)
84          {
85              log.debug(" Feld : " + inhalt.getFeldname() + "(" + inhalt.getFeldnummer() + ")" + " - Wert : " + inhalt.getStringWert());
86          }
87          else if (inhalt == null)
88          {
89              log.error(" Liste hat keinen Inhalt");
90          }
91  
92          feldname = null;
93  
94          if (inhalt.getObjectWert() == null)
95          {
96              if (inhalt.getTabellenname().compareTo("Ergebnissdaten_Double") == 0)
97              {
98                  inhalt.setObjectWert(new Double(0.0));
99              }
100             else if (inhalt.getTabellenname().compareTo("Ergebnissdaten_Integer") == 0)
101             {
102                 inhalt.setObjectWert(new Integer(0));
103             }
104         }
105 
106         return inhalt;
107     }
108 
109     /***
110      * Sucht in der übergebenen ArrayList nach einem Feldnamen
111      * Gibt das Element zur&uuml;ck (Falls nicht gefunden null)
112      *
113      * @param liste Die Liste
114      * @param feldname Der zu suchende Feldname
115      * @return Der Inhalt
116      */
117     public static final Voreinstellung SucheVoreinstellungFeldname(ArrayList liste, String feldname)
118     {
119         Voreinstellung inhalt = null;
120 
121         if (log.isDebugEnabled())
122         {
123             log.debug(" Suche Feld : " + feldname);
124         }
125 
126         for (int i = 0; i < liste.size(); i++)
127         {
128             inhalt = (Voreinstellung) liste.get(i);
129 
130             if (inhalt != null && ((String) inhalt.getFeldname()).compareTo(feldname) == 0)
131             {
132                 break;
133             }
134             else
135             {
136                 inhalt = null;
137             }
138         }
139 
140         if (log.isDebugEnabled())
141         {
142             log.debug(" Feld : " + inhalt.getFeldname() + "(" + inhalt.getFeldnummer() + ")" + " - Wert : " + inhalt.getWertString());
143         }
144 
145         feldname = null;
146 
147         return inhalt;
148     }
149 
150     /***
151      * Tr&auml;gt eine Voreinstellung in die Ergebnisse ein.
152      *
153      * @param wert Das Ergebnisobjekt
154      * @param gruppennummer Die Gruppennummer
155      * @param quartal Das Quartal
156      */
157     public static final void WertEintragen(Ergebniss wert, Integer gruppennummer, Integer quartal)
158     {
159         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
160         DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
161 
162         boolean rueckgabewert = false;
163 
164         if (wert != null && wert.getFeldnummer() != null)
165         {
166             if (log.isDebugEnabled())
167             {
168                 log.debug("--> W Gruppe " + gruppennummer + " Quartal " + quartal + " '" + wert.getFeldname() + "(" + wert.getFeldnummer() + ") = " + wert.getObjectWert().toString() + "'");
169             }
170 
171             rueckgabewert = die.editieren(wert.getFeldnummer(), gruppennummer, quartal, wert.getObjectWert().toString());
172         }
173 
174         if (rueckgabewert != true && wert != null)
175         {
176             log.error(" Fehler beim eintragen des Wertes '" + wert.getObjectWert().toString() + "' in '" + wert.getFeldname() + "'");
177         }
178         else if (rueckgabewert != true && wert == null)
179         {
180             log.error(" NULL - Fehler beim eintragen des Wertes");
181         }
182 
183         wert = null;
184     }
185 
186     /***
187      * Tr&auml;gt eine Voreinstellung in die Ergebnisse ein.
188      *
189      * @param voreinstellung Das Voreinstellungsobjekt
190      * @param ergebnis Das Ergebnisobjekt
191      * @param gruppennummer Die Gruppennummer
192      * @param quartal Das Quartal
193      */
194     public static final void VoreinstellungWertEintragen(Voreinstellung voreinstellung, Ergebniss ergebnis, Integer gruppennummer, Integer quartal)
195     {
196         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
197         DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
198 
199         boolean rueckgabewert = false;
200 
201         if (ergebnis != null && ergebnis.getFeldnummer() != null && voreinstellung != null && voreinstellung.getWertObject() != null)
202         {
203             if (log.isDebugEnabled())
204             {
205                 log.debug(" Gruppe " + gruppennummer + " Quartal " + quartal + " '" + ergebnis.getFeldname() + "(" + ergebnis.getFeldnummer() + ") = " + voreinstellung.getWertObject().toString() + "'");
206             }
207 
208             rueckgabewert = die.editieren(ergebnis.getFeldnummer(), gruppennummer, quartal, voreinstellung.getWertObject().toString());
209         }
210 
211         if (rueckgabewert != true && ergebnis != null)
212         {
213             log.error(" Fehler beim eintragen des Wertes '" + voreinstellung.getWertObject().toString() + "' in '" + ergebnis.getFeldname() + "'");
214         }
215         else if (rueckgabewert != true && ergebnis == null)
216         {
217             log.error(" NULL - Fehler beim eintragen des Wertes '" + voreinstellung.getWertObject().toString() + "'");
218         }
219 
220         voreinstellung = null;
221         ergebnis = null;
222     }
223 
224     /***
225      * Tr&auml;gt eine Voreinstellung in die Ergebnisse ein.
226      *
227      * @param voreinstellung Das Voreinstellungsobjekt
228      * @param ergebnis Das Ergebnisobjekt
229      * @param gruppennummer Die Gruppennummer
230      * @param quartal Das Quartal
231      */
232     public static final void VoreinstellungWertDurch1000Eintragen(Voreinstellung voreinstellung, Ergebniss ergebnis, Integer gruppennummer, Integer quartal)
233     {
234         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
235         DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
236 
237         boolean rueckgabewert = false;
238         Integer wert = new Integer(Common.aufIntegerDurchEinTausendAufrunden(new Double(((Object) voreinstellung.getWertObject()).toString()).doubleValue()));
239 
240         if (ergebnis != null && ergebnis.getFeldnummer() != null && voreinstellung != null && voreinstellung.getWertObject() != null)
241         {
242             if (log.isDebugEnabled())
243             {
244                 log.debug("--> V Gruppe " + gruppennummer + " Quartal " + quartal + " '" + ergebnis.getFeldname() + "(" + ergebnis.getFeldnummer() + ") = " + wert.toString() + "'");
245             }
246 
247             rueckgabewert = die.editieren(ergebnis.getFeldnummer(), gruppennummer, quartal, wert.toString());
248         }
249 
250         if (rueckgabewert != true && ergebnis != null)
251         {
252             log.error(" Fehler beim eintragen des Wertes '" + voreinstellung.getWertObject().toString() + "' in '" + ergebnis.getFeldname() + "'");
253         }
254         else if (rueckgabewert != true && ergebnis == null)
255         {
256             log.error(" NULL - Fehler beim eintragen des Wertes '" + voreinstellung.getWertObject().toString() + "'");
257         }
258 
259         voreinstellung = null;
260         ergebnis = null;
261     }
262 }