Interface ConstantsManager

All Known Implementing Classes:
DefaultConstantsManager, MockConstantsManager

@PublicApi public interface ConstantsManager
Manager for issue types, statuses, priorities and resolutions. This manager is responsible for caching these constants as well as all the usual update, delete, add operations in the database.
  • Field Details

  • Method Details

    • getPriorities

      @Nonnull Collection<Priority> getPriorities()
      Retrieve all Priorities in JIRA.
      Returns:
      A list of Priority Prioritys.
    • getPriorityObject

      Priority getPriorityObject(String id)
      Given a priority ID, this method retrieves that priority.
      Parameters:
      id - The id of the priority
      Returns:
      A Priority object.
    • getPriorityName

      String getPriorityName(String id)
      Returns the priority Name for a given priority ID.
      Parameters:
      id - The id of a priority
      Returns:
      The name of the priority with the given ID, or an i18n'd String indicating that no priority is set (e.g. "None") if the ID is null.
    • getDefaultPriority

      @Deprecated Priority getDefaultPriority()
      Returns the default priority configured in JIRA.
      Returns:
      The default priority
    • refreshPriorities

      void refreshPriorities()
      Reloads all priorities from the DB.
    • getResolutions

      @Nonnull Collection<Resolution> getResolutions()
      Retrieve all Resolutions in JIRA.
      Returns:
      A List of Resolution Resolutions.
    • getResolution

      Resolution getResolution(String id)
      Given a resolution ID, this method retrieves that resolution.
      Parameters:
      id - The id of the resolution
      Returns:
      A resolution
    • refreshResolutions

      void refreshResolutions()
      Reloads all resolutions from the DB.
    • getIssueType

      IssueType getIssueType(String id)
      Given an IssueType ID this method retrieves that IssueType.
      Parameters:
      id - The ID of the IssueType.
      Returns:
      An IssueType
    • getRegularIssueTypeObjects

      Collection<IssueType> getRegularIssueTypeObjects()
      Retrieve regular (non-subtask) issue types.
      Returns:
      A collection of IssueTypes
    • getAllIssueTypeObjects

      Collection<IssueType> getAllIssueTypeObjects()
      Returns a list of IssueTypes.
      Returns:
      A Collection of IssueType objects.
    • getAllIssueTypeIds

      List<String> getAllIssueTypeIds()
      Returns all issueType Ids.
      Returns:
      A list of all the IssueType Ids.
    • getSubTaskIssueTypeObjects

      @Nonnull Collection<IssueType> getSubTaskIssueTypeObjects()
      Retrieves all the sub-task issue types
      Returns:
      A Collection of all sub-task IssueTypes.
    • getEditableSubTaskIssueTypes

      List<IssueType> getEditableSubTaskIssueTypes()
      Retrieves an mutable list of sub-task issues. The list is mutable, that is its elements can be reordered added to or removed. The elements of the list, that is the issue types themselves, are not mutable.
      Returns:
      A List of editable sub-task
    • expandIssueTypeIds

      List<String> expandIssueTypeIds(Collection<String> issueTypeIds)
      Converts the 'special' ids of issue types to a list of issue type ids For example, converts a special id to a list of all sub-task issue types Also see ALL_STANDARD_ISSUE_TYPES, ALL_SUB_TASK_ISSUE_TYPES and ALL_ISSUE_TYPES.
      Parameters:
      issueTypeIds - A collection of the issuetype Ids to retrieve.
      Returns:
      A list of "actual" IssueType ID's expanded from the macro constants (or a new copy of the original list if it doesn't contain macros).
    • refreshIssueTypes

      void refreshIssueTypes()
      Reloads all IssueTypes from the DB.
    • insertIssueType

      @Deprecated IssueType insertIssueType(String name, Long sequence, String style, String description, String iconurl) throws CreateException
      Deprecated.
      Creates a new IssueType.

      Note this method does not validate the input - i.e. It does not check for duplicate names etc. Use this method in conjunction with validateCreateIssueType(String, String, String, String, com.atlassian.jira.util.ErrorCollection, String)

      Parameters:
      name - Name of the new IssueType
      sequence - Sequence number used for ordering the issuetypes in the UI.
      style - Used to record the type of issue, such as SUBTASK. Null for regular issues.
      description - A short description of the new issue type.
      iconurl - A URL to an icon to be used for the new issueType.
      Returns:
      The newly created IssueType
      Throws:
      CreateException - If there is an error creating this Issue Type.
    • insertIssueType

      IssueType insertIssueType(String name, Long sequence, String style, String description, Long avatarId) throws CreateException
      Creates a new IssueType.

      Note this method does not validate the input - i.e. It does not check for duplicate names etc. Use this method in conjunction with validateCreateIssueType(String, String, String, String, com.atlassian.jira.util.ErrorCollection, String)

      Parameters:
      name - Name of the new IssueType
      sequence - Sequence number used for ordering the issuetypes in the UI.
      style - Used to record the type of issue, such as SUBTASK. Null for regular issues.
      description - A short description of the new issue type.
      avatarId - Avatar id,
      Returns:
      The newly created IssueType
      Throws:
      CreateException - If there is an error creating this Issue Type.
      Since:
      v6.3
    • validateCreateIssueType

      void validateCreateIssueType(String name, String style, String description, String iconurl, ErrorCollection errors, String nameFieldName)
      Validates creation of a new issuetype. In particular, this function checks that a name has been submitted, no other issueTypes with the same name exist, and that the icon URL exists.
      Parameters:
      name - Name of the new IssueType
      style - Used to record the type of issue, such as SUBTASK. Null for regular issues.
      description - A short description of the new issue type.
      iconurl - A URL to an icon to be used for the new issueType.
      errors - A collection of errors used to pass back any problems.
      nameFieldName - The field to which the errors should be added.
    • validateCreateIssueTypeWithAvatar

      void validateCreateIssueTypeWithAvatar(String name, String style, String description, String avatarId, ErrorCollection errors, String nameFieldName)
      Validates creation of a new issuetype. In particular, this function checks that a name has been submitted, no other issueTypes with the same name exist and correct avatarId is passed.
      Parameters:
      name - Name of the new IssueType
      style - Used to record the type of issue, such as SUBTASK. Null for regular issues.
      description - A short description of the new issue type.
      avatarId - An avatar id.
      errors - A collection of errors used to pass back any problems.
      nameFieldName - The field to which the errors should be added.
      Since:
      v6.3
    • updateIssueType

      @Deprecated void updateIssueType(String id, String name, Long sequence, String style, String description, String iconurl) throws DataAccessException
      Updates an existing issueType. This will cause a invalidate of all issue types (i.e. reload from the DB).
      Parameters:
      id - ID of the existing issuetype.
      name - Name of the new IssueType
      sequence - Sequence number used for ordering the issuetypes in the UI.
      style - Used to record the type of issue, such as SUBTASK. Null for regular issues.
      description - A short description of the new issue type.
      iconurl - A URL to an icon to be used for the new issueType.
      Throws:
      DataAccessException - indicates an error in the Data Access Layer
    • updateIssueType

      void updateIssueType(String id, String name, Long sequence, String style, String description, Long avatarId)
      Updates an existing issueType. This will cause a invalidate of all issue types (i.e. reload from the DB).
      Parameters:
      id - ID of the existing issuetype.
      name - Name of the new IssueType
      sequence - Sequence number used for ordering the issuetypes in the UI.
      style - Used to record the type of issue, such as SUBTASK. Null for regular issues.
      description - A short description of the new issue type.
      avatarId - avatarid of new issueType.
      Throws:
      DataAccessException - indicates an error in the Data Access Layer
      Since:
      v6.3
    • removeIssueType

      @Deprecated void removeIssueType(String id) throws RemoveException
      Deprecated.
      Since 7.0. Do not use this method!!! Use IssueTypeManager.removeIssueType(String, String).
      Removes an existing issueType. This will cause a invalidate of all issue types (i.e. reload from the DB).

      THIS METHOD IS BROKEN AND SHOULD NEVER BE USED SINCE v5.0.

      Parameters:
      id - ID of an existing issueType
      Throws:
      RemoveException - if the issueType with id doesn't exist, or an error occurred removing the issue.
    • getStatus

      Status getStatus(String id)
      Returns a Status given an id.
      Parameters:
      id - The id of a status
      Returns:
      Returns a status
    • getStatusObject

      @Deprecated default Status getStatusObject(String id)
      Deprecated.
      Use getStatus(java.lang.String) instead. Deprecated since v7.0
      Returns a Status given an id.
      Parameters:
      id - The id of a status
      Returns:
      Returns a Status object.
    • getStatuses

      Collection<Status> getStatuses()
      Returns all statuses
      Returns:
      Returns a Collection of status Statuss.
    • refreshStatuses

      void refreshStatuses()
      Reloads all statuses from DB.
    • getStatusByName

      Status getStatusByName(String name)
      Searches for a given status by name. This is not the most efficient implementation. If the name is not found, or the given name is null, then it returns null.
      Parameters:
      name - The name of the status.
      Returns:
      A Status object with the given name, or null if none found.
    • getStatusByNameIgnoreCase

      Status getStatusByNameIgnoreCase(String name)
      Searches for a given status by name ignoring case. This is not the most efficient implementation. If the name is not found, or the given name is null, then it returns null.
      Parameters:
      name - The name of the status.
      Returns:
      A Status object with the given name, or null if none found.
    • getStatusByTranslatedName

      Status getStatusByTranslatedName(String name)
      Searches for a given status by its translated name. If no matching translated name is found the true (untranslated) name will be tried. If the name is not found, or the given name is null, then it returns null.
      Parameters:
      name - The name of the status.
      Returns:
      A Status object with the given name, or null if none found.
    • getConstantObject

      @Nullable IssueConstant getConstantObject(String constantType, String id)
      Returns an IssueConstant object for the given type invalid input: '&' id.
      Parameters:
      constantType - See ConstantsManager.CONSTANT_TYPE
      id - The id of the constant.
      Returns:
      A IssueConstant object. Null if it doesn't exist.
    • getConstantObjects

      @Nullable Collection<? extends IssueConstant> getConstantObjects(String constantType)
      Returns all IssueConstant objects for the given type.
      Parameters:
      constantType - See ConstantsManager.CONSTANT_TYPE
      Returns:
      A collection of IssueConstant object; will be null if and only if constantType is invalid
    • getConstantsByIds

      @Nonnull List<IssueConstant> getConstantsByIds(@Nonnull ConstantsManager.CONSTANT_TYPE constantType, @Nonnull Collection<String> ids)
      Converts the list of ids to the objects of appropriate types
      Parameters:
      constantType - Type of constant
      ids - list of constant ids
      Returns:
      List of IssueConstant subclasses.
    • constantExists

      boolean constantExists(String constantType, String name)
      Checks if a constant exists.
      Parameters:
      constantType - See PRIORITY_CONSTANT_TYPE, STATUS_CONSTANT_TYPE, RESOLUTION_CONSTANT_TYPE, ISSUE_TYPE_CONSTANT_TYPE
      name - The name of the constant.
      Returns:
      True if the constant exists. False otherwise
    • getIssueConstantByName

      IssueConstant getIssueConstantByName(String constantType, String name)
      Returns a constant by name.
      Parameters:
      constantType - See PRIORITY_CONSTANT_TYPE, STATUS_CONSTANT_TYPE, RESOLUTION_CONSTANT_TYPE, ISSUE_TYPE_CONSTANT_TYPE
      name - The Name of the constant.
      Returns:
      The IssueConstant
    • getConstantByNameIgnoreCase

      IssueConstant getConstantByNameIgnoreCase(String constantType, String name)
      Returns a constant by name ignoring the case of the name passed in.
      Parameters:
      constantType - See PRIORITY_CONSTANT_TYPE, STATUS_CONSTANT_TYPE, RESOLUTION_CONSTANT_TYPE, ISSUE_TYPE_CONSTANT_TYPE
      name - The Name of the constant, case-insensitive.
      Returns:
      An IssueConstant (or null if not found)
    • getIssueConstant

      @Deprecated IssueConstant getIssueConstant(org.ofbiz.core.entity.GenericValue issueConstantGV)
      Deprecated.
      Deprecated since v7.0. You just shouldn't have GVs any more
      Converts a constant GenericValue to an IssueConstant object.
      Parameters:
      issueConstantGV - the constant GenericValue.
      Returns:
      An IssueConstant object.
    • validateName

      io.atlassian.fugue.Option<Pair<String,ErrorCollection.Reason>> validateName(String name, io.atlassian.fugue.Option<IssueType> issueTypeToUpdate)
      Validates the name of issue type. If the validation passes returns Option.none, else returns na Option with a pair of error message and reason.
    • invalidateAll

      void invalidateAll()
      Sets all cached copies of constants to null. This will cause them to be re-loaded from the DB the next time they are accessed.
    • invalidate

      void invalidate(IssueConstant issueConstant)
      Clear the cache for this Issue Constant. Implementations may clear additional IssueConstants at their discretion.
    • recalculateIssueTypeSequencesAndStore

      void recalculateIssueTypeSequencesAndStore(List<IssueType> issueTypes)
      Resequences the supplied issuetypes into sequential order.
      Parameters:
      issueTypes -
    • recalculatePrioritySequencesAndStore

      void recalculatePrioritySequencesAndStore(List<Priority> priorities)
      Resequences the supplied priorities into sequential order.
      Parameters:
      priorities -
    • recalculateStatusSequencesAndStore

      void recalculateStatusSequencesAndStore(List<Status> statuses)
      Resequences the supplied statuses into sequential order.
      Parameters:
      statuses -
    • recalculateResolutionSequencesAndStore

      void recalculateResolutionSequencesAndStore(List<Resolution> resolutions)
      Resequences the supplied resolutions into sequential order.
      Parameters:
      resolutions -
    • createIssueConstantNameSearchPattern

      @ExperimentalApi static Pattern createIssueConstantNameSearchPattern(@NotEmpty @NotEmpty String substring)
      Parameters:
      substring - starting part of the name that must be present
      Returns:
      pattern for filtering issue constant names