|
WebObjects 5.4.2 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.webobjects.eocontrol.EOEvent
public class EOEvent
EOEvent is an abstract class that provides concrete subclasses with a structure for storing information about a logged event.
Subclasses of EOEvent don't need to override any inherited methods or implement any methods at all. You can customize the behavior if you want, but the default implementations are sufficient for most cases. Generally, to create a subclass of EOEvent, you declare it and create a description file that defines the events the subclass logs. The class itself usually declares no instance variables and implements no methods. The abstract implementation gets all the information it needs from the description file.
Most of the work involved in logging custom events is instrumenting the code.
EOEvent.eventTypeDescriptions(Class aClass)
,
EOEventCenter
,
Serialized FormField Summary | |
---|---|
static int |
BasicEventSignature
A possible signature type for use with the methods signatureOfType , aggregateEvents and groupEvents . |
static String |
EventGroupName
Key used in the dictionary returned by eventTypeDescriptions . |
Constructor Summary | |
---|---|
EOEvent()
Creates a new event object. |
Method Summary | |
---|---|
static NSArray |
aggregateEvents(NSArray events,
int tag)
Returns an array of aggregated events. |
static String |
classDescription(Class aClass)
Returns a description of the family of events represented by the class aClass . |
String |
comment()
Returns type-specific information about the event. |
int |
compare(EOEvent other)
Compares the receiver to other . |
String |
description()
Returns a String that includes the receiver's title, comment, and duration or start date (whichever is appropriate). |
String |
displayComponentName()
Returns the name of a WebObjects component to use to display the receiver's logging information. |
long |
duration()
Returns the duration of the receiver in milliseconds or 0 if the event is atomic (not a branch event) or if the branch is not yet closed. |
long |
durationWithoutSubevents()
Returns the duration of the receiver in milliseconds, not including the time spent in its subevents (if any). |
static NSDictionary |
eventTypeDescriptions(Class aClass)
Used to determine event types and descriptions for a family of events. |
static NSArray |
groupEvents(NSArray events,
int tag)
Returns an array of grouped events. |
Object |
info()
Returns the custom info for the receiver. |
void |
markAtomicWithInfo(Object info)
Initializes the receiver, a newly created event, as an atomic event that has an absolute start date (and not a duration), and sets its info to info . |
void |
markEnd()
Marks the end of a branch event, which has the side effect of setting the duration. |
void |
markStartWithInfo(Object info)
Initializes the receiver, a newly created event, to be a branch event (that possibly has nested subevents), and sets its info to info . |
EOEvent |
parentEvent()
Returns the parent event, if any, or null otherwise. |
void |
setInfo(Object info)
Sets the custom event information for the receiver. |
void |
setType(String type)
Sets the receiver's type. |
String |
signatureOfType(int tag)
Returns the requested receiver's signature, which can be used to group and aggregate the receiver with other events that have the same signature. |
NSTimestamp |
startDate()
Returns the date at which the receiver was logged. |
NSArray |
subevents()
Returns the receiver's immediate subevents (events that were logged with this event as their parent). |
String |
title()
Returns the event type description corresponding with the receiver's type. |
String |
toString()
Returns a String that includes the receiver's title, comment, and duration or start date (whichever is appropriate). |
String |
type()
Returns the receiver's type. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int BasicEventSignature
signatureOfType
, aggregateEvents
and groupEvents
.
EOEvent.signatureOfType(int)
,
EOEvent.aggregateEvents(NSArray, int)
,
EOEvent.groupEvents(NSArray, int)
,
Constant Field Valuespublic static final String EventGroupName
eventTypeDescriptions
. The EventGroupName
entry provides the description of the family of events represented by the event class.
EOEvent.eventTypeDescriptions(Class)
,
Constant Field ValuesConstructor Detail |
---|
public EOEvent()
Method Detail |
---|
public static NSDictionary eventTypeDescriptions(Class aClass)
Used to determine event types and descriptions for a family of events. The keys of this dictionary are event types and the corresponding values are descriptions of events of the types. Subclasses don't need to implement this method since EOEvent's implementation is generally sufficient for subclasses.
EOEvent's implementation reads the event types and their descriptions from a file. To define the types the event class represents, create a description file for the event and add it to the project's resources. An event's description file defines the event categories and subcategories used in
the WOEventDisplay
page. The file's contents is a dictionary in plist format.
For example, consider a CustomAdaptorEvent
that would log events for a custom database adaptor. CustomAdaptorEvent
would be a subclass of EOEvent and use EOEvent's implementation of eventTypeDescriptions
. The name of its description file would be
CustomAdaptorEvent.description
, and it would look like this:
{ EOEventGroupName = "Custom Adaptor Event"; connect = "Connect"; openChannel = "Open Channel"; evaluateExpression = "Evaluate Expression"; fetchRow = "Fetch Row"; commitTransaction = "Commit Transaction"; }
Using the EOEvent implementation, the EOEventGroupName entry is mandatory; it describes the family of events logged by the event class. Any other keys are defined by the event class itself. In the CustomAdaptorEvent
class, the other keys (connect
,
openChannel
, and so on) would be the types of the events CustomAdaptorEvent
logs.
If the file doesn't exist or if there's an error reading the file, EOEvent creates a dictionary with a single entry; the entry's key is EOEventGroupName
and the value is the name of the event class (such as CustomAdaptorEvent
).
aClass
- the input event class
EOEvent.EventGroupName
public String title()
WOEventDisplay
. EOEvent's implementation returns the value from the eventTypeDescriptions
dictionary for the receiver's type. If there isn't an entry in the
eventTypeDescriptions
dictionary for the receiver's type, EOEvent's implementation returns the name of the receiver's class.
EOEvent.type()
,
EOEvent.eventTypeDescriptions(Class)
public void setInfo(Object info)
WOEventDisplay
page. The info argument can be any kind of object that implements the equals
and toString
methods.
info
- the info objectpublic void setType(String type)
type
- the string describing the type of the receiverEOEvent.eventTypeDescriptions(Class)
public String signatureOfType(int tag)
EOEvent.BasicEventSignature
, which has the corresponding signature of the form "title-comment".
If the specified signature type is unknown, EOEvent's implementation returns null
.
tag
- the tag indicating the type of the signature
EOEvent.BasicEventSignature
,
EOEvent.aggregateEvents(NSArray, int)
,
EOEvent.groupEvents(NSArray, int)
public void markStartWithInfo(Object info)
Initializes the receiver, a newly created event, to be a branch event (that possibly has nested subevents), and sets its info to info
. The new event object is usually created with the EOEventCenter
method newEventOfClass
.
Note: Don't invoke this method directly. Use the corresponding method defined in EOEventCenter
instead.
info
- the event's info objectEOEvent.info()
,
EOEvent.markAtomicWithInfo(Object)
,
EOEventCenter.newEventOfClass(Class, String)
,
EOEventCenter.markStartOfEvent(EOEvent, Object)
public void markAtomicWithInfo(Object info)
Initializes the receiver, a newly created event, as an atomic event that has an absolute start date (and not a duration), and sets its info to info
. The new event object is usually created with the EOEventCenter
method newEventOfClass
.
Note: Don't invoke this method directly. Use the corresponding method defined in EOEventCenter
instead.
info
- the event's info objectEOEvent.info()
,
EOEvent.startDate()
,
EOEvent.duration()
,
EOEvent.markStartWithInfo(Object)
,
EOEventCenter.newEventOfClass(Class, String)
,
EOEventCenter.markAtomicEvent(EOEvent, Object)
public void markEnd()
Marks the end of a branch event, which has the side effect of setting the duration.
Note: Don't invoke this method directly. Use the corresponding method defined in EOEventCenter
instead.
EOEvent.duration()
,
EOEvent.markStartWithInfo(Object)
,
EOEventCenter.markEndOfEvent(EOEvent)
public EOEvent parentEvent()
null
otherwise. Events logged at the root level do not have a parent. Other events return the event that was open at the time that they were started.
null
if there isn't onepublic String type()
eventTypeDescriptions
method description.
EOEvent.eventTypeDescriptions(Class)
public Object info()
public String toString()
toString
in class Object
public String description()
public static String classDescription(Class aClass)
aClass
. EOEvent's implementation returns the event description for the EOEvent.EventGroupName
key. For more information, see the eventTypeDescriptions
method description.
aClass
- the event class to be described
EOEvent.EventGroupName
,
EOEvent.eventTypeDescriptions(Class)
public NSTimestamp startDate()
public long duration()
public long durationWithoutSubevents()
public NSArray subevents()
public String comment()
EOEvent.info()
public String displayComponentName()
WOEventRow
component, which is generally sufficient for subclasses.
public static NSArray groupEvents(NSArray events, int tag)
tag
from each EOEvent in events
and groups events with the same signature into a special, single event. The resulting array has an event for each different signature. The subevents of these special
events are the grouped events. This method is for use by the WOEventDisplay
page.
events
- the array of EOEvents to grouptag
- the tag indicating the type of the event
public static NSArray aggregateEvents(NSArray events, int tag)
tag
from each EOEvent in events
and aggregates the events with the same signature into a special, single event. The resulting array has an event for each different signature. The events in this
array have a duration equal to the sum of the durations of its aggregated events. The subevents of these special events are the union of the subevents of its aggregated events. This method is for use by the WOEventDisplay
page.
events
- the array of EOEvents to grouptag
- the tag indicating the type of the event
public int compare(EOEvent other)
other
. If the receiver was logged before the other event, this method returns NSComparator.OrderedAscending
. If the receiver was logged after the other event, this method returns NSComparator.OrderedDescending
. If the
dates match, this method returns NSComparator.OrderedSame
.
other
- the EOEvent to be compared
NSComparator.OrderedAscending
, NSComparator.OrderedDescending
, or NSComparator.OrderedSame
|
Last updated June 2008 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |