X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fservlet%2FServletHelper.java;h=dbffa3ac2797239c819d729a62128429c54d4966;hb=d7429fe1376f25d0c4420c35c69dc9edd651ab25;hp=12d71a9a4c51a3eed19439e09f447859b8e2158d;hpb=337613e7dc23b871c25a86e1606bff44f0e3cf8f;p=mir.git diff --git a/source/mircoders/servlet/ServletHelper.java b/source/mircoders/servlet/ServletHelper.java index 12d71a9a..dbffa3ac 100755 --- a/source/mircoders/servlet/ServletHelper.java +++ b/source/mircoders/servlet/ServletHelper.java @@ -1,81 +1,130 @@ -package mircoders.servlet; - -import java.io.PrintWriter; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - -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; - -import org.apache.struts.util.MessageResources; - - - -public class ServletHelper { -// ML: add logging! - - static Map makeGenerationData(Locale aLocale) 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("bundles.adminlocal"), - MessageResources.getMessageResources("bundles.admin"))); - - 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); - } - } -} +/* + * Copyright (C) 2001, 2002 The Mir-coders group + * + * This file is part of Mir. + * + * Mir is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Mir is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Mir; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * In addition, as a special exception, The Mir-coders gives permission to link + * the code of this program with the com.oreilly.servlet library, any library + * licensed under the Apache Software License, The Sun (tm) Java Advanced + * Imaging library (JAI), The Sun JIMI library (or with modified versions of + * the above that use the same license as the above), and distribute linked + * combinations including the two. You must obey the GNU General Public + * License in all respects for all of the code used other than the above + * mentioned libraries. If you modify this file, you may extend this exception + * to your version of the file, but you are not obligated to do so. If you do + * not wish to do so, delete this exception statement from your version. + */ + +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 { + public static Map makeGenerationData(Locale[] aLocales) throws ServletModuleExc { + return makeGenerationData(aLocales, "bundles.adminlocal", "bundles.admin"); + } + + public static Map makeGenerationData(Locale[] aLocales, String aBundle) throws ServletModuleExc { + return makeGenerationData(aLocales, aBundle, aBundle); + } + + public static Map makeGenerationData(Locale[] aLocales, 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( aLocales, + new MessageResources[] { MessageResources.getMessageResources(aBundle), + MessageResources.getMessageResources(aDefaultBundle)})); + + return result; + } + catch (Throwable t) { + throw new ServletModuleFailure(t); + } + } + + public 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); + } + } + + public static void generateOpenPostingResponse(PrintWriter aWriter, Map aGenerationData, String aGenerator) throws ServletModuleExc { + Generator generator; + + try { + generator = MirGlobal.localizer().generators().makeOpenPostingGeneratorLibrary().makeGenerator(aGenerator); + + generator.generate(aWriter, aGenerationData, new PrintWriter(new NullWriter())); + } + catch (Throwable t) { + throw new ServletModuleFailure(t); + } + } +}