java.lang.Object |
↳ |
com.atlassian.jira.security.roles.CachingProjectRoleAndActorStore |
Class Overview
A caching implementation of the ProjectRoleAndActorStore
that delegates to another ProjectRoleAndActorStore
.
This class maintains two separate unrelated caches, one for ProjectRoles and another for the actors associated with a
Project/ProjectRole combination. These use separate approaches to maintain correctness under concurrent usage.
The caching of the ProjectRoleActors maintains its correctness under concurrent updates/miss population by using
putIfAbsent(Object, Object)
to store the result of a retrieval operation from the database
(non-mutative), but put(Object, Object)
to store the result of an update.
Summary
Public Methods |
ProjectRole
|
addProjectRole(ProjectRole projectRole)
|
void
|
applyDefaultsRolesToProject(Project project)
|
void
|
clearCaches()
|
void
|
deleteProjectRole(ProjectRole projectRole)
|
Collection<ProjectRole>
|
getAllProjectRoles()
|
DefaultRoleActors
|
getDefaultRoleActors(Long projectRoleId)
|
Collection<Long>
|
getProjectIdsContainingRoleActorByKeyAndType(String key, String type)
|
Map<Long, List<String>>
|
getProjectIdsForUserInGroupsBecauseOfRole(List<Long> projectsToLimitBy, ProjectRole projectRole, String projectRoleType, String userKey)
|
ProjectRole
|
getProjectRole(Long id)
|
ProjectRoleActors
|
getProjectRoleActors(Long projectRoleId, Long projectId)
|
ProjectRole
|
getProjectRoleByName(String name)
|
@EventListener
void
|
onClearCache(ClearCacheEvent event)
|
void
|
removeAllRoleActorsByKeyAndType(String key, String type)
|
void
|
removeAllRoleActorsByProject(Project project)
|
List<Long>
|
roleActorOfTypeExistsForProjects(List<Long> projectsToLimitBy, ProjectRole projectRole, String projectRoleType, String projectRoleParameter)
|
void
|
updateDefaultRoleActors(DefaultRoleActors defaultRoleActors)
|
void
|
updateProjectRole(ProjectRole projectRole)
|
void
|
updateProjectRoleActors(ProjectRoleActors projectRoleActors)
|
[Expand]
Inherited Methods |
From class
java.lang.Object
Object
|
clone()
|
boolean
|
equals(Object arg0)
|
void
|
finalize()
|
final
Class<?>
|
getClass()
|
int
|
hashCode()
|
final
void
|
notify()
|
final
void
|
notifyAll()
|
String
|
toString()
|
final
void
|
wait()
|
final
void
|
wait(long arg0, int arg1)
|
final
void
|
wait(long arg0)
|
|
From interface
com.atlassian.jira.security.roles.ProjectRoleAndActorStore
ProjectRole
|
addProjectRole(ProjectRole projectRole)
|
void
|
applyDefaultsRolesToProject(Project project)
|
void
|
deleteProjectRole(ProjectRole projectRole)
|
Collection<ProjectRole>
|
getAllProjectRoles()
|
DefaultRoleActors
|
getDefaultRoleActors(Long projectRoleId)
|
Collection<Long>
|
getProjectIdsContainingRoleActorByKeyAndType(String key, String type)
|
Map<Long, List<String>>
|
getProjectIdsForUserInGroupsBecauseOfRole(List<Long> projectsToLimitBy, ProjectRole projectRole, String projectRoleType, String userKey)
|
ProjectRole
|
getProjectRole(Long id)
|
ProjectRoleActors
|
getProjectRoleActors(Long projectRoleId, Long projectId)
|
ProjectRole
|
getProjectRoleByName(String name)
|
void
|
removeAllRoleActorsByKeyAndType(String key, String type)
|
void
|
removeAllRoleActorsByProject(Project project)
|
List<Long>
|
roleActorOfTypeExistsForProjects(List<Long> projectsToLimitBy, ProjectRole projectRole, String projectRoleType, String projectRoleParameter)
|
void
|
updateDefaultRoleActors(DefaultRoleActors defaultRoleActors)
|
void
|
updateProjectRole(ProjectRole projectRole)
|
void
|
updateProjectRoleActors(ProjectRoleActors projectRoleActors)
|
|
Public Constructors
Public Methods
public
void
applyDefaultsRolesToProject
(Project project)
public
void
clearCaches
()
public
void
deleteProjectRole
(ProjectRole projectRole)
public
void
removeAllRoleActorsByKeyAndType
(String key, String type)
public
void
removeAllRoleActorsByProject
(Project project)
public
void
updateProjectRole
(ProjectRole projectRole)