KickJava   Java API By Example, From Geeks To Geeks.

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


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.security.User;
70 import com.jcorporate.expresso.core.security.UserListener;
71
72 import java.util.Iterator JavaDoc;
73
74
75 /**
76  * A User Preference is a stored value or attribute that is related
77  * to a particular user. This value set a preference or customizes the
78  * behaviour of a particular application when used by this user.
79  *
80  * @author Michael Nash
81  */

82 public class UserPreference
83         extends SecurityDBObject
84         implements UserListener {
85
86
87     public static final String JavaDoc PREF_CODE = "PrefCode";
88     public static final String JavaDoc PREF_VALUE = "PrefValue";
89     public static final String JavaDoc CLASS_NAME = "ClassName";
90     public static final String JavaDoc EXPUID = "ExpUid";
91
92     static {
93         try {
94             User.addListener(new UserPreference());
95         } catch (Exception JavaDoc e) {
96             e.printStackTrace();
97             System.err.println(e.getMessage());
98         }
99
100     }
101
102     /**
103      * @see com.jcorporate.expresso.core.dbobj.SecuredDBObject#SecuredDBObject
104      */

105     public UserPreference()
106             throws DBException {
107     } /* UserPreference() */
108
109     /**
110      * Use over (String) constructor. Initializes the object in the context
111      * of the user who's uid belongs to the parameter.
112      *
113      * @param uid of the user context
114      * @throws DBException if there's an initialization problem
115      */

116     public UserPreference(int uid)
117             throws DBException {
118         super(uid);
119     }
120
121     /**
122      * For using DBObjects within Controllers. Initializes based upon the current
123      * user and the requested db. [Of course this can be modified later]
124      *
125      * @param request - The controller request handed to you by the framework.
126      */

127     public UserPreference(ControllerRequest request)
128             throws DBException {
129         super(request);
130     }
131
132     public void addedUser(User user)
133             throws DBException {
134     }
135
136     /**
137      * Extends the checkAllRefs method to check for valid UserGroup
138      *
139      * @throws DBException If a referential integrity violation is found
140      */

141     protected void checkAllRefs()
142             throws DBException {
143         checkRef("ClassName;PrefCode", new UserPreferenceDef(),
144                 "Invalid Preference Code");
145     } /* checkAllRefs() */
146
147
148     public void deletedUser(User user)
149             throws DBException {
150         UserPreference u = new UserPreference();
151         u.setDataContext(user.getDataContext());
152         u.setField(EXPUID, user.getUid());
153
154         UserPreference onePreference = null;
155
156         for (Iterator JavaDoc e = u.searchAndRetrieveList().iterator();
157              e.hasNext();) {
158             onePreference = (UserPreference) e.next();
159             onePreference.delete();
160         }
161     }
162
163     public void loggedOffUser(User user)
164             throws DBException {
165     }
166
167     public void loggedOnUser(User user)
168             throws DBException {
169     }
170
171     public void modifiedUser(User user)
172             throws DBException {
173     }
174
175     /**
176      * @see com.jcorporate.expresso.core.dbobj.SecuredDBObject#setupFields
177      * Note that valid values for PREF_VALUE may be specified in UserPreferenceVal,
178      * depending on the preference.
179      */

180     public void setupFields()
181             throws DBException {
182         setTargetTable("USERPREF");
183         setDescription("DBuserPref");
184         setCharset("ISO-8859-1");
185         addField(EXPUID, "int", 0, false, "userId");
186         addVirtualField("LoginName", "char", 30, "loginName");
187         addField(CLASS_NAME, "varchar", 128, false, "className");
188         addField(PREF_CODE, "varchar", 30, false, "prefCode");
189         addField(PREF_VALUE, "varchar", 80, false, "prefValue");
190         setStringFilter(CLASS_NAME, "stripFilter");
191         setStringFilter(PREF_CODE, "stripFilter");
192         setStringFilter("PrefValue", "rawFilter");
193
194         addKey(EXPUID);
195         addKey(CLASS_NAME);
196         addKey(PREF_CODE);
197
198         setLookupObject(EXPUID, "com.jcorporate.expresso.core.security.User");
199     } /* setupFields() */
200
201
202     public String JavaDoc getField(String JavaDoc fieldName)
203             throws DBException {
204         if (fieldName.equals("LoginName")) {
205             User u = new User();
206             u.setUid(getFieldInt(EXPUID));
207             u.setDataContext(this.getDataContext());
208
209             if (u.find()) {
210                 return u.getLoginName();
211             }
212
213             return "No such user";
214         }
215
216         return super.getField(fieldName);
217     }
218 } /* UserPreferece */
219
Popular Tags