KickJava   Java API By Example, From Geeks To Geeks.

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


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 /**
66  * LogEntry.java
67  *
68  * Copyright 1999, 2000, 2001 Jcorporate Ltd.
69  */

70 package com.jcorporate.expresso.services.dbobj;
71
72 import com.jcorporate.expresso.core.db.DBException;
73 import com.jcorporate.expresso.core.dbobj.RequestContext;
74 import com.jcorporate.expresso.core.dbobj.SecuredDBObject;
75 import com.jcorporate.expresso.core.misc.DateTime;
76
77
78 /**
79  * LogEntry
80  * Log system events, errors, etc
81  *
82  * @author Michael Nash
83  * @version $Revision: 1.14 $ $Date: 2004/11/18 02:03:30 $
84  */

85 public class LogEntry
86         extends SecuredDBObject {
87     /**
88      * Constructor
89      */

90     public LogEntry()
91             throws DBException {
92         super();
93     } /* LogEntry() */
94
95
96     /**
97      * @param uid the Expresos user id
98      * @throws DBException upon initialization error
99      */

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

112     public LogEntry(RequestContext request)
113             throws DBException {
114         super(request);
115     }
116
117     /**
118      * Extend the usual add method to set the date/time, and to provide
119      * default values for fields not specified
120      */

121     public void add()
122             throws DBException {
123         if (getField("LogTime").equals("")) {
124             setTimeStamp();
125         }
126         if (getField("MessageLevel").equals("")) {
127             setField("MessageLevel", "0");
128         }
129         if (getField("JobNumber").equals("")) {
130             setField("JobNumber", "none");
131         }
132         if (getField("ObjectName").equals("")) {
133             setField("ObjectName", "unknown");
134         }
135         if (getField("ExpUid").equals("")) {
136             setField("ExpUid", SecuredDBObject.SYSTEM_ACCOUNT);
137         }
138         if (getField("MessageText").equals("")) {
139             setField("MessageText", "No Message");
140         }
141
142         setField("MessageId",
143                 ("" + (Math.round(Math.random() * 1000))));
144         super.add();
145     } /* add() */
146
147
148     /**
149      * @throws DBException
150      */

151     public void setTimeStamp()
152             throws DBException {
153         setField("LogTime", DateTime.getDateTimeForDB(this.getDataContext()));
154     } /* setTimeStamp() */
155
156
157     /**
158      * Define the table and fields for this object
159      *
160      * @throws DBException If the fields cannot be set up
161      */

162     public void setupFields()
163             throws DBException {
164         setTargetTable("SYSLOG");
165         setDescription("DBsyslog");
166         setCharset("ISO-8859-1");
167         addField("LogTime", "datetime", 0, false, "dateTime");
168         addField("MessageText", "text", 0, false, "message");
169         addField("ObjectName", "varchar", 128, false, "object");
170         addField("MessageId", "int", 0, false, "messageId");
171         addField("ExpUid", "int", 0, false, "userId");
172         addField("JobNumber", "varchar", 80, false, "Job");
173         addField("MessageLevel", "int", 0, false, "Message Level");
174         addField("MessageColor", "char", 1, true, "Message Color");
175         addField("LogChannel", "varchar", 80, true, "Logging Channel");
176         setStringFilter("MessageText", "rawFilter");
177         setStringFilter("ObjectName", "stripFilter");
178         setStringFilter("JobNumber", "rawFilter");
179         setStringFilter("LogChannel", "rawFilter");
180         addKey("LogTime");
181         addKey("ObjectName");
182         addKey("MessageId");
183         setReadOnly("LogTime");
184     } /* setupFields() */
185
186
187 } /* LogEntry */
188
Popular Tags