1 import java.util.Iterator;
4 import java.util.ArrayList;
6 import mir.entity.adapter.EntityIteratorAdapter;
7 import mir.session.Request;
8 import mir.session.Response;
9 import mir.session.Session;
10 import mir.session.SessionExc;
11 import mir.session.SessionFailure;
12 import mir.session.ValidationError;
13 import mir.util.CachingRewindableIterator;
14 import mir.util.JDBCStringRoutines;
15 import mircoders.entity.EntityContent;
16 import mircoders.global.MirGlobal;
17 import mircoders.localizer.basic.MirBasicArticlePostingHandler;
18 import mircoders.storage.DatabaseContentToTopics;
19 import mir.entity.adapter.EntityAdapterEngine;
23 * <p>Title: Experimental session handler for article postings </p>
24 * <p>Description: </p>
25 * <p>Copyright: Copyright (c) 2003</p>
31 public class NYCArticlePostingHandler extends MirBasicArticlePostingHandler {
32 protected void initializeResponseData(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure {
33 Object language = null;
36 super.initializeResponseData(aRequest, aSession, aResponse);
37 aResponse.setResponseValue("to_location", aRequest.getParameters("to_location"));
38 aResponse.setResponseValue("to_category", aRequest.getParameters("to_category"));
39 aResponse.setResponseValue("to_subcategory", aRequest.getParameters("to_subcategory"));
40 aResponse.setResponseValue("to_content", aRequest.getParameters("to_content"));
43 aResponse.setResponseValue("locations",
44 EntityAdapterEngine.retrieveAdapterList(
45 MirGlobal.localizer().dataModel().adapterModel(),
46 "topic", "archiv_url='Location'", "title", -1, 0));
47 aResponse.setResponseValue("categories",
48 EntityAdapterEngine.retrieveAdapterList(
49 MirGlobal.localizer().dataModel().adapterModel(),
50 "topic", "archiv_url='Category'", "title", -1, 0));
51 aResponse.setResponseValue("subcategories",
52 EntityAdapterEngine.retrieveAdapterList(
53 MirGlobal.localizer().dataModel().adapterModel(),
54 "topic", "archiv_url='Subcategory'", "title", -1, 0));
55 aResponse.setResponseValue("contents",
56 EntityAdapterEngine.retrieveAdapterList(
57 MirGlobal.localizer().dataModel().adapterModel(),
58 "topic", "archiv_url='Content'", "title", -1, 0));
61 throw new SessionFailure(t);
65 public void validate(List aResults, Request aRequest, Session aSession) throws SessionExc, SessionFailure {
66 super.validate(aResults, aRequest, aSession);
70 List categories = aRequest.getParameters("to_category");
71 if (categories!=null && categories.size()>2)
72 aResults.add(new ValidationError("to_category", "validationerror.toomany"));
74 List subCategories = aRequest.getParameters("to_subcategory");
75 if (subCategories!=null && subCategories.size()>5)
76 aResults.add(new ValidationError("to_subcategory", "validationerror.toomany"));
81 throw new SessionFailure(t);
87 public void setArticleTopics(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure {
88 List categories = aRequest.getParameters("to_category");
89 List subcategories = aRequest.getParameters("to_subcategory");
90 List locations = aRequest.getParameters("to_location");
91 List contents = aRequest.getParameters("to_content");
92 List all = new ArrayList();
93 all.addAll(categories);
94 all.addAll(subcategories);
95 all.addAll(locations);
98 DatabaseContentToTopics.getInstance().setTopics(aContent.getId(), all);
100 catch (Throwable e) {
101 logger.error("setting topics failed");
102 throw new SessionFailure("NYCArticlePostingHandler: can't set topics: " + e.toString(), e);
106 public void finalizeArticle(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure {
107 super.finalizeArticle(aRequest, aSession, aContent);
109 //actually turn on html if its selected
110 aContent.setFieldValue("is_html", aRequest.getParameter("is_html"));