KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > smile > stored > s_insertArticle2


1 package smile.stored;
2
3 import java.util.*;
4 import java.sql.*;
5
6 /**
7  * s_insertArticle2 is an implements the ProcedureInterface and is a sub-class
8  * of StoredProcedure. This class inserts articles in the database.
9  *
10  * Copyright 2002 Smile Les motoristes Internet http://www.smile.fr/ Contact
11  * cofax@smile.fr for further information
12  *
13  * @author Smile Les motoristes Internet
14  *
15  */

16 public class s_insertArticle2 extends StoredProcedure implements ProcedureInterface {
17
18     String JavaDoc pubName;
19
20     String JavaDoc section;
21
22     String JavaDoc pubDate;
23
24     String JavaDoc fileName;
25
26     String JavaDoc approved;
27
28     String JavaDoc headline;
29
30     String JavaDoc headline2;
31
32     String JavaDoc lead;
33
34     String JavaDoc byline;
35
36     String JavaDoc bycredit;
37
38     String JavaDoc dateline;
39
40     String JavaDoc body;
41
42     String JavaDoc leadIn;
43
44     String JavaDoc webHeadline;
45
46     String JavaDoc keywords;
47
48     String JavaDoc webLead;
49
50     String JavaDoc pubRank;
51
52     String JavaDoc pubData;
53
54     String JavaDoc disableIndex;
55
56     String JavaDoc disableArticle;
57
58     String JavaDoc rank;
59
60     String JavaDoc articleType;
61
62     String JavaDoc noVersioning;
63
64     String JavaDoc customURL;
65
66     String JavaDoc verNum;
67
68     String JavaDoc itemID;
69
70     String JavaDoc doesExists;
71
72     String JavaDoc mappingCode;
73
74     String JavaDoc startDate;
75
76     String JavaDoc endDate;
77
78     String JavaDoc lifeCycle;
79
80     String JavaDoc oldSection;
81
82     String JavaDoc toValidOrPublish;
83
84     String JavaDoc oldState;
85
86     public s_insertArticle2() {
87     }
88
89     public void init(HashMap initData, Connection con) {
90         // on initialise le hashmap de donnees et la connection de l'objet
91
super.init(initData, con);
92         // on initialise les propprietes de l'objet
93
pubName = utils.getString(data, "PUBNAME", "");
94         section = utils.getString(data, "SECTION", "");
95         pubDate = utils.getString(data, "PUBDATE", "");
96         fileName = utils.getString(data, "FILENAME", "");
97         approved = utils.getString(data, "APPROVED", "");
98         headline = utils.getString(data, "HEADLINE", "");
99         headline2 = utils.getString(data, "HEADLINE2", "");
100         lead = utils.getString(data, "LEAD", "");
101         byline = utils.getString(data, "BYLINE", "");
102         bycredit = utils.getString(data, "BYCREDIT", "");
103         dateline = utils.getString(data, "DATELINE", "");
104         body = utils.getString(data, "BODY", "");
105         leadIn = utils.getString(data, "LEADIN", "");
106         webHeadline = utils.getString(data, "WEBHEADLINE", "");
107         keywords = utils.getString(data, "KEYWORDS", "");
108         webLead = utils.getString(data, "WEBLEAD", "");
109         pubRank = utils.getString(data, "PUBRANK", "");
110         disableIndex = utils.getString(data, "DISABLEINDEX", "");
111         disableArticle = utils.getString(data, "DISABLEARTICLE", "");
112         rank = utils.getString(data, "RANK", "999");
113         articleType = utils.getString(data, "ARTICLETYPE", "");
114         customURL = utils.getString(data, "CUSTOMURL", "");
115         startDate = utils.getString(data, "STARTDATE", "");
116         endDate = utils.getString(data, "ENDDATE", "");
117         lifeCycle = utils.getString(data, "LIFECYCLE", "");
118         oldSection = utils.getString(data, "OLDSECTION", section);
119         toValidOrPublish = utils.getString(data, "TOVALIDORPUBLISH", "0");
120         oldState = utils.getString(data, "OLDSTATE", "0");
121     }
122
123     public void checkParams() throws SQLException {
124         if (section.equals(""))
125             throw new SQLException("ERROR: required field 'section' was not sent.");
126         if (pubName.equals(""))
127             throw new SQLException("ERROR: required field 'pubName' was not sent.");
128         if (fileName.equals(""))
129             throw new SQLException("ERROR: required field 'fileName' was not sent.");
130         if (pubDate.equals(""))
131             throw new SQLException("ERROR: required field 'pubDate' was not sent.");
132     }
133
134     public void checkAction() throws SQLException {
135     }
136
137     public void executeAction() throws SQLException {
138
139         // get useDate value
140
StringBuffer JavaDoc v_useDate = new StringBuffer JavaDoc();
141         v_useDate.append("SELECT defaultSectionWithDate ");
142         v_useDate.append(" FROM tblpublications ").append(" WHERE pubName = '" + pubName + "'");
143         String JavaDoc useDate = execStatementToValue(v_useDate.toString());
144
145         StringBuffer JavaDoc v_sb = new StringBuffer JavaDoc();
146         v_sb.append("SELECT COALESCE(max(versionNum), 0)+1 ");
147         v_sb.append(" FROM tblarticles ").append(" WHERE section = '" + oldSection + "'");
148         if (useDate == "1")
149             v_sb.append(" AND pubDate = '" + pubDate + "'");
150         v_sb.append(" AND pubName = '" + pubName + "'").append(" AND fileName = '" + fileName + "'");
151
152         String JavaDoc verNum = execStatementToValue(v_sb.toString());
153
154         String JavaDoc articleTypeID = "0";
155         if ((articleType != null) && (!articleType.equals(""))) {
156             StringBuffer JavaDoc v_sbSelect = new StringBuffer JavaDoc();
157             v_sbSelect.append("SELECT COALESCE(articleTypeID, 0 ) ");
158             v_sbSelect.append("FROM tblarticletypes ").append("WHERE pubName = '" + pubName + "' ").append("AND articleType = '" + articleType + "'");
159
160             articleTypeID = execStatementToValue(v_sbSelect.toString());
161             if (articleTypeID.equals("")) {
162                 articleTypeID = "0";
163             }
164         }
165
166         StringBuffer JavaDoc v_sbInsert = new StringBuffer JavaDoc();
167         v_sbInsert
168                 .append("INSERT INTO tblarticles ")
169                 .append(
170                         "(pubName, headline, headline2, webHeadline, lead, dateline, keywords, webLead, pubRank, pubData, byline, bycredit, pubDate, section, ")
171                 .append(
172                         " body, leadIn, updateDate, docType, versionNum, approved, fileName, disableIndex, disableArticle, articleTypeID, customURL, workflow_state) ")
173                 .append("VALUES ( '" + pubName + "', '" + headline + "', '" + headline2 + "' , '" + webHeadline + "', ").append(
174                         " '" + lead + "', '" + dateline + "' , '" + keywords + "' , '" + webLead + "' , '" + pubRank + "' , ").append(
175                         " '" + pubData + "' , '" + byline + "' , '" + bycredit + "' , '" + pubDate + "' , '" + section + "' , ").append(
176                         " '" + body + "' , '" + leadIn + "' , now() , 1, " + verNum + " , '" + approved + "' , '" + fileName + "', ").append(
177                         " '" + disableIndex + "' , '" + disableArticle + "' , '" + articleTypeID + "' , '" + customURL + "'," + toValidOrPublish + ")");
178
179         StringBuffer JavaDoc v_sbItemID = new StringBuffer JavaDoc();
180         if ((Integer.parseInt(verNum) == 1) || ((oldState.equals("2")) && (toValidOrPublish.equals("0")))
181                 || ((oldState.equals("2")) && (toValidOrPublish.equals("1")))) {
182             v_sbItemID.append("SELECT max(itemID) + 1 ").append("from tblarticles");
183         } else if (Integer.parseInt(verNum) > 1) {
184             v_sbItemID.append("SELECT itemID ").append("FROM tblarticles ").append("WHERE section = '" + oldSection + "' ");
185             if (useDate == "1")
186                 v_sbItemID.append("AND pubDate = '" + pubDate + "' ");
187             v_sbItemID.append("AND pubName = '" + pubName + "' ").append("AND fileName = '" + fileName + "' ").append("AND versionNum < " + verNum + " ")
188                     .append("AND workflow_state= " + oldState);
189         }
190
191         synchronized (this) {
192             execStatement(v_sbInsert.toString());
193             itemID = execStatementToValue(v_sbItemID.toString());
194         }
195
196         StringBuffer JavaDoc v_sbUpdate = new StringBuffer JavaDoc();
197         v_sbUpdate.append("UPDATE tblarticles ").append("SET itemID = '" + itemID + "' ").append("WHERE section = '" + section + "' ").append(
198                 "AND pubDate = '" + pubDate + "' ").append("AND pubName = '" + pubName + "' ").append("AND fileName = '" + fileName + "' ").append(
199                 "AND versionNum = " + verNum + " ").append("AND workflow_state=" + toValidOrPublish);
200         execStatement(v_sbUpdate.toString());
201
202         // set the start and the end dates if there is a life cycle
203
if (lifeCycle.equals("on")) {
204             StringBuffer JavaDoc v_sbUpdate1 = new StringBuffer JavaDoc();
205             v_sbUpdate1.append("UPDATE tblarticles ").append("SET pubStart = '" + startDate + "', ").append("pubEnd = '" + endDate + "', ").append(
206                     "lifeCycle=1 ").append("WHERE itemID = '" + itemID + "' ");
207             execStatement(v_sbUpdate1.toString());
208         } else {
209             StringBuffer JavaDoc v_sbUpdate1 = new StringBuffer JavaDoc();
210             v_sbUpdate1.append("UPDATE tblarticles ").append("SET pubStart = null, ") // FX :
211
// set
212
// to
213
// null
214
// instead
215
// of
216
// ''
217
.append("pubEnd = null, ") // FX : set to null instead of
218
// ''
219
.append("lifeCycle=0 ").append("WHERE itemID = '" + itemID + "' ");
220             execStatement(v_sbUpdate1.toString());
221         }
222
223         // Update tblarticleversions with previous versions of articles if
224
// noVersioning is false
225
StringBuffer JavaDoc v_sbInsert2 = new StringBuffer JavaDoc();
226         v_sbInsert2.append("INSERT INTO tblarticleversions ").append("SELECT * FROM tblarticles ").append("WHERE section = '" + oldSection + "' ");
227         if (useDate == "1")
228             v_sbInsert2.append("AND pubDate = '" + pubDate + "' ");
229         v_sbInsert2.append("AND pubName = '" + pubName + "' ").append("AND fileName = '" + fileName + "' ").append("AND versionNum < " + verNum + " ").append(
230                 "AND workflow_state<=" + toValidOrPublish + " ");
231         execStatement(v_sbInsert2.toString());
232
233         // Delete previous versions of this article from tblarticles
234
StringBuffer JavaDoc v_sbDelete = new StringBuffer JavaDoc();
235         v_sbDelete.append("DELETE from tblarticles ").append("WHERE section = '" + oldSection + "' ");
236         if (useDate == "1")
237             v_sbDelete.append("AND pubDate = '" + pubDate + "' ");
238         v_sbDelete.append("AND pubName = '" + pubName + "' ").append("AND fileName = '" + fileName + "' ").append("AND itemID <> '" + itemID + "' ").append(
239                 "AND versionNum <= " + verNum + " ").append("AND workflow_state<=" + toValidOrPublish + " ");
240         execStatement(v_sbDelete.toString());
241
242         StringBuffer JavaDoc v_sbDelete2 = new StringBuffer JavaDoc();
243         v_sbDelete2.append("DELETE from tblarticles ").append("WHERE section = '" + oldSection + "' ");
244         if (useDate == "1")
245             v_sbDelete2.append("AND pubDate = '" + pubDate + "' ");
246         v_sbDelete2.append("AND pubName = '" + pubName + "' ").append("AND fileName = '" + fileName + "' ").append("AND versionNum < " + verNum + " ").append(
247                 "AND workflow_state<=" + toValidOrPublish + " ");
248         execStatement(v_sbDelete2.toString());
249
250         // Set mappingCode
251
StringBuffer JavaDoc v_sbExists = new StringBuffer JavaDoc();
252         v_sbExists.append("SELECT count(0) ").append(" FROM tblarticleorder o, tblsections s ").append(" WHERE o.mappingCode = s.mappingCode ").append(
253                 "AND o.itemID = '" + itemID + "' ").append("AND s.section = '" + section + "'");
254
255         doesExists = execStatementToValue(v_sbExists.toString());
256
257         if (Integer.parseInt(doesExists) < 1) {
258             StringBuffer JavaDoc v_sbMappingCode = new StringBuffer JavaDoc();
259             v_sbMappingCode.append("SELECT mappingCode from tblsections ").append("WHERE section = '" + section + "' ").append(
260                     "AND pubName = '" + pubName + "'");
261
262             mappingCode = execStatementToValue(v_sbMappingCode.toString());
263
264             if (mappingCode != null && mappingCode != "") {
265                 StringBuffer JavaDoc v_sbInsert3 = new StringBuffer JavaDoc();
266                 v_sbInsert3.append("INSERT INTO tblarticleorder ").append("(itemID, rank, mappingCode, timeStart, ").append(
267                         "timeEnd, mappingUpdateDate, pubName, section, pubDate) ").append("VALUES ").append("('" + itemID + "', ").append("'" + rank + "', ")
268                         .append("'" + mappingCode + "', ").append("'" + sdf.format(new java.util.Date JavaDoc()) + "', ").append(
269                                 "'" + sdf.format(new java.util.Date JavaDoc()) + "', ").append("'" + sdf.format(new java.util.Date JavaDoc()) + "', ").append(
270                                 "'" + pubName + "', ").append("'" + section + "', ").append("'" + pubDate + "')");
271
272                 execStatement(v_sbInsert3.toString());
273             }
274         }
275         s_updateArticlePreload sp_uaa = new s_updateArticlePreload();
276         sp_uaa.init(data, psConnection);
277         sp_uaa.setItemID(itemID);
278         sp_uaa.setTargetDataStore(targetDataStore);
279         sp_uaa.executeAction();
280
281         execStatementToRS("SELECT " + itemID + " as itemID");
282
283     }
284
285 }
286
Popular Tags