KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > interceptors > BookstoreWithInterceptorTest


1 /*
2  * $Header: /cvsroot/jdbforms/dbforms/examples/bookstore/WEB-INF/src/interceptors/BookstoreWithInterceptorTest.java,v 1.7 2004/11/14 20:18:45 hkollmann Exp $
3  * $Revision: 1.7 $
4  * $Date: 2004/11/14 20:18:45 $
5  *
6  * DbForms - a Rapid Application Development Framework
7  * Copyright (C) 2001 Joachim Peer <joepeer@excite.com>
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public
11  * License as published by the Free Software Foundation; either
12  * version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  * Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22  */

23 package interceptors;
24
25 import org.apache.commons.logging.Log;
26 import org.apache.commons.logging.LogFactory;
27
28 import org.dbforms.config.ConfigLoader;
29 import org.dbforms.config.DbFormsConfig;
30 import org.dbforms.config.FieldValues;
31 import org.dbforms.config.Table;
32 import org.dbforms.config.ValidationException;
33
34 import org.dbforms.event.DbEventInterceptorSupport;
35
36 import java.sql.Connection JavaDoc;
37 import java.sql.ResultSet JavaDoc;
38 import java.sql.SQLException JavaDoc;
39 import java.sql.Statement JavaDoc;
40
41 import javax.servlet.http.HttpServletRequest JavaDoc;
42
43 /**
44  * @author hkk
45  *
46  * To change this generated comment go to Window>Preferences>Java>Code
47  * Generation>Code and Comments
48  */

49 public class BookstoreWithInterceptorTest extends DbEventInterceptorSupport {
50     private static Log logCat = LogFactory.getLog(ConfigLoader.class);
51
52     /**
53      * DOCUMENT ME!
54      *
55      * @param request
56      * DOCUMENT ME!
57      * @param table
58      * DOCUMENT ME!
59      * @param fieldValues
60      * DOCUMENT ME!
61      * @param config
62      * DOCUMENT ME!
63      * @param con
64      * DOCUMENT ME!
65      *
66      * @return DOCUMENT ME!
67      *
68      * @throws ValidationException
69      * DOCUMENT ME!
70      */

71     public int preInsert(HttpServletRequest JavaDoc request, Table table,
72             FieldValues fieldValues, DbFormsConfig config, Connection JavaDoc con)
73             throws ValidationException {
74         logCat.info("preInsert called");
75
76         Statement JavaDoc stmt;
77         ResultSet JavaDoc rs = null;
78         long new_id = 0;
79         String JavaDoc strSql = "";
80         String JavaDoc strParentID = "AUTHOR_ID";
81         String JavaDoc strID = "BOOK_ID";
82         String JavaDoc strTbl = "BOOK";
83
84         if (fieldValues.get(strID) == null) {
85             try {
86                 stmt = con.createStatement();
87                 strSql = "select max(" + strID + ") from " + strTbl;
88
89                 if (fieldValues.get(strParentID) != null) {
90                     strSql = strSql + " where " + strParentID + "="
91                             + fieldValues.get(strParentID);
92                 }
93
94                 rs = stmt.executeQuery(strSql);
95                 rs.next();
96                 new_id = rs.getLong(1) + 1;
97                 stmt.close();
98             } catch (SQLException JavaDoc e) {
99                 e.printStackTrace();
100             }
101
102             if (new_id == 0) {
103                 throw new ValidationException("Error generating automatic IDs");
104             }
105
106             fieldValues.remove(strID);
107             setValue(table, fieldValues, strID, Long.toString(new_id));
108             setValue(table, fieldValues, strParentID, Long.toString(1));
109
110             // Test: set title to fixed string!
111
setValue(table, fieldValues, "TITLE",
112                     "fixed title in new interceptor");
113         }
114
115         return GRANT_OPERATION;
116     }
117
118     /**
119      * DOCUMENT ME!
120      *
121      * @param request
122      * DOCUMENT ME!
123      * @param config
124      * DOCUMENT ME!
125      * @param con
126      * DOCUMENT ME!
127      *
128      * @return DOCUMENT ME!
129      */

130     public int preSelect(HttpServletRequest JavaDoc request, DbFormsConfig config,
131             Connection JavaDoc con) {
132         logCat.info("preSelect called");
133
134         return GRANT_OPERATION;
135     }
136
137     /**
138      * DOCUMENT ME!
139      *
140      * @param request
141      * DOCUMENT ME!
142      * @param table
143      * DOCUMENT ME!
144      * @param fieldValues
145      * DOCUMENT ME!
146      * @param config
147      * DOCUMENT ME!
148      * @param con
149      * DOCUMENT ME!
150      *
151      * @return DOCUMENT ME!
152      *
153      * @throws ValidationException
154      * DOCUMENT ME!
155      */

156     public int preUpdate(HttpServletRequest JavaDoc request, Table table,
157             FieldValues fieldValues, DbFormsConfig config, Connection JavaDoc con)
158             throws ValidationException {
159         logCat.info("preUpdate called");
160
161         if ("42".equals(fieldValues.get("ISBN").getFieldValue())) {
162             return IGNORE_OPERATION;
163         }
164
165         fieldValues.remove("ISBN");
166
167         return GRANT_OPERATION;
168     }
169 }
170
Popular Tags