org.dspace.event
Class Event

java.lang.Object
  extended by org.dspace.event.Event
All Implemented Interfaces:
Serializable

public class Event
extends Object
implements Serializable

An Event object represents a single action that changed one object in the DSpace data model. An "atomic" action at the application or business-logic API level may spawn many of these events.

This class includes tools to help set and use the contents of the event. Note that it describes DSpace data object types in two ways: by the type identifiers in the Constants class, and also by an Event-specific bitmask (used by its internal filters). All public API calls use the Constants version of the data model types.

Note that the type of the event itself is actually descriptive of the action it performs: ADD, MODIFY, etc. The most significant elements of the event are:

Version:
$Revision: 5844 $
See Also:
Serialized Form

Field Summary
static int ADD
           
static int CREATE
          Event (Action) types
static int DELETE
           
static int EVENT_MASK
           
static int INSTALL
           
static int MODIFY
           
static int MODIFY_METADATA
           
static int REMOVE
           
static int SUBJECT_MASK
          Index of filter parts in their array:
 
Constructor Summary
Event(int eventType, int subjectType, int subjectID, int objectType, int objectID, String detail)
          Constructor.
Event(int eventType, int subjectType, int subjectID, String detail)
          Constructor.
 
Method Summary
 boolean equals(Object other)
          Compare two events.
 BitSet getBitSet()
           
 int getCurrentUser()
           
 String getDetail()
           
 int getDispatcher()
           
 int getEventType()
           
 String getEventTypeAsString()
          Get the text name of event (action) type.
 String getExtraLogInfo()
           
 DSpaceObject getObject(Context context)
          Get the DSpace object which is the "object" of an event.
 int getObjectID()
           
 int getObjectType()
           
 String getObjectTypeAsString()
           
 DSpaceObject getSubject(Context context)
          Syntactic sugar to get the DSpace object which is the "subject" of an event.
 int getSubjectID()
           
 int getSubjectType()
           
 String getSubjectTypeAsString()
           
 long getTimeStamp()
           
 String getTransactionID()
           
 int hashCode()
           
static int parseEventType(String s)
          Interpret named event type.
static int parseObjectType(String s)
          Translate a textual DSpace Object type name into an event subject-type mask.
 boolean pass(List<int[]> filters)
          Test whether this event would pass through a list of filters.
 void setBitSet(String consumerName)
          Keeps track of which consumers the event has been consumed by.
 void setCurrentUser(int uid)
           
 void setDispatcher(int id)
          Set the identifier of the dispatcher that first processed this event.
 void setExtraLogInfo(String info)
           
 void setTransactionID(String tid)
          Sets value of transactionID element of the event.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

CREATE

public static final int CREATE
Event (Action) types

See Also:
Constant Field Values

MODIFY

public static final int MODIFY
See Also:
Constant Field Values

MODIFY_METADATA

public static final int MODIFY_METADATA
See Also:
Constant Field Values

ADD

public static final int ADD
See Also:
Constant Field Values

REMOVE

public static final int REMOVE
See Also:
Constant Field Values

DELETE

public static final int DELETE
See Also:
Constant Field Values

INSTALL

public static final int INSTALL
See Also:
Constant Field Values

SUBJECT_MASK

public static final int SUBJECT_MASK
Index of filter parts in their array:

See Also:
Constant Field Values

EVENT_MASK

public static final int EVENT_MASK
See Also:
Constant Field Values
Constructor Detail

Event

public Event(int eventType,
             int subjectType,
             int subjectID,
             String detail)
Constructor.

Parameters:
eventType - action type, e.g. Event.ADD.
subjectType - DSpace Object Type of subject e.g. Constants.ITEM.
subjectID - database ID of subject instance.
detail - detail information that depends on context.

Event

public Event(int eventType,
             int subjectType,
             int subjectID,
             int objectType,
             int objectID,
             String detail)
Constructor.

Parameters:
eventType - action type, e.g. Event.ADD.
subjectType - DSpace Object Type of subject e.g. Constants.ITEM.
subjectID - database ID of subject instance.
objectType - DSpace Object Type of object e.g. Constants.BUNDLE.
objectID - database ID of object instance.
detail - detail information that depends on context.
Method Detail

equals

public boolean equals(Object other)
Compare two events. Ignore any difference in the timestamps. Also ignore transactionID since that is not always set initially.

Overrides:
equals in class Object
Parameters:
other - the event to compare this one to
Returns:
true if events are "equal", false otherwise.

hashCode

public int hashCode()
Overrides:
hashCode in class Object

setDispatcher

public void setDispatcher(int id)
Set the identifier of the dispatcher that first processed this event.

Parameters:
id - the unique (hash code) value characteristic of the dispatcher.

getObject

public DSpaceObject getObject(Context context)
                       throws SQLException
Get the DSpace object which is the "object" of an event.

Returns:
DSpaceObject or null if none can be found or no object was set.
Throws:
SQLException

getSubject

public DSpaceObject getSubject(Context context)
                        throws SQLException
Syntactic sugar to get the DSpace object which is the "subject" of an event.

Returns:
DSpaceObject or null if none can be found.
Throws:
SQLException

getSubjectID

public int getSubjectID()
Returns:
database ID of subject of this event.

getObjectID

public int getObjectID()
Returns:
database ID of object of this event, or -1 if none was set.

getSubjectType

public int getSubjectType()
Returns:
type number (e.g. Constants.ITEM) of subject of this event.

getObjectType

public int getObjectType()
Returns:
type number (e.g. Constants.ITEM) of object of this event, or -1 if none was set.

getSubjectTypeAsString

public String getSubjectTypeAsString()
Returns:
type of subject of this event as a String, e.g. for logging.

getObjectTypeAsString

public String getObjectTypeAsString()
Returns:
type of object of this event as a String, e.g. for logging.

parseObjectType

public static int parseObjectType(String s)
Translate a textual DSpace Object type name into an event subject-type mask. NOTE: This returns a BIT-MASK, not a numeric type value; the mask is only used within the event system.

Parameters:
s - text name of object type.
Returns:
numeric value of object type or 0 for error.

getEventType

public int getEventType()
Returns:
event-type (i.e. action) this event, one of the masks like Event.ADD defined above.

getEventTypeAsString

public String getEventTypeAsString()
Get the text name of event (action) type.

Returns:
event-type (i.e. action) this event as a String, e.g. for logging.

parseEventType

public static int parseEventType(String s)
Interpret named event type.

Parameters:
s - name of event type.
Returns:
numeric value of event type or 0 for error.

getTimeStamp

public long getTimeStamp()
Returns:
timestamp at which event occurred, as a count of milliseconds since the epoch (standard Java format).

getDispatcher

public int getDispatcher()
Returns:
hashcode identifier of name of Dispatcher which first dispatched this event. (Needed by asynch dispatch code.)

getDetail

public String getDetail()
Returns:
value of detail element of the event.

getTransactionID

public String getTransactionID()
Returns:
value of transactionID element of the event.

setTransactionID

public void setTransactionID(String tid)
Sets value of transactionID element of the event.

Parameters:
tid - new value of transactionID.

setCurrentUser

public void setCurrentUser(int uid)

getCurrentUser

public int getCurrentUser()

setExtraLogInfo

public void setExtraLogInfo(String info)

getExtraLogInfo

public String getExtraLogInfo()

pass

public boolean pass(List<int[]> filters)
Test whether this event would pass through a list of filters.

Parameters:
filters - list of filter masks; each one is an Array of two ints.
Returns:
true if this event would be passed through the given filter list.

setBitSet

public void setBitSet(String consumerName)
Keeps track of which consumers the event has been consumed by. Should be called by a dispatcher when calling consume(Context ctx, String name, Event event) on an event.

Parameters:
consumerName -

getBitSet

public BitSet getBitSet()
Returns:
the set of consumers which have consumed this Event.

toString

public String toString()
Overrides:
toString in class Object
Returns:
Detailed string representation of contents of this event, to help in logging and debugging.


Copyright © 2010 DuraSpace. All Rights Reserved.