001: /*
002: * The contents of this file are subject to the
003: * Mozilla Public License Version 1.1 (the "License");
004: * you may not use this file except in compliance with the License.
005: * You may obtain a copy of the License at http://www.mozilla.org/MPL/
006: *
007: * Software distributed under the License is distributed on an "AS IS"
008: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
009: * See the License for the specific language governing rights and
010: * limitations under the License.
011: *
012: * The Initial Developer of the Original Code is Simulacra Media Ltd.
013: * Portions created by Simulacra Media Ltd are Copyright (C) Simulacra Media Ltd, 2004.
014: *
015: * All Rights Reserved.
016: *
017: * Contributor(s):
018: */
019: package org.openharmonise.rm.logging;
020:
021: import java.util.Date;
022: import java.util.logging.*;
023: import java.util.logging.Level;
024:
025: import org.openharmonise.rm.*;
026: import org.openharmonise.rm.publishing.*;
027: import org.openharmonise.rm.resources.AbstractObject;
028: import org.openharmonise.rm.resources.users.*;
029: import org.openharmonise.rm.sessions.*;
030:
031: /**
032: *
033: * <code>LogEvent</code> objects represent an event within Harmonise
034: * that can be stored in the event log
035: *
036: * @author Michael Bell
037: * @version $Revision: 1.2 $
038: *
039: */
040: public class LogEvent {
041:
042: /**
043: * The session associated with the event.
044: */
045: protected Session m_session = null;
046:
047: /**
048: * The user associated with the event.
049: */
050:
051: protected User m_user = null;
052: /**
053: * The <code>State</code> context of the event.
054: */
055:
056: protected State m_state = null;
057:
058: /**
059: * The object associated with the event.
060: */
061: protected Object m_eventObj = null;
062:
063: /**
064: * The action/command/label associated with the event.
065: */
066: protected String m_sCommand = null;
067:
068: /**
069: * The timestamp of the event.
070: */
071: protected Date m_timestamp = null;
072:
073: /**
074: * Any additional comments to be added to the event
075: */
076: protected String m_sAdditional = null;
077:
078: /**
079: * Logger for this class
080: */
081: private static final Logger m_logger = Logger
082: .getLogger(LogEvent.class.getName());
083:
084: /**
085: * Constructs a new log event, timestamping the creation of the event.
086: */
087: public LogEvent() {
088: super ();
089: m_timestamp = new Date();
090: }
091:
092: /**
093: * Returns the <code>Session</code> associated with this event.
094: *
095: * @return the <code>Session</code> associated with this event.
096: */
097: public Session getSession() {
098: return m_session;
099: }
100:
101: /**
102: * Returns the <code>State</code> associated with this event.
103: *
104: * @return the <code>State</code> associated with this event
105: */
106: public State getState() {
107: return m_state;
108: }
109:
110: /**
111: * Sets the <code>Session</code> associated with this event.
112: *
113: * @param session the <code>Session</code> associated with this event
114: */
115: public void setSession(Session session) {
116: m_session = session;
117: try {
118: m_user = session.getUser();
119: } catch (DataAccessException e) {
120: m_logger.log(Level.WARNING, e.getLocalizedMessage(), e);
121: }
122: }
123:
124: /**
125: * Sets the <code>State</code> associated with this event.
126: *
127: * @param state the <code>State</code> associated with this event
128: */
129: public void setState(State state) throws PopulateException {
130: m_state = state;
131: try {
132: m_session = state.getSession();
133: } catch (DataAccessException e) {
134: throw new PopulateException("Error getting session", e);
135: }
136: m_user = state.getLoggedInUser();
137:
138: }
139:
140: /**
141: * Returns the label, description of action or command
142: * associated with this event.
143: *
144: * @return the label associated with this event
145: */
146: public String getLabel() {
147: return m_sCommand;
148: }
149:
150: /**
151: * Returns the id of the object.
152: *
153: * @return the id of the object
154: */
155: public int getObjectId() {
156: int nObjId = -1;
157:
158: if (m_eventObj != null && m_eventObj instanceof AbstractObject) {
159: nObjId = ((AbstractObject) m_eventObj).getId();
160: }
161:
162: return nObjId;
163: }
164:
165: /**
166: * Returns the object associated with this event.
167: *
168: * @return the object associated with this event
169: */
170: public Object getObject() {
171: return m_eventObj;
172: }
173:
174: /**
175: * Sets the label associated to this event.
176: *
177: * @param string the label, description of action or command, associated to this event
178: */
179: public void setLabel(String string) {
180: m_sCommand = string;
181: }
182:
183: /**
184: * Sets the object associated with this event.
185: *
186: * @param obj the object associated with this event
187: */
188: public void setEventObject(Object obj) {
189: m_eventObj = obj;
190: }
191:
192: /**
193: * Sets the user associated with this event.
194: *
195: * @param usr the user associated with this event
196: */
197: public void setUser(User usr) {
198: m_user = usr;
199: }
200:
201: /**
202: * Returns the user associated with this event.
203: *
204: * @return the user associated with this event
205: */
206: public User getUser() {
207: return m_user;
208: }
209:
210: /**
211: * Returns the time this event occurred.
212: *
213: * @return the time this event occurred
214: */
215: public Date getTimestamp() {
216: return m_timestamp;
217: }
218:
219: /**
220: * Adds additional string data to this event.
221: *
222: * @param sAdditional the additional string data
223: */
224: public void addAdditionalInfo(String sAdditional) {
225: m_sAdditional = sAdditional;
226: }
227:
228: /**
229: * Returns any additional info held as a string.
230: *
231: * @return any additional info held as a string
232: */
233: public String getAdditionalInfo() {
234: return m_sAdditional;
235: }
236: }
|