Class JiraAppLinksHostApplication

java.lang.Object
com.atlassian.applinks.host.spi.AbstractInternalHostApplication
com.atlassian.jira.applinks.JiraAppLinksHostApplication
All Implemented Interfaces:
com.atlassian.applinks.host.spi.HostApplication, com.atlassian.applinks.host.spi.InternalHostApplication, Startable

public class JiraAppLinksHostApplication extends com.atlassian.applinks.host.spi.AbstractInternalHostApplication implements Startable
Since:
v4.3
  • Field Details

  • Constructor Details

  • Method Details

    • getDocumentationBaseUrl

      public URI getDocumentationBaseUrl()
      Specified by:
      getDocumentationBaseUrl in interface com.atlassian.applinks.host.spi.InternalHostApplication
      Returns:
      an absolute URI used as the base for constructing links to help pages. e.g. http://docs.atlassian.com/fisheye/docs-023 or http://confluence.atlassian.com/display/APPLINKS. The returned URI should not have a trailing slash.
    • getName

      public String getName()
      Specified by:
      getName in interface com.atlassian.applinks.host.spi.InternalHostApplication
      Returns:
      the name of this application instance, e.g. "My JIRA Server". If this application type doesn't support customising the name of the instance, implementations should delegate to InstanceNameGenerator to generate a name from the application's base URL.
    • getType

      public com.atlassian.applinks.api.ApplicationType getType()
      Specified by:
      getType in interface com.atlassian.applinks.host.spi.InternalHostApplication
      Returns:
      the ApplicationType for this application instance. Implementations should delegate to the TypeAccessor to resolve an instance of the desired type.
    • getLocalEntities

      public Iterable<com.atlassian.applinks.host.spi.EntityReference> getLocalEntities()
      Specified by:
      getLocalEntities in interface com.atlassian.applinks.host.spi.InternalHostApplication
      Returns:
      an Iterable containing an EntityReference for every entity in the local instance visible to the currently logged-in user. Note, the implementation must perform a permission check and return only entities visible the context user (who may be anonymous). User requires to have either the BROWSE project, JIRA Administrator or PROJECT ADMIN permission.
    • doesEntityExist

      public boolean doesEntityExist(String key, Class<? extends com.atlassian.applinks.api.EntityType> type)
      Specified by:
      doesEntityExist in interface com.atlassian.applinks.host.spi.InternalHostApplication
      Parameters:
      key - the key of an entity local to this application (e.g. JRA, CONF)
      type - the class of the EntityType of the entity (e.g. JiraProjectEntityType)
      Returns:
      true, if the specified entity exists, false otherwise. Note, the implementation must perform a permission check and return true if, and only if, the specified entity exists and is visible to the context user (who may be anonymous). User requires to have either the BROWSE project, JIRA Administrator or PROJECT ADMIN permission.
    • doesEntityExistNoPermissionCheck

      public boolean doesEntityExistNoPermissionCheck(String key, Class<? extends com.atlassian.applinks.api.EntityType> type)
      Specified by:
      doesEntityExistNoPermissionCheck in interface com.atlassian.applinks.host.spi.InternalHostApplication
      Parameters:
      key - the key of an entity local to this application (e.g. JRA, CONF)
      type - the class of the EntityType of the entity (e.g. JiraProjectEntityType)
      Returns:
      true, if the specified entity exists, false otherwise. For a variant on this method with permission checking, use doesEntityExist(String, Class).
      Since:
      3.6
    • toEntityReference

      public com.atlassian.applinks.host.spi.EntityReference toEntityReference(Object domainObject)
      Specified by:
      toEntityReference in interface com.atlassian.applinks.host.spi.InternalHostApplication
      Parameters:
      domainObject - an entity domain object from the application's API (e.g. com.atlassian.jira.project.Project, com.atlassian.confluence.spaces.Space). Implementations are free to choose which objects supported by this class, but the complete list should be maintained on the EntityLinkService javadoc.
      Returns:
      an EntityReference initialised with the key and type of the supplied domain object. This method need not perform any permission checking. Implementations should delegate to the TypeAccessor to resolve an instance of the desired EntityType.
    • toEntityReference

      public com.atlassian.applinks.host.spi.EntityReference toEntityReference(String key, Class<? extends com.atlassian.applinks.api.EntityType> type)
      Specified by:
      toEntityReference in interface com.atlassian.applinks.host.spi.InternalHostApplication
      Parameters:
      key - the key of a local entity (e.g. "JRA", "FECRUDEV", "CR-BAM")
      type - the class of the EntityType of the entity (e.g. JiraProjectEntityType)
      Returns:
      an EntityReference initialised with the key and type of the supplied domain object. This method need not perform any permission checking. Implementations should delegate to the TypeAccessor to resolve an instance of the specified EntityType.
      Throws:
      IllegalArgumentException - if the specified type is not assignable to JiraProjectEntityType or if no project with the specified key can be found
    • canManageEntityLinksFor

      public boolean canManageEntityLinksFor(com.atlassian.applinks.host.spi.EntityReference entityReference)
      Specified by:
      canManageEntityLinksFor in interface com.atlassian.applinks.host.spi.InternalHostApplication
      Parameters:
      entityReference - an EntityReference representing an entity contained in the local application instance.
      Returns:
      true if the current user has permission to link or unlink the specified EntityReference to other entities, false otherwise. User requires to have either the JIRA Administrator or PROJECT ADMIN permission.
    • setSkipPermissionCheck

      public void setSkipPermissionCheck(boolean skip)
    • clearSkipPermissionCheck

      public void clearSkipPermissionCheck()
    • hasPublicSignup

      public boolean hasPublicSignup()
      Specified by:
      hasPublicSignup in interface com.atlassian.applinks.host.spi.InternalHostApplication
      Returns:
      true if the host application allows public signup, false otherwise.
    • getId

      public com.atlassian.applinks.api.ApplicationId getId()
      Specified by:
      getId in interface com.atlassian.applinks.host.spi.HostApplication
    • getBaseUrl

      public URI getBaseUrl()
      Returns the base URL that is configured for this JIRA instance.
      Specified by:
      getBaseUrl in interface com.atlassian.applinks.host.spi.HostApplication
      Returns:
      a String containing the base URL that is configured for this JIRA instance
    • start

      public void start() throws Exception
      The OsgiServiceProxyFactory creates a proxy to the TypeAccessor which is a component of the applinks-plugin. The TypeAccessor is not available when the host application starts, but when the plugins framework has finished starting.
      Specified by:
      start in interface Startable
      Throws:
      Exception - Allows implementations to throw an Exception.