NYC instead of UK
[nyc.indymedia.org.git] / etc / extrasource / NYCArticlePostingHandler.java
1 import java.util.Iterator;
2 import java.util.List;
3 import java.lang.Math;
4 import java.util.ArrayList;
5
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;
20
21 /**
22  *
23  * <p>Title: Experimental session handler for article postings </p>
24  * <p>Description: </p>
25  * <p>Copyright: Copyright (c) 2003</p>
26  * <p>Company: </p>
27  * @author Zapata
28  * @version 1.0
29  */
30
31 public class NYCArticlePostingHandler extends MirBasicArticlePostingHandler {
32   protected void initializeResponseData(Request aRequest, Session aSession, Response aResponse) throws SessionExc, SessionFailure {
33     Object language = null;
34
35     try {
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")); 
41       
42       
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));                      
59      }
60     catch (Throwable t) {
61       throw new SessionFailure(t);
62     }
63   }
64   
65   public void validate(List aResults, Request aRequest, Session aSession) throws SessionExc, SessionFailure {
66     super.validate(aResults, aRequest, aSession);
67         
68     try {
69    
70       List categories = aRequest.getParameters("to_category");
71       if (categories!=null && categories.size()>2)
72         aResults.add(new ValidationError("to_category", "validationerror.toomany"));
73
74       List subCategories = aRequest.getParameters("to_subcategory");
75       if (subCategories!=null && subCategories.size()>5)
76         aResults.add(new ValidationError("to_subcategory", "validationerror.toomany"));
77
78     }
79     
80     catch (Throwable t) {
81       throw new SessionFailure(t);
82     }
83   }
84
85
86
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);
96             all.addAll(contents);
97             try {
98                       DatabaseContentToTopics.getInstance().setTopics(aContent.getId(), all);
99                 }
100            catch (Throwable e) {
101                   logger.error("setting topics failed");
102                   throw new SessionFailure("NYCArticlePostingHandler: can't set topics: " + e.toString(), e);
103               }
104   }
105         
106   public void finalizeArticle(Request aRequest, Session aSession, EntityContent aContent) throws SessionExc, SessionFailure {
107     super.finalizeArticle(aRequest, aSession, aContent);
108     
109     //actually turn on html if its selected
110     aContent.setFieldValue("is_html", aRequest.getParameter("is_html"));
111   }
112
113 }