public class

SessionBasedAnonymousUserHistoryStore

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

Class Overview

Session based caching implementation of UserHistoryStore. Allows anonymous users to have history.

Summary

Public Constructors
SessionBasedAnonymousUserHistoryStore(UserHistoryStore delegatingStore, ApplicationProperties applicationProperties, UserManager userManager, VelocityRequestContextFactory velocityRequestContextFactory)
Public Methods
void addHistoryItem(ApplicationUser user, UserHistoryItem historyItem)
Add a history item to the database.
@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 removeHistoryOlderThan(Long timestamp)
Method for removing old user history items.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.user.UserHistoryStore

Public Constructors

public SessionBasedAnonymousUserHistoryStore (UserHistoryStore delegatingStore, ApplicationProperties applicationProperties, UserManager userManager, VelocityRequestContextFactory velocityRequestContextFactory)

Public Methods

public void addHistoryItem (ApplicationUser user, UserHistoryItem historyItem)

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
historyItem the item to store. Containing a timestamp and referenced entity

@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 removeHistoryOlderThan (Long timestamp)

Method for removing old user history items. Removes elements older than provided timestamp, but not younger than 30 days.

Parameters
timestamp remove elements older than this timestamp