com.bea.p13n.events
Class Event

java.lang.Object
  extended by com.bea.p13n.property.AbstractConfigurableEntity
      extended by com.bea.p13n.events.Event
All Implemented Interfaces
EventConstants, IEvent, ConfigurableEntity, Serializable
Direct Known Subclasses:
TrackingEvent

public class Event
extends AbstractConfigurableEntity
implements ConfigurableEntity, Serializable, EventConstants, IEvent

An event object. An event is characterized by having a type (some name) and a timestamp (when the event occurred). Once the event is created, it can not change type or time stamp.

An Event also has named attributes (as in a Map). The attribute names are strings, but the values can be any serializable object.

Event mimics ConfigurableEntity by implementing only one method - getProperty. Other methods of ConfigurableEntity are not supported and will throw UnsupportedOperationException if used.

See Also
Serialized Form

Field Summary
 
Fields inherited from class com.bea.p13n.property.AbstractConfigurableEntity
CE_METHOD_CACHE, instanceClass, PREFIX_GET, PREFIX_SET, propertyCache, textFormatter
 
Fields inherited from interface com.bea.p13n.property.ConfigurableEntity
RESERVED_PROPERTY_SET
 
Fields inherited from interface com.bea.p13n.events.EventConstants
TYPE_ALL
 
Constructor Summary
Event(String theType)
          Construct a new Event.
Event(String theType, long theTimeStamp)
          Construct a new Event.
 
Method Summary
 String getApplication()
          Get the application name that dispatched this event.
 Object getAttribute(String theKey)
          Get named event attribute.
 Iterator getAttributeNames()
          Return the attribute names that have been set on this event.
 Object getProperty(String propertySet, String propertyName)
          Mimics the getProperty method on thr ConfigurableEntity interface.
 long getTimeStamp()
          Get the time stamp of this event (usually system time when the Event was constructed).
 String getType()
          Get the type of this event.
 Object removeAttribute(String theKey)
          Remove the attribute.
 void setApplication(String appName)
          Set the application name for this event.
 void setAttribute(String theKey, Serializable theValue)
          Set a named event attribute.
 void setTimeStamp(long theTimeStamp)
          Set the time stamp of this event (typically system time when the Event was constructed).
 String toString()
          Return a string representation of the Event.
 
Methods inherited from class com.bea.p13n.property.AbstractConfigurableEntity
createMapKey, getCachedProperty, getExplicitProperty, getExplicitSetter, getImplicitProperty, getJndiName, getPkString, getPropertyAsString, getPropertyCache, getPropertyNoDefault, getUniqueId, hasExplicitGetter, hasExplicitSetter, removeExplicitProperty, removeProperty, setExplicitProperty, setProperty, upcaseFirst
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.bea.p13n.property.ConfigurableEntity
getJndiName, getPkString, getPropertyAsString, getPropertyNoDefault, getUniqueId, removeProperty, setProperty
 

Constructor Detail

Event

public Event(String theType)
Construct a new Event. The event's type is required. The type may not be null nor an empty string. The type is simply the name of the event that occurred. It is used for dispatching the event to interested listeners. The event's timstamp is also set from the current system time.

Parameters
theType - the event type.
Throws
IllegalArgumentException - if theType is null or an empty string.

Event

public Event(String theType,
             long theTimeStamp)
Construct a new Event. The event's type is required. The type may not be null nor an empty string. The type is simply the name of the event that occurred. It is used for dispatching the event to interested listeners. The event's timstamp is also set from the current system time, and the application name is set from the calling component's application context.

This constructor is provided so that an Event can be created when the time of the "event trigger" is not the same as the time when this object (that represents that trigger) is created. This constructor would not normally be used - normal applications should use the Event(String theType) constructor.

Parameters
theType - the event type.
theTimeStamp - the timestamp for the event, in milliseconds since midnight, January 1, 1970 UTC.
Throws
IllegalArgumentException - if theType is null or an empty string.
Method Detail

setApplication

public void setApplication(String appName)
Set the application name for this event. The application is mutable because it may not be set by the object that created the Event object (eg, in the case of externally-connected applications). If the application name is null when the object is dispatched, the EventServiceBean will call this method with its application name.

Specified by:
setApplication in interface IEvent
Parameters
appName - the name of application from where the event is dispatched.

getApplication

public String getApplication()
Get the application name that dispatched this event.

Specified by:
getApplication in interface IEvent
Returns
application name, as named when this Event object was dispatched.

getType

public String getType()
Get the type of this event.

Specified by:
getType in interface IEvent
Returns
the event type, as named when this Event object was created.

getTimeStamp

public long getTimeStamp()
Get the time stamp of this event (usually system time when the Event was constructed).

Specified by:
getTimeStamp in interface IEvent
Returns
the time stamp, measured in milliseconds since midnight, January 1, 1970 UTC.

setTimeStamp

public void setTimeStamp(long theTimeStamp)
Set the time stamp of this event (typically system time when the Event was constructed).

Parameters
theTimeStamp - milliseconds since midnight, January 1, 1970 UTC. Can not be null.

setAttribute

public void setAttribute(String theKey,
                         Serializable theValue)
Set a named event attribute.

Specified by:
setAttribute in interface IEvent
Parameters
theKey - the attribute name. Can not be null.
theValue - the value of the attribute.
Throws
NullPointerException - if theKey is null.

removeAttribute

public Object removeAttribute(String theKey)
Remove the attribute.

Specified by:
removeAttribute in interface IEvent
Parameters
theKey - the attribute name.
Returns
previous value associated with theKey, or null if there was no mapping for theKey.

getAttribute

public Object getAttribute(String theKey)
Get named event attribute.

Specified by:
getAttribute in interface IEvent
Returns
value associated with theKey, or null if there was no mapping for theKey.

getAttributeNames

public Iterator getAttributeNames()
Return the attribute names that have been set on this event. This iterator provides a "read-only" view of the attributes - remove is not supported.

Specified by:
getAttributeNames in interface IEvent

toString

public String toString()
Return a string representation of the Event. Returns as:
  Event [type @ timeStamp] { attributeKey=attributeValue, ... }
 
The time stamp is formated using java.util.Date.toString(). The attribute values are converted to string using String.valueOf().

Overrides:
toString in class Object

getProperty

public Object getProperty(String propertySet,
                          String propertyName)
Mimics the getProperty method on thr ConfigurableEntity interface.

This method delegates to the getAttribute, passing the propertyName parameter as the key argument. It is assumed that the propertySet parameter is the same as the event type.

Specified by:
getProperty in interface IEvent
Specified by:
getProperty in interface ConfigurableEntity
Overrides:
getProperty in class AbstractConfigurableEntity
Parameters
propertySet - The name of the property set to look in
propertyName - The name of the property to retrieve.
Returns
the value for this property, or null if all searches failed


Copyright © 2011, Oracle. All rights reserved.