KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jcorporate > expresso > services > dbobj > ControllerDefault


1 /* ====================================================================
2  * The Jcorporate Apache Style Software License, Version 1.2 05-07-2002
3  *
4  * Copyright (c) 1995-2002 Jcorporate Ltd. All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in
15  * the documentation and/or other materials provided with the
16  * distribution.
17  *
18  * 3. The end-user documentation included with the redistribution,
19  * if any, must include the following acknowledgment:
20  * "This product includes software developed by Jcorporate Ltd.
21  * (http://www.jcorporate.com/)."
22  * Alternately, this acknowledgment may appear in the software itself,
23  * if and wherever such third-party acknowledgments normally appear.
24  *
25  * 4. "Jcorporate" and product names such as "Expresso" must
26  * not be used to endorse or promote products derived from this
27  * software without prior written permission. For written permission,
28  * please contact info@jcorporate.com.
29  *
30  * 5. Products derived from this software may not be called "Expresso",
31  * or other Jcorporate product names; nor may "Expresso" or other
32  * Jcorporate product names appear in their name, without prior
33  * written permission of Jcorporate Ltd.
34  *
35  * 6. No product derived from this software may compete in the same
36  * market space, i.e. framework, without prior written permission
37  * of Jcorporate Ltd. For written permission, please contact
38  * partners@jcorporate.com.
39  *
40  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
41  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
42  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
43  * DISCLAIMED. IN NO EVENT SHALL JCORPORATE LTD OR ITS CONTRIBUTORS
44  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
45  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
46  * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
47  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
48  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
49  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
50  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51  * SUCH DAMAGE.
52  * ====================================================================
53  *
54  * This software consists of voluntary contributions made by many
55  * individuals on behalf of the Jcorporate Ltd. Contributions back
56  * to the project(s) are encouraged when you make modifications.
57  * Please send them to support@jcorporate.com. For more information
58  * on Jcorporate Ltd. and its products, please see
59  * <http://www.jcorporate.com/>.
60  *
61  * Portions of this software are based upon other open source
62  * products and are subject to their respective licenses.
63  */

64
65 package com.jcorporate.expresso.services.dbobj;
66
67 import com.jcorporate.expresso.core.controller.ControllerRequest;
68 import com.jcorporate.expresso.core.db.DBException;
69 import com.jcorporate.expresso.core.dbobj.SecuredDBObject;
70 import com.jcorporate.expresso.core.misc.StringUtil;
71 import org.apache.log4j.Logger;
72
73
74 /**
75  * This class defines default limits on controllers. For example, the size
76  * of the page limits returned by DBMaint.
77  *
78  * @author Michael Nash
79  * @version $Revision: 1.12 $ $Date: 2004/11/17 20:48:18 $
80  */

81 public class ControllerDefault
82         extends SecuredDBObject {
83     private static Logger log = Logger.getLogger(ControllerDefault.class);
84
85     /**
86      * Constructor
87      */

88     public ControllerDefault()
89             throws DBException {
90         super();
91     } /* ControllerDefault() */
92
93     /**
94      * @param uid the expresso user's integer id
95      * @throws DBException upon initialization error
96      */

97     public ControllerDefault(int uid)
98             throws DBException {
99         super(uid);
100     }
101
102     /**
103      * For using DBObjects within Controllers. Initializes based upon the current
104      * user and the requested db. [Of course this can be modified later]
105      *
106      * @param request - The controller request handed to you by the framework.
107      * @throws DBException upon initialization error
108      */

109     public ControllerDefault(ControllerRequest request)
110             throws DBException {
111         super(request);
112     }
113
114     /**
115      * Extend add to handle unspecified Style field
116      */

117     public void add()
118             throws DBException {
119         String JavaDoc style = StringUtil.notNull(getField("Style"));
120
121         if (style.equals("")) {
122             setField("Style", "default");
123         }
124
125         super.add();
126     } /* add() */
127
128
129     public synchronized void addDefault(String JavaDoc className, String JavaDoc stateCode,
130                                         String JavaDoc params)
131             throws DBException {
132         addDefault(className, "default", stateCode, params);
133     }
134
135     public synchronized void addDefault(String JavaDoc className, String JavaDoc style,
136                                         String JavaDoc stateCode, String JavaDoc params)
137             throws DBException {
138         ControllerDefault cd = new ControllerDefault();
139         cd.setDataContext(getDataContext());
140         cd.setField("ControllerClass", className);
141         cd.setField("Style", style);
142         cd.setField("StateCode", stateCode);
143
144         if (!cd.find()) {
145             cd.setField("ControllerClass", className);
146             cd.setField("Style", style);
147             cd.setField("StateCode", stateCode);
148             cd.setField("Params", params);
149             cd.add();
150         }
151
152         log.info("Added default for controller '" + className + "', style '" +
153                 style + "', state '" + stateCode + "' with parameters '" +
154                 params + "'");
155     }
156
157     public synchronized void populateDefaultValues()
158             throws DBException {
159         DBObjLimit dbl = new DBObjLimit();
160         dbl.setDataContext(getDataContext());
161         dbl.setField("DBObjectName", getClass().getName());
162
163         if (!dbl.find()) {
164             dbl.setField("PageLimit", "50");
165             dbl.setField("CacheSize", "50");
166             dbl.add();
167         }
168     }
169
170     /**
171      * Define the table and fields for this object
172      *
173      * @throws DBException If the fields cannot be set up
174      */

175     public void setupFields()
176             throws DBException {
177         setTargetTable("CTLDEFAULT");
178         setDescription("DBctlDefault");
179         setCharset("ISO-8859-1");
180         addField("ControllerClass", "char", 128, false, "controllerClass");
181         addField("Style", "char", 20, false, "style");
182         addField("StateCode", "char", 40, false, "state");
183         addField("Params", "text", 0, true, "params");
184         setStringFilter("Params", "rawFilter");
185         addKey("ControllerClass");
186         addKey("Style");
187         addKey("StateCode");
188     } /* setupFields() */
189
190 }
191
192 /* ControllerDefault */
Popular Tags