001: /*
002: JSPWiki - a JSP-based WikiWiki clone.
003:
004: Copyright (C) 2001-2006 Janne Jalkanen (Janne.Jalkanen@iki.fi)
005:
006: This program is free software; you can redistribute it and/or modify
007: it under the terms of the GNU Lesser General Public License as published by
008: the Free Software Foundation; either version 2.1 of the License, or
009: (at your option) any later version.
010:
011: This program is distributed in the hope that it will be useful,
012: but WITHOUT ANY WARRANTY; without even the implied warranty of
013: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014: GNU Lesser General Public License for more details.
015:
016: You should have received a copy of the GNU Lesser General Public License
017: along with this program; if not, write to the Free Software
018: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
019: */
020:
021: package com.ecyrd.jspwiki.event;
022:
023: import com.ecyrd.jspwiki.WikiEngine;
024:
025: /**
026: * WikiEngineEvent indicates a change in the state of the WikiEngine.
027: *
028: * @author Murray Altheim
029: * @author Andrew Jaquith
030: * @see com.ecyrd.jspwiki.event.WikiEvent
031: * @since 2.4.20
032: */
033: public class WikiEngineEvent extends WikiEvent {
034: private static final long serialVersionUID = 1829433967558773970L;
035:
036: /** Indicates a WikiEngine initialization event, fired as the
037: * wiki service is being initialized (in progress). */
038: public static final int INITIALIZING = -1;
039:
040: /** Indicates a WikiEngine initialized event, fired after the
041: * wiki service is fully available. */
042: public static final int INITIALIZED = 0;
043:
044: /** Indicates a WikiEngine closing event, fired as a signal that
045: * the wiki service is shutting down. */
046: public static final int SHUTDOWN = 1;
047:
048: /** Indicates a WikiEngine stopped event, fired after halting the wiki service.
049: * A WikiEngine in this state is not expected to provide further services.
050: */
051: public static final int STOPPED = 2;
052:
053: private WikiEngine m_engine;
054:
055: // ............
056:
057: /**
058: * Constructs an instance of this event.
059: * @param eventSource the Object that is the source of the event,
060: * which <b>must</b> be the WikiEngine. If it is not, this
061: * method thows a ClassCastException
062: * @param type the event type
063: */
064: public WikiEngineEvent(Object eventSource, int type) {
065: super (eventSource, type);
066: m_engine = (WikiEngine) eventSource;
067: }
068:
069: /**
070: * Sets the type of this event.
071: *
072: * @param type the type of this WikiEngineEvent.
073: */
074: protected void setType(int type) {
075: if (type >= INITIALIZING && type <= STOPPED) {
076: super .setType(type);
077: } else {
078: super .setType(ERROR);
079: }
080: }
081:
082: /**
083: * Returns the WikiEngine that spawned this event.
084: *
085: * @return the WikiEngine that spawned this event.
086: */
087: public WikiEngine getEngine() {
088: return m_engine;
089: }
090:
091: /**
092: * Returns the WikiEngine that spawned this event.
093: *
094: * @return the WikiEngine that spawned this event.
095: * @deprecated use {@link #getEngine()} instead.
096: */
097: public WikiEngine getWikiEngine() {
098: return m_engine;
099: }
100:
101: /**
102: * Returns <code>true</code> if the int value is a WikiPageEvent type.
103: * @param type the event type
104: * @return the result
105: */
106: public static boolean isValidType(int type) {
107: return type >= INITIALIZING && type <= STOPPED;
108: }
109:
110: /**
111: * Returns a textual representation of the event type.
112: *
113: * @return a String representation of the type
114: */
115: public final String eventName() {
116: switch (getType()) {
117: case INITIALIZING:
118: return "INITIALIZING";
119: case INITIALIZED:
120: return "INITIALIZED";
121: case SHUTDOWN:
122: return "SHUTDOWN";
123: case STOPPED:
124: return "STOPPED";
125: default:
126: return super .eventName();
127: }
128: }
129:
130: /**
131: * Returns a human-readable description of the event type.
132: *
133: * @return a String description of the type
134: */
135: public final String getTypeDescription() {
136: switch (getType()) {
137: case INITIALIZING:
138: return "wiki engine initializing";
139: case INITIALIZED:
140: return "wiki engine initialized";
141: case SHUTDOWN:
142: return "wiki engine shutting down";
143: case STOPPED:
144: return "wiki engine stopped";
145: default:
146: return super .getTypeDescription();
147: }
148: }
149:
150: } // end class com.ecyrd.jspwiki.event.WikiEngineEvent
|