a294cce6888e197ed64c7e5cdfcc3d92ae3732c1
[mir.git] / source / mircoders / servlet / ServletHelper.java
1 package mircoders.servlet;
2
3 import java.io.PrintWriter;
4 import java.util.HashMap;
5 import java.util.Locale;
6 import java.util.Map;
7
8 import mir.entity.adapter.EntityIteratorAdapter;
9 import mir.generator.Generator;
10 import mir.servlet.ServletModuleExc;
11 import mir.servlet.ServletModuleFailure;
12 import mir.util.NullWriter;
13 import mir.util.ResourceBundleGeneratorFunction;
14 import mir.util.CachingRewindableIterator;
15 import mircoders.global.MirGlobal;
16
17 import org.apache.struts.util.MessageResources;
18
19
20
21 public class ServletHelper {
22 // ML: add logging!
23
24   static Map makeGenerationData(Locale aLocale) throws ServletModuleExc {
25     try {
26       Map result = new HashMap();
27
28       MirGlobal.localizer().producerAssistant().initializeGenerationValueSet(result);
29
30       Object languages =
31           new CachingRewindableIterator(
32             new EntityIteratorAdapter( "", "id", 30,
33                MirGlobal.localizer().dataModel().adapterModel(), "language"));
34       Object topics =
35           new CachingRewindableIterator(
36             new EntityIteratorAdapter("", "id", 30,
37                MirGlobal.localizer().dataModel().adapterModel(), "topic"));
38
39       Object articleTypes =
40           new CachingRewindableIterator(
41             new EntityIteratorAdapter( "", "id", 30,
42                MirGlobal.localizer().dataModel().adapterModel(), "articleType"));
43
44       Object commentStatuses =
45           new CachingRewindableIterator(
46             new EntityIteratorAdapter( "", "id", 30,
47                MirGlobal.localizer().dataModel().adapterModel(), "commentStatus"));
48
49       result.put("commentstatuses", commentStatuses);
50       result.put("articletypes", articleTypes);
51       result.put("languages", languages);
52       result.put("topics", topics);
53
54       result.put( "lang",
55           new ResourceBundleGeneratorFunction( aLocale,
56                   MessageResources.getMessageResources("bundles.adminlocal"),
57                   MessageResources.getMessageResources("bundles.admin")));
58
59       return result;
60     }
61     catch (Throwable t) {
62       throw new ServletModuleFailure(t);
63     }
64   }
65
66   static void generateResponse(PrintWriter aWriter, Map aGenerationData, String aGenerator) throws ServletModuleExc {
67
68     Generator generator;
69
70     try {
71       generator = MirGlobal.localizer().generators().makeAdminGeneratorLibrary().makeGenerator(aGenerator);
72
73       generator.generate(aWriter, aGenerationData, new PrintWriter(new NullWriter()));
74     }
75     catch (Throwable t) {
76       throw new ServletModuleFailure(t);
77     }
78   }
79 }