Package org.dspace.event
Class Event
- java.lang.Object
-
- 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:
- (Action) Type
- Subject -- DSpace object to which the action applies, e.g. the Collection to which an ADD adds a member.
- Object -- optional, when present it is the other object effected by an action, e.g. the Item ADDed to a Collection by an ADD.
- detail -- a textual summary of what changed. Content and its significance varies by the combination of action and subject type.
- - timestamp -- exact millisecond timestamp at which event was logged.
- Version:
- $Revision$
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static intADDprotected static intALL_OBJECTS_MASKprotected static intBITSTREAMprotected static intBUNDLEprotected static intCOLLECTIONprotected static intCOMMUNITYstatic intCREATEEvent (Action) typesstatic intDELETEprotected static intEPERSONstatic intEVENT_MASKprotected static String[]eventTypeTextprotected static intGROUPstatic intINSTALLprotected static intITEMstatic intMODIFYstatic intMODIFY_METADATAprotected static intNONEXXX NOTE: with ALL_OBJECTS_MASK *AND* objTypeToMask hash *protected static Map<Integer,Integer>objMaskToTypeprotected static Map<Integer,Integer>objTypeToMaskstatic intREMOVEprotected static intSITEstatic intSUBJECT_MASKIndex of filter parts in their array:
-
Constructor Summary
Constructors Constructor Description Event(int eventType, int subjectType, UUID subjectID, int objectType, UUID objectID, String detail)Constructor.Event(int eventType, int subjectType, UUID subjectID, int objectType, UUID objectID, String detail, ArrayList<String> identifiers)Constructor.Event(int eventType, int subjectType, UUID subjectID, String detail)Constructor.Event(int eventType, int subjectType, UUID subjectID, String detail, ArrayList<String> identifiers)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intcoreTypeToMask(int core)booleanequals(Object other)Compare two events.BitSetgetBitSet()intgetCurrentUser()StringgetDetail()intgetDispatcher()intgetEventType()StringgetEventTypeAsString()Get the text name of event (action) type.StringgetExtraLogInfo()List<String>getIdentifiers()DSpaceObjectgetObject(Context context)Get the DSpace object which is the "object" of an event.UUIDgetObjectID()intgetObjectType()StringgetObjectTypeAsString()DSpaceObjectgetSubject(Context context)Syntactic sugar to get the DSpace object which is the "subject" of an event.UUIDgetSubjectID()intgetSubjectType()StringgetSubjectTypeAsString()longgetTimeStamp()StringgetTransactionID()inthashCode()protected intlog2(int n)protected intmaskTypeToCore(int mask)static intparseEventType(String s)Interpret named event type.static intparseObjectType(String s)Translate a textual DSpace Object type name into an event subject-type mask.booleanpass(List<int[]> filters)Test whether this event would pass through a list of filters.voidsetBitSet(String consumerName)Keeps track of which consumers have consumed the event.voidsetCurrentUser(int uid)voidsetDispatcher(int id)Set the identifier of the dispatcher that first processed this event.voidsetExtraLogInfo(String info)voidsetTransactionID(String tid)Sets value of transactionID element of the event.StringtoString()
-
-
-
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
-
eventTypeText
protected static final String[] eventTypeText
-
NONE
protected static final int NONE
XXX NOTE: with ALL_OBJECTS_MASK *AND* objTypeToMask hash *- See Also:
- Constant Field Values
-
BITSTREAM
protected static final int BITSTREAM
- See Also:
- Constant Field Values
-
BUNDLE
protected static final int BUNDLE
- See Also:
- Constant Field Values
-
ITEM
protected static final int ITEM
- See Also:
- Constant Field Values
-
COLLECTION
protected static final int COLLECTION
- See Also:
- Constant Field Values
-
COMMUNITY
protected static final int COMMUNITY
- See Also:
- Constant Field Values
-
SITE
protected static final int SITE
- See Also:
- Constant Field Values
-
GROUP
protected static final int GROUP
- See Also:
- Constant Field Values
-
EPERSON
protected static final int EPERSON
- See Also:
- Constant Field Values
-
ALL_OBJECTS_MASK
protected static final int ALL_OBJECTS_MASK
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Event
public Event(int eventType, int subjectType, UUID subjectID, String detail)Constructor. You should consider to useEvent(int, int, UUID, java.lang.String).- 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, UUID subjectID, String detail, ArrayList<String> identifiers)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.identifiers- array containing all identifiers of the dso or an empty array
-
Event
public Event(int eventType, int subjectType, UUID subjectID, int objectType, UUID objectID, String detail)Constructor. You should consider to useEvent(int, int, UUID, int, UUID, java.lang.String)instead.- 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.
-
Event
public Event(int eventType, int subjectType, UUID subjectID, int objectType, UUID objectID, String detail, ArrayList<String> identifiers)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.identifiers- array containing all identifiers of the dso or an empty array
-
-
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.
-
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.
-
coreTypeToMask
protected int coreTypeToMask(int core)
-
maskTypeToCore
protected int maskTypeToCore(int mask)
-
getObject
public DSpaceObject getObject(Context context) throws SQLException
Get the DSpace object which is the "object" of an event.- Parameters:
context- The relevant DSpace Context.- Returns:
- DSpaceObject or null if none can be found or no object was set.
- Throws:
SQLException- An exception that provides information on a database access error or other errors.
-
getSubject
public DSpaceObject getSubject(Context context) throws SQLException
Syntactic sugar to get the DSpace object which is the "subject" of an event.- Parameters:
context- The relevant DSpace Context.- Returns:
- DSpaceObject or null if none can be found.
- Throws:
SQLException- An exception that provides information on a database access error or other errors.
-
getSubjectID
public UUID getSubjectID()
- Returns:
- database ID of subject of this event.
-
getObjectID
public UUID 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.
-
getIdentifiers
public List<String> getIdentifiers()
- Returns:
- array of identifiers of this event's subject.
-
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.
-
log2
protected int log2(int n)
-
setBitSet
public void setBitSet(String consumerName)
Keeps track of which consumers have consumed the event. Should be called by a dispatcher when calling consume(Context ctx, String name, Event event) on an event.- Parameters:
consumerName- name of consumer which has consumed the event
-
getBitSet
public BitSet getBitSet()
- Returns:
- the set of consumers which have consumed this Event.
-
-