KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > generator > ContentFormStatics


1 package de.webman.generator;
2
3 import com.teamkonzept.lib.*;
4 import com.teamkonzept.field.*;
5 import com.teamkonzept.field.db.*;
6
7 /**
8     Klasse ueber die die Formular-Klassen aus
9     der Datenbank gelesen werden koennen
10     
11     Gelesene Formulare werden in einem Hash-Cache gespeichert
12     * @author $Author: alex $
13     * @version $Revision: 1.2 $
14  */

15 public class ContentFormStatics
16 {
17
18     /**
19         Verweis zurück auf den aktuellen statischen Kontext des laufenden Threads
20     */

21     private GeneratorContext context;
22
23     /**
24         Der Formular Cache
25         Key := Integer( formId )
26     */

27     private TKHashtable formHash; // Cache
28

29     public ContentFormStatics (GeneratorContext context)
30     {
31         this.context = context != null ? context : GeneratorContext.setup ();
32         this.formHash = null;
33     }
34     
35     /**
36         Liefert das gewuenschte Formular
37     */

38     public TKBaseField getContentForm( int formId )
39     {
40         Integer JavaDoc fID = new Integer JavaDoc( formId );
41         
42         // Formular im Cache suchen
43
Object JavaDoc form = formHash.get( fID );
44         if( form != null ) {
45             return (TKBaseField) form;
46         }
47         
48         // Formular aus der DB holen
49
TKBaseField newForm;
50         try
51         {
52             TKFormDBData formData = new TKFormDBData( formId );
53             TKFormDBInterface.Get( formData );
54             newForm = TKFieldRegistry.getFieldFromDB( formData );
55         }
56         catch (Exception JavaDoc ex)
57         {
58             throw new Error JavaDoc( ex.getMessage() );
59         }
60         
61         // neues Formular in Cache eintragen
62
formHash.put( fID, newForm );
63         return newForm;
64     }
65     
66     /**
67         Initialisiert den Formular-Cache
68     */

69     public void prepareFormHash()
70     {
71         formHash = new TKHashtable();
72     }
73 }
Popular Tags