public class

ThreadLocalCachingSimpleLinkManager

extends DefaultSimpleLinkManager
java.lang.Object
   ↳ com.atlassian.jira.plugin.webfragment.DefaultSimpleLinkManager
     ↳ com.atlassian.jira.plugin.webfragment.ThreadLocalCachingSimpleLinkManager

Class Overview

SimpleLinkManager implementation that caches results in getRequestCache().

Summary

Nested Classes
class ThreadLocalCachingSimpleLinkManager.CacheKey  
Public Constructors
ThreadLocalCachingSimpleLinkManager(DynamicWebInterfaceManager webInterfaceManager, SimpleLinkFactoryModuleDescriptors simpleLinkFactoryModuleDescriptors, JiraAuthenticationContext authenticationContext, WebResourceUrlProvider webResourceUrlProvider, VelocityRequestContextFactory velocityRequestContextFactory)
Public Methods
@Nonnull List<SimpleLink> getLinksForSection(String section, ApplicationUser remoteUser, JiraHelper jiraHelper)
Gets a list of SimpleLink for the given section.
@Nonnull List<SimpleLink> getLinksForSection(String section, ApplicationUser remoteUser, JiraHelper jiraHelper, boolean addIconCachingPrefix)
Gets a list of SimpleLink for the given section.
@Nonnull List<SimpleLink> getLinksForSectionIgnoreConditions(String section, ApplicationUser remoteUser, JiraHelper jiraHelper)
Gets a list of SimpleLink for the given section, without filtering links using the conditions specified for the links.
@Nonnull List<SimpleLinkSection> getNotEmptySectionsForLocation(String location, ApplicationUser remoteUser, JiraHelper jiraHelper)
Gets a list of SimpleLinkSection for the given location, that have either web-items or other web-sections within them.
SimpleLinkSection getSectionForURL(String topLevelSection, String URL, ApplicationUser remoteUser, JiraHelper jiraHelper)
Recursively search through our sections within sections within sections within ...
@Nonnull List<SimpleLinkSection> getSectionsForLocation(String location, ApplicationUser remoteUser, JiraHelper jiraHelper)
Gets a list of SimpleLinkSection for the given location.
boolean shouldLocationBeLazy(String location, ApplicationUser remoteUser, JiraHelper jiraHelper)
This determines whether a location should be loaded lazily if possible.
boolean shouldSectionBeLazy(String section)
This determines whether a section should be loaded lazily if possible.
[Expand]
Inherited Methods
From class com.atlassian.jira.plugin.webfragment.DefaultSimpleLinkManager
From class java.lang.Object
From interface com.atlassian.jira.plugin.webfragment.SimpleLinkManager

Public Constructors

public ThreadLocalCachingSimpleLinkManager (DynamicWebInterfaceManager webInterfaceManager, SimpleLinkFactoryModuleDescriptors simpleLinkFactoryModuleDescriptors, JiraAuthenticationContext authenticationContext, WebResourceUrlProvider webResourceUrlProvider, VelocityRequestContextFactory velocityRequestContextFactory)

Public Methods

@Nonnull public List<SimpleLink> getLinksForSection (String section, ApplicationUser remoteUser, JiraHelper jiraHelper)

Gets a list of SimpleLink for the given section.

Parameters
section The section to generate the list for
remoteUser The user that we are generating the list for
jiraHelper The context under which the list is being generated
Returns
  • The list of links for the given section

@Nonnull public List<SimpleLink> getLinksForSection (String section, ApplicationUser remoteUser, JiraHelper jiraHelper, boolean addIconCachingPrefix)

Gets a list of SimpleLink for the given section. Additionally it adds caching prefix to icon url, if addIconCachinPrefix is true

Parameters
section The section to generate the list for
remoteUser The user that we are generating the list for
jiraHelper The context under which the list is being generated
addIconCachingPrefix Diecides if relative icon URL will be automatically prefixed
Returns
  • The list of links for the given section

@Nonnull public List<SimpleLink> getLinksForSectionIgnoreConditions (String section, ApplicationUser remoteUser, JiraHelper jiraHelper)

Gets a list of SimpleLink for the given section, without filtering links using the conditions specified for the links. This will effectively return a list of links without running any security checks.

Parameters
section The section to generate the list for
remoteUser The user that we are generating the list for
jiraHelper The context under which the list is being generated
Returns
  • The list of links for the given section

@Nonnull public List<SimpleLinkSection> getNotEmptySectionsForLocation (String location, ApplicationUser remoteUser, JiraHelper jiraHelper)

Gets a list of SimpleLinkSection for the given location, that have either web-items or other web-sections within them.

Parameters
location The location to generate the list for
remoteUser The user that we are generating the list for
jiraHelper The context under which the list is being generated
Returns
  • The list of sections for the give location

public SimpleLinkSection getSectionForURL (String topLevelSection, String URL, ApplicationUser remoteUser, JiraHelper jiraHelper)

Recursively search through our sections within sections within sections within ... To find a section that contains a link that matches this URL

Parameters
topLevelSection The top level section from where to start searching!
URL The URL for the action e.g. https://jdog.atlassian.com/secure/project/ViewProjects.jspa. We check if this URL contains a web-item's path which is usually something shorter like /secure/project/ViewProjects.jspa
remoteUser The user that we are generating the list for
jiraHelper The context under which the list is being generated
Returns
  • Returns null if no section found

@Nonnull public List<SimpleLinkSection> getSectionsForLocation (String location, ApplicationUser remoteUser, JiraHelper jiraHelper)

Gets a list of SimpleLinkSection for the given location.

Parameters
location The location to generate the list for
remoteUser The user that we are generating the list for
jiraHelper The context under which the list is being generated
Returns
  • The list of sections for the give location

public boolean shouldLocationBeLazy (String location, ApplicationUser remoteUser, JiraHelper jiraHelper)

This determines whether a location should be loaded lazily if possible. This loops through all sections for the location and then retrieves all SimpleLinkFactoryModuleDescriptor for those sections and sees whether any of the factories say they should be lazy. If any say true, return true.

Parameters
location The location to check for
remoteUser The user that we are generating the list for
jiraHelper The context under which the list is being generated
Returns
  • true if any of the underlying factories for this location say they should be lazy, false otherwise

public boolean shouldSectionBeLazy (String section)

This determines whether a section should be loaded lazily if possible. DO NOT USE: This method only checks simple link factories and not the web-section. Nothing uses it now and it should not be used in future!

Parameters
section The section to check for
Returns
  • true if any of the underlying factories for this section say they should be lazy, false otherwise