01: package org.tigris.scarab.om;
02:
03: import org.apache.torque.TorqueException;
04:
05: /* ================================================================
06: * Copyright (c) 2000-2005 CollabNet. All rights reserved.
07: *
08: * Redistribution and use in source and binary forms, with or without
09: * modification, are permitted provided that the following conditions are
10: * met:
11: *
12: * 1. Redistributions of source code must retain the above copyright
13: * notice, this list of conditions and the following disclaimer.
14: *
15: * 2. Redistributions in binary form must reproduce the above copyright
16: * notice, this list of conditions and the following disclaimer in the
17: * documentation and/or other materials provided with the distribution.
18: *
19: * 3. The end-user documentation included with the redistribution, if
20: * any, must include the following acknowlegement: "This product includes
21: * software developed by CollabNet <http://www.collab.net/>."
22: * Alternately, this acknowlegement may appear in the software itself, if
23: * and wherever such third-party acknowlegements normally appear.
24: *
25: * 4. The hosted project names must not be used to endorse or promote
26: * products derived from this software without prior written
27: * permission. For written permission, please contact info@collab.net.
28: *
29: * 5. Products derived from this software may not use the "Tigris" or
30: * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without
31: * prior written permission of CollabNet.
32: *
33: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
34: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
35: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
36: * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
37: * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
39: * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
40: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
41: * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
42: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
43: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
44: *
45: * ====================================================================
46: *
47: * This software consists of voluntary contributions made by many
48: * individuals on behalf of CollabNet.
49: */
50:
51: /**
52: * This class is the home of where we store user preferences
53: * right now the design is based on adding columns to the database
54: * for each thing you want to store. Eventually, we will want
55: * to come up with a real system for dealing with this.
56: *
57: * @author <a href="mailto:jon@collab.net">Jon S. Stevens</a>
58: * @version $Id: UserPreference.java 10261 2006-08-27 10:11:29Z jorgeuriarte $
59: */
60: public class UserPreference extends BaseUserPreference {
61: /**
62: * This method truncates the preference length at 255 characters,
63: * as the database column is onl 255 characters. This should not
64: * have an adverse affect because the <code>Accept-Language</code>
65: * header parser generally only needs the first few characters.
66: *
67: * @param locale The Locale information.
68: */
69: public void setLocale(String locale) {
70: super
71: .setLocale((locale != null && locale.length() > 255) ? locale
72: .substring(0, 255)
73: : locale);
74: }
75:
76: /**
77: * Makes sure only non-anonymous users will upgrade their configuration.
78: */
79: public void save() throws TorqueException {
80: if (!this.getScarabUser().isUserAnonymous()) {
81: super.save();
82: }
83: }
84: }
|