@PublicApi public interface

FavouritesManager

com.atlassian.jira.favourites.FavouritesManager<S extends com.atlassian.jira.sharing.SharedEntity>
Known Indirect Subclasses

@PublicApi

This interface is designed for plugins to consume (call its methods).

Clients of @PublicApi can expect that programs compiled against a given version will remain binary compatible with later versions of the @PublicApi as per each product's API policy as long as the client does not implement/extend @PublicApi interfaces or classes (refer to each product's API policy for the exact guarantee---usually binary compatibility is guaranteed at least across minor versions).

Note: since @PublicApi interfaces and classes are not designed to be implemented or extended by clients, we may perform certain types of binary-incompatible changes to these classes and interfaces, but these will not affect well-behaved clients that do not extend/implement these types (in general, only classes and interfaces annotated with @PublicSpi are safe to extend/implement).

Class Overview

Manager for basic Favourites functionality. Used for adding, removing and checking favourites of generic entities. It also adjusts favourite counts for entities

Summary

Public Methods
void addFavourite(ApplicationUser user, S entity)
Add the given entity as a favourite of the user passed in add to favourites count if necessary.
void addFavouriteInPosition(ApplicationUser user, S entity, long position)
Add the given entity as a favourite of the user passed in, in the specified position, add to favourites count if necessary.
void decreaseFavouriteSequence(ApplicationUser user, S entity)
Decreases the position of the SharedEntity relative to the user's set of all other entities of the same type.
Collection<Long> getFavouriteIds(ApplicationUser user, TypeDescriptor<S> entityType)
Get the ids of a user's favourite Entities for a given entity type
void increaseFavouriteSequence(ApplicationUser user, S entity)
Increases the position of the SharedEntity relative to the user's set of all other entities of the same type.
boolean isFavourite(ApplicationUser user, S entity)
Check to see if the given entity is a favourite of the user passed in.
void moveToEndFavouriteSequence(ApplicationUser user, S entity)
Moves the position of the SharedEntity to the end relative to the user's set of all other entities of the same type.
void moveToStartFavouriteSequence(ApplicationUser user, S entity)
Moves the position of the SharedEntity to the start relative to the user's set of all other entities of the same type.
void removeFavourite(ApplicationUser user, S entity)
Remove the given entity as a favourite of the user passed in.
void removeFavouritesForEntityDelete(SharedEntity entity)
Remove all favourite associations for a given entity for entity deletion.
void removeFavouritesForUser(ApplicationUser user, TypeDescriptor<S> entityType)
Remove the favourite associations for the given User and the given type

Public Methods

public void addFavourite (ApplicationUser user, S entity)

Add the given entity as a favourite of the user passed in add to favourites count if necessary.

Parameters
user The user adding the favourite
entity The entity to favourite
Throws
PermissionException when trying to add a filter as favourite when you have no permissions

public void addFavouriteInPosition (ApplicationUser user, S entity, long position)

Add the given entity as a favourite of the user passed in, in the specified position, add to favourites count if necessary. The entity currently in the specified position and all those after will be moved down one position.

Parameters
user The user adding the favourite
entity The entity to favourite
position the position in which this entity should be added in the favourites order.
Throws
PermissionException when trying to add a filter as favourite when you have no permissions

public void decreaseFavouriteSequence (ApplicationUser user, S entity)

Decreases the position of the SharedEntity relative to the user's set of all other entities of the same type.

Parameters
user the user whom the entity belongs to
entity The entity in question
Throws
PermissionException when the user does not have permission to perform the action.

public Collection<Long> getFavouriteIds (ApplicationUser user, TypeDescriptor<S> entityType)

Get the ids of a user's favourite Entities for a given entity type

Parameters
user The user for the associated entities. Can not be null.
entityType The type of entities to get. E.g. SearchRequest.ENTITY_TYPE. Can not be null.
Returns
  • A Collection on Longs that represent the entities, sorted into sequence order
Throws
IllegalArgumentException for null user or entity type

public void increaseFavouriteSequence (ApplicationUser user, S entity)

Increases the position of the SharedEntity relative to the user's set of all other entities of the same type.

Parameters
user the user whom the entity belongs to
entity The entity in question
Throws
PermissionException when the user does not have permission to perform the action.

public boolean isFavourite (ApplicationUser user, S entity)

Check to see if the given entity is a favourite of the user passed in.

Parameters
user The user checking the favourite
entity The entity to favourite
Returns
  • true if the entity is favourite and can be seen by user, otherwise false
Throws
PermissionException when checking a filter with no permission

public void moveToEndFavouriteSequence (ApplicationUser user, S entity)

Moves the position of the SharedEntity to the end relative to the user's set of all other entities of the same type.

Parameters
user the user whom the entity belongs to
entity The entity in question
Throws
PermissionException when the user does not have permission to perform the action.

public void moveToStartFavouriteSequence (ApplicationUser user, S entity)

Moves the position of the SharedEntity to the start relative to the user's set of all other entities of the same type.

Parameters
user the user whom the entity belongs to
entity The entity in question
Throws
PermissionException when the user does not have permission to perform the action.

public void removeFavourite (ApplicationUser user, S entity)

Remove the given entity as a favourite of the user passed in. Remove even if user doesn't have permission to see it and adjust count of favourites if necessary.

Parameters
user The user removing the favourite
entity The entity to favourite

public void removeFavouritesForEntityDelete (SharedEntity entity)

Remove all favourite associations for a given entity for entity deletion. This method is for only for when an entity is deleted as it does not adjust favourite counts.

Parameters
entity The entity that is being deleted

public void removeFavouritesForUser (ApplicationUser user, TypeDescriptor<S> entityType)

Remove the favourite associations for the given User and the given type

Parameters
user The ApplicationUser with whom to disassociate entities
entityType The type of entity to disassociate user with.