Source code: com/jcorporate/expresso/ext/dbobj/regobj/Contact.java
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.ext.dbobj.regobj;
66
67 import com.jcorporate.expresso.core.db.DBConnection;
68 import com.jcorporate.expresso.core.db.DBException;
69 import com.jcorporate.expresso.core.dbobj.RequestContext;
70 import com.jcorporate.expresso.core.dbobj.ValidValue;
71 import com.jcorporate.expresso.core.misc.DateTime;
72 import com.jcorporate.expresso.services.dbobj.RegistrationDBObject;
73
74 import java.util.Vector;
75
76
77 /**
78 * Creation date: 2001-08-24 11:57:54
79 *
80 * @author Written by webAppWriter, an Expresso Program by Pete Carapetyan - webAppWriter.com
81 * HOWEVER - Most of the code included in this file is derived from code
82 * created directly by Michael Nash of jCorporate, or Adam Rossi of Platinum Solutions
83 */
84 public class Contact
85 extends RegistrationDBObject {
86
87 /**
88 * Constructor
89 *
90 * @throws DBException upon initialization error
91 */
92 public Contact()
93 throws DBException {
94 super();
95 } /* User() */
96
97 /**
98 * Constructor
99 *
100 * @param myConnection the database connection to use for executions
101 * @throws DBException upon initialization error
102 */
103 public Contact(DBConnection myConnection)
104 throws DBException {
105 super(myConnection);
106 } /* User(String) */
107
108 /**
109 * For using DBObjects within Controllers. Initializes based upon the current
110 * user and the requested db. [Of course this can be modified later]
111 *
112 * @param request - The controller request handed to you by the framework.
113 * @throws DBException upon initialization error
114 */
115 public Contact(RequestContext request)
116 throws DBException {
117 super(request);
118 }
119
120 /**
121 * Use over (String) constructor. Initializes the object in the context
122 * of the user who's uid belongs to the parameter.
123 *
124 * @param uid the Uid of the user context
125 * @throws DBException if there's an initialization problem
126 */
127 public Contact(int uid)
128 throws DBException {
129 super(uid);
130 }
131
132 /**
133 * @throws DBException upon add error
134 */
135 public void add()
136 throws DBException {
137 setField("AddedOn", DateTime.getDateTimeForDB(this.getDataContext()));
138 setField("UpdatedOn", DateTime.getDateTimeForDB(this.getDataContext()));
139 super.add();
140 } /* add() */
141
142
143 /**
144 * @param fieldName the name of the field
145 * @return Vector of Valid Value/Description pairs for UserNameTables
146 * @throws DBException If the values cannot be retrieved
147 */
148 public Vector getValidValues(String fieldName)
149 throws DBException {
150 Vector myValues = new Vector(4);
151
152 if (fieldName.equals(FLD_TYPE)) {
153 myValues.addElement(new ValidValue("Secondary Email",
154 "Secondary Email"));
155 myValues.addElement(new ValidValue("Web URL", "Web URL"));
156 myValues.addElement(new ValidValue("Instant Messenger",
157 "Instant Messenger"));
158 myValues.addElement(new ValidValue("IIRC", "IIRC"));
159 myValues.addElement(new ValidValue("Other", "Other"));
160
161 return myValues;
162 }
163
164 return super.getValidValues(fieldName);
165 }
166
167 /**
168 * @throws DBException upon error
169 * @see com.jcorporate.expresso.core.dbobj.SecuredDBObject
170 */
171 public void setupFields()
172 throws DBException {
173 setTargetTable("SMPREGCT");
174 setDescription("Ways of Contacting You");
175 setCharset("ISO-8859-1");
176
177 /*[addFieldsHere]*/
178 addField("ContactID", "auto-inc", 0, false, "Contact ID");
179 addField("ExpUid", "int", 0, false, "Person ID Number");
180 addField(FLD_TYPE, "varchar", 20, false, "Type");
181 addField("Contact", "varchar", 20, false, "Address/URL/Number/etc.");
182 addField("Instructions", "text", 0, true, "Contact When/How");
183 addField("AddedOn", "datetime", 0, true, "Added On");
184 addField("UpdatedOn", "datetime", 0, true, "Updated On");
185 setReadOnly("AddedOn");
186 setReadOnly("UpdatedOn");
187
188 /*[addDBObjSetupExtrasHere]*/
189 setReadOnly("ContactID");
190 addKey("ContactID");
191 setLookupObject("ExpUid",
192 "com.jcorporate.expresso.security.dbobj.DefaultUserInfo");
193 addKey("ExpUid");
194 setMultiValued(FLD_TYPE);
195 }
196
197 /**
198 * Field Name Values
199 */
200 public static final String FLD_TYPE = "ContactType";
201
202 /**
203 * @throws DBException
204 */
205 public void update()
206 throws DBException {
207 setField("UpdatedOn", DateTime.getDateTimeForDB(this.getDataContext()));
208 super.update();
209 } /* update() */
210
211
212 } /* PersonalData */
213
214 /* PersonalData */