@ThreadSafe public class

OfBizUserHistoryStore

extends Object
implements UserHistoryStore
java.lang.Object
   ↳ com.atlassian.jira.user.OfBizUserHistoryStore

Class Overview

OfBiz implementation of UserHistoryStore

Summary

Public Constructors
OfBizUserHistoryStore(OfBizDelegator delegator, ApplicationProperties applicationProperties)
Public Methods
void addHistoryItem(ApplicationUser user, UserHistoryItem item)
Add a history item to the database.
void addHistoryItemNoChecks(ApplicationUser user, UserHistoryItem item)
Optimised method for adding a history item.
void expireOldHistoryItems(ApplicationUser user, UserHistoryItem.Type type, Collection<String> entityIds)
Method for expiring old items.
@Nonnull List<UserHistoryItem> getHistory(UserHistoryItem.Type type, ApplicationUser user)
Retrieve the history for a given user/type.
@Nonnull List<UserHistoryItem> getHistory(UserHistoryItem.Type type, String userKey)
Retrieve the history for a given user/type.
Set<UserHistoryItem.Type> removeHistoryForUser(ApplicationUser user)
Remove all history items for a given user.
void updateHistoryItemNoChecks(ApplicationUser user, UserHistoryItem item)
Optimised method for updating a record in the database.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.user.UserHistoryStore

Public Constructors

public OfBizUserHistoryStore (OfBizDelegator delegator, ApplicationProperties applicationProperties)

Public Methods

public void addHistoryItem (ApplicationUser user, UserHistoryItem item)

Add a history item to the database. This removes the currently referred to entity (user, type, id) from the list and then adds it. If adding it causes the history items stored for that user/type to exceed the max (jira.max.history.items) items allowed, it should remove the oldest items.

Parameters
user The user to store the history item against
item the item to store. Containing a timestamp and referenced entity

public void addHistoryItemNoChecks (ApplicationUser user, UserHistoryItem item)

Optimised method for adding a history item. This will throw a duplicate row exception from the db if you try and insert a history item that already exists. Should only call if we are sure it doesn't exist.

This does not expire old items or try and update existing items. It is dumb.

Parameters
user The user to insert the record for
item Teh item to insert into the db

public void expireOldHistoryItems (ApplicationUser user, UserHistoryItem.Type type, Collection<String> entityIds)

Method for expiring old items. You can actually delete any items but it is typically used to delete old records.

Parameters
user The user to remove entries for
type The type of record to remove
entityIds The list of entity ids to remove.

@Nonnull public List<UserHistoryItem> getHistory (UserHistoryItem.Type type, ApplicationUser user)

Retrieve the history for a given user/type.

Parameters
type The type of entity to retrieve history for.
user The user to retrieve history for.
Returns
  • a list containing all stored history items for the passed in user/type.

@Nonnull public List<UserHistoryItem> getHistory (UserHistoryItem.Type type, String userKey)

Retrieve the history for a given user/type.

Parameters
type The type of entity to retrieve history for.
userKey The key of the user to retrieve history for.
Returns
  • a list containing all stored history items for the passed in user/type.

public Set<UserHistoryItem.Type> removeHistoryForUser (ApplicationUser user)

Remove all history items for a given user.

Parameters
user The user to remove all history of.
Returns
  • The set of history types that were removed;

public void updateHistoryItemNoChecks (ApplicationUser user, UserHistoryItem item)

Optimised method for updating a record in the database. If the record doesn't exist it will create it, otherwise just update it.

This does not expire old items or try and update existing items. It is dumb.

Parameters
user The user to update the record for
item The item to update