X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fservlet%2FServletHelper.java;h=c3e4b85c60916f403cbf62c1a255053da5d15cf0;hb=86a7f9a337462ad82b23c77e91621929b2a741e3;hp=135a21240ac11ea33228d4d6a35b6c1ee822d46f;hpb=d90c1bbdd5e1823253436f24dce80de4f0abbfcb;p=mir.git diff --git a/source/mircoders/servlet/ServletHelper.java b/source/mircoders/servlet/ServletHelper.java index 135a2124..c3e4b85c 100755 --- a/source/mircoders/servlet/ServletHelper.java +++ b/source/mircoders/servlet/ServletHelper.java @@ -1,52 +1,101 @@ -package mircoders.servlet; - -import java.io.PrintWriter; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - -import mir.generator.Generator; -import mir.servlet.ServletModuleException; -import mir.util.NullWriter; -import mir.util.ResourceBundleGeneratorFunction; -import mircoders.global.MirGlobal; - -import org.apache.struts.util.MessageResources; - - - -public class ServletHelper { -// ML: add logging! - - static Map makeGenerationData(Locale aLocale) throws ServletModuleException { - try { - Map result = new HashMap(); - - MirGlobal.localizer().producerAssistant().initializeGenerationValueSet(result); - - result.put( "lang", - new ResourceBundleGeneratorFunction( aLocale, - MessageResources.getMessageResources("bundles.adminlocal"), - MessageResources.getMessageResources("bundles.admin"))); - - return result; - } - catch (Throwable t) { - throw new ServletModuleException(t.getMessage()); - } - } - - static void generateResponse(PrintWriter aWriter, Map aGenerationData, String aGenerator) throws ServletModuleException { - - Generator generator; - - try { - generator = MirGlobal.localizer().generators().makeAdminGeneratorLibrary().makeGenerator(aGenerator); - - generator.generate(aWriter, aGenerationData, new PrintWriter(new NullWriter())); - } - catch (Throwable t) { - throw new ServletModuleException(t.getMessage()); - } - } -} \ No newline at end of file +package mircoders.servlet; + +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +import org.apache.struts.util.MessageResources; + +import mir.entity.adapter.EntityIteratorAdapter; +import mir.generator.Generator; +import mir.servlet.ServletModuleExc; +import mir.servlet.ServletModuleFailure; +import mir.util.CachingRewindableIterator; +import mir.util.NullWriter; +import mir.util.ResourceBundleGeneratorFunction; + +import mircoders.global.MirGlobal; + + + +public class ServletHelper { + static Map makeGenerationData(Locale aLocale) throws ServletModuleExc { + return makeGenerationData(aLocale, "bundles.adminlocal", "bundles.admin"); + } + + static Map makeGenerationData(Locale aLocale, String aBundle) throws ServletModuleExc { + return makeGenerationData(aLocale, aBundle, aBundle); + } + + static Map makeGenerationData(Locale aLocale, String aBundle, String aDefaultBundle) throws ServletModuleExc { + + try { + Map result = new HashMap(); + + MirGlobal.localizer().producerAssistant().initializeGenerationValueSet(result); + + result.put("returnurl", null); + + Object languages = + new CachingRewindableIterator( + new EntityIteratorAdapter( "", "id", 30, + MirGlobal.localizer().dataModel().adapterModel(), "language")); + Object topics = + new CachingRewindableIterator( + new EntityIteratorAdapter("", "id", 30, + MirGlobal.localizer().dataModel().adapterModel(), "topic")); + + Object articleTypes = + new CachingRewindableIterator( + new EntityIteratorAdapter( "", "id", 30, + MirGlobal.localizer().dataModel().adapterModel(), "articleType")); + + Object commentStatuses = + new CachingRewindableIterator( + new EntityIteratorAdapter( "", "id", 30, + MirGlobal.localizer().dataModel().adapterModel(), "commentStatus")); + + result.put("commentstatuses", commentStatuses); + result.put("articletypes", articleTypes); + result.put("languages", languages); + result.put("topics", topics); + + result.put( "lang", + new ResourceBundleGeneratorFunction( aLocale, + MessageResources.getMessageResources(aBundle), + MessageResources.getMessageResources(aDefaultBundle))); + + return result; + } + catch (Throwable t) { + throw new ServletModuleFailure(t); + } + } + + static void generateResponse(PrintWriter aWriter, Map aGenerationData, String aGenerator) throws ServletModuleExc { + Generator generator; + + try { + generator = MirGlobal.localizer().generators().makeAdminGeneratorLibrary().makeGenerator(aGenerator); + + generator.generate(aWriter, aGenerationData, new PrintWriter(new NullWriter())); + } + catch (Throwable t) { + throw new ServletModuleFailure(t); + } + } + + static void generateOpenPostingResponse(PrintWriter aWriter, Map aGenerationData, String aGenerator) throws ServletModuleExc { + Generator generator; + + try { + generator = MirGlobal.localizer().generators().makeAdminGeneratorLibrary().makeGenerator(aGenerator); + + generator.generate(aWriter, aGenerationData, new PrintWriter(new NullWriter())); + } + catch (Throwable t) { + throw new ServletModuleFailure(t); + } + } +}