com.atlassian.jira.plugin.webfragment
Class DefaultSimpleLinkManager

java.lang.Object
  extended by com.atlassian.jira.plugin.webfragment.DefaultSimpleLinkManager
All Implemented Interfaces:
SimpleLinkManager

public class DefaultSimpleLinkManager
extends Object
implements SimpleLinkManager

Default implementation of the SimpleLinkManager This actually uses combines SimpleLinkFactory lists with WebItemModuleDescriptor links and WebSectionModuleDescriptor sections, respecting weights.

Since:
v4.0

Constructor Summary
DefaultSimpleLinkManager(JiraWebInterfaceManager webInterfaceManager, SimpleLinkFactoryModuleDescriptors simpleLinkFactoryModuleDescriptors, JiraAuthenticationContext authenticationContext, VelocityRequestContextFactory velocityRequestContextFactory)
           
 
Method Summary
 List<SimpleLink> getLinksForSection(String section, com.atlassian.crowd.embedded.api.User remoteUser, JiraHelper jiraHelper)
          Gets a list of SimpleLink for the given section.
 List<SimpleLink> getLinksForSectionIgnoreConditions(String section, com.atlassian.crowd.embedded.api.User remoteUser, JiraHelper jiraHelper)
          Gets a list of SimpleLink for the given section, without filtering links using the conditions specified for the links.
 List<SimpleLinkSection> getNotEmptySectionsForLocation(String location, com.atlassian.crowd.embedded.api.User 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, com.atlassian.crowd.embedded.api.User remoteUser, JiraHelper jiraHelper)
          Recursively search through our sections within sections within sections within ...
 List<SimpleLinkSection> getSectionsForLocation(String location, com.atlassian.crowd.embedded.api.User remoteUser, JiraHelper jiraHelper)
          Gets a list of SimpleLinkSection for the given location.
 boolean shouldLocationBeLazy(String location, com.atlassian.crowd.embedded.api.User 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultSimpleLinkManager

public DefaultSimpleLinkManager(JiraWebInterfaceManager webInterfaceManager,
                                SimpleLinkFactoryModuleDescriptors simpleLinkFactoryModuleDescriptors,
                                JiraAuthenticationContext authenticationContext,
                                VelocityRequestContextFactory velocityRequestContextFactory)
Method Detail

shouldLocationBeLazy

public boolean shouldLocationBeLazy(@NotNull
                                    String location,
                                    com.atlassian.crowd.embedded.api.User remoteUser,
                                    @NotNull
                                    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.

Specified by:
shouldLocationBeLazy in interface SimpleLinkManager
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

shouldSectionBeLazy

public boolean shouldSectionBeLazy(String section)
This determines whether a section should be loaded lazily if possible.

Specified by:
shouldSectionBeLazy in interface SimpleLinkManager
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

getLinksForSection

public List<SimpleLink> getLinksForSection(String section,
                                           com.atlassian.crowd.embedded.api.User remoteUser,
                                           JiraHelper jiraHelper)
Description copied from interface: SimpleLinkManager
Gets a list of SimpleLink for the given section.

Specified by:
getLinksForSection in interface SimpleLinkManager
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

getLinksForSectionIgnoreConditions

public List<SimpleLink> getLinksForSectionIgnoreConditions(@NotNull
                                                           String section,
                                                           com.atlassian.crowd.embedded.api.User remoteUser,
                                                           @NotNull
                                                           JiraHelper jiraHelper)
Description copied from interface: SimpleLinkManager
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.

Specified by:
getLinksForSectionIgnoreConditions in interface SimpleLinkManager
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

getSectionsForLocation

public List<SimpleLinkSection> getSectionsForLocation(String location,
                                                      com.atlassian.crowd.embedded.api.User remoteUser,
                                                      JiraHelper jiraHelper)
Description copied from interface: SimpleLinkManager
Gets a list of SimpleLinkSection for the given location.

Specified by:
getSectionsForLocation in interface SimpleLinkManager
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

getNotEmptySectionsForLocation

public List<SimpleLinkSection> getNotEmptySectionsForLocation(@NotNull
                                                              String location,
                                                              com.atlassian.crowd.embedded.api.User remoteUser,
                                                              @NotNull
                                                              JiraHelper jiraHelper)
Description copied from interface: SimpleLinkManager
Gets a list of SimpleLinkSection for the given location, that have either web-items or other web-sections within them.

Specified by:
getNotEmptySectionsForLocation in interface SimpleLinkManager
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

getSectionForURL

public SimpleLinkSection getSectionForURL(@NotNull
                                          String topLevelSection,
                                          @NotNull
                                          String URL,
                                          com.atlassian.crowd.embedded.api.User remoteUser,
                                          JiraHelper jiraHelper)
Description copied from interface: SimpleLinkManager
Recursively search through our sections within sections within sections within ... To find a section that contains a link that matches this URL

Specified by:
getSectionForURL in interface SimpleLinkManager
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


Copyright © 2002-2012 Atlassian. All Rights Reserved.