fixes the problem Alster spotted ...
[mir.git] / source / mircoders / servlet / ServletModuleHidden.java
index f1d8002..47c16bf 100755 (executable)
  * 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  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.  
+ * the code of this program with  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 javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import mir.entity.EntityList;
+import mir.entity.adapter.EntityAdapterEngine;
 import mir.log.LoggerWrapper;
-import mir.misc.HTMLTemplateProcessor;
 import mir.servlet.ServletModule;
 import mir.servlet.ServletModuleExc;
 import mir.servlet.ServletModuleFailure;
-import mir.storage.StorageObjectFailure;
+import mir.storage.DatabaseFailure;
+import mir.util.HTTPRequestParser;
+import mir.util.JDBCStringRoutines;
 import mircoders.module.ModuleContent;
-import mircoders.storage.DatabaseContent;
-import freemarker.template.SimpleHash;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
 
 /*
  *  ServletModuleHidden - output of so called "censored" articles
  *  @author mh
  *  @version $Id
- *
  */
 
-public class ServletModuleHidden extends ServletModule
-{
-
-// Singelton / Kontruktor
+public class ServletModuleHidden extends ServletModule {
   private static ServletModuleHidden instance = new ServletModuleHidden();
   public static ServletModule getInstance() { return instance; }
 
   private ServletModuleHidden() {
     super();
+
     logger = new LoggerWrapper("ServletModule.Hidden");
-    templateListString = configuration.getString("ServletModule.Hidden.ListTemplate");
+
     try {
-      mainModule = new ModuleContent(DatabaseContent.getInstance());
+      mainModule = new ModuleContent();
     }
-    catch (StorageObjectFailure e) {
+    catch (DatabaseFailure e) {
       logger.error("initialization of servletmoduleHidden failed: " + e.getMessage());
     }
   }
 
 
-  public void list(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc
-  {
-// determine parameter
-    SimpleHash mergeData = new SimpleHash();
-    String query_year = req.getParameter("year");
-    String query_month = req.getParameter("month");
-    String order = "webdb_create";
-
-// form sql statement
-    String whereClause = "is_published=false AND webdb_create LIKE '"+
-                         query_year+"-"+query_month+"%'";
+  public void list(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc {
+    HTTPRequestParser requestParser = new HTTPRequestParser(req);
+    Map responseData = ServletHelper.makeGenerationData(req, res, new Locale[] { getLocale(req), getFallbackLocale(req)});
 
-    logger.debug("ServletModuleHidden.list: whereclause: " + whereClause);
+    String query_year = requestParser.getParameter("year");
+    String query_month = requestParser.getParameter("month");
 
-// fetch and deliver
     try {
+      if ((query_year!=null && !query_year.equals("")) && (query_month!=null && !query_month.equals(""))) {
+        String whereClause = "is_published=false AND webdb_create LIKE "+
+            "'"+JDBCStringRoutines.escapeStringLiteral(query_year)+"-"+JDBCStringRoutines.escapeStringLiteral(query_month)+"%'";
 
-      if ((query_year!=null && !query_year.equals(""))
-          && (query_month!=null && !query_month.equals(""))) {
-        EntityList theList = mainModule.getByWhereClause(whereClause, order, -1);
-        if (theList!=null && theList.size()>0) {
 
-//make articleHash for comment
-          StringBuffer buf= new StringBuffer("id in (");boolean first=true;
-          for(int i=0;i<theList.size();i++) {
-            if (first==false) buf.append(",");
-            first=false;
-            buf.append(theList.elementAt(i).getValue("to_media"));
-          }
-          buf.append(")");
-          SimpleHash articleHash =
-              HTMLTemplateProcessor.makeSimpleHash(
-              mainModule.getByWhereClause(buf.toString(),-1));
-          mergeData.put("articleHash", articleHash);
+        List articleList = EntityAdapterEngine.retrieveAdapterList(model, definition, whereClause, "webdb_create", -1, 0);
 
-// send the year and month for use in the list template
-          mergeData.put("year", query_year);
-          mergeData.put("month", query_month);
-// get comment
-          mergeData.put("contentlist",theList);
-        }
+        responseData.put("year", query_year);
+        responseData.put("month", query_month);
+        responseData.put("articles", articleList);
       }
-// raus damit
-      HTMLTemplateProcessor.process(res, templateListString, mergeData, res.getWriter(), getLocale(req), getFallbackLocale(req));
+
+      ServletHelper.generateResponse(res.getWriter(), responseData, listGenerator);
     }
     catch (Throwable e) {
       throw new ServletModuleFailure(e);