Interface ChangeHistoryManager

All Known Implementing Classes:
DefaultChangeHistoryManager

@PublicApi public interface ChangeHistoryManager
Manages the change history of issues. TODO: expand this interface to include the functionality from ChangeLogUtils
  • Method Details

    • getChangeHistories

      List<ChangeHistory> getChangeHistories(Issue issue)
      Returns a List of ChangeHistory entities
      Parameters:
      issue - the issue.
      Returns:
      a List of ChangeHistory entries.
    • getChangeHistoriesSince

      @Nonnull List<ChangeHistory> getChangeHistoriesSince(@Nonnull Issue issue, @Nonnull Date since)
      Returns a List of ChangeHistory entities that occurred after the provided date.
      Parameters:
      issue - the issue. Must not be null.
      since - only change histories made after this date will be returned. Must not be null.
      Returns:
      a possibly empty List of ChangeHistory entries made after the provided date. Will not be null.
      Since:
      v6.3
    • getChangeHistoriesForUser

      List<ChangeHistory> getChangeHistoriesForUser(Issue issue, ApplicationUser remoteUser)
      Returns a List of ChangeHistory entities for a single issue.
      Parameters:
      issue - the issue.
      remoteUser - the user who is asking.
      Returns:
      a List of ChangeHistory entries.
      See Also:
      • for a more efficient way to read change histories for multiple issues
    • getChangeHistoriesForUser

      List<ChangeHistory> getChangeHistoriesForUser(Iterable<Issue> issues, ApplicationUser remoteUser)
      Returns a List of ChangeHistory entities for multiple issues. This method is much more efficient than #getChangeHistoriesForUser(com.atlassian.jira.issue.Issue, com.atlassian.crowd.embedded.api.User) and should be preferred whenever possible.
      Parameters:
      issues - the issues.
      remoteUser - the user who is asking.
      Returns:
      a List of ChangeHistory entries.
      Since:
      v5.1
    • getChangeHistoriesForUser

      List<ChangeHistory> getChangeHistoriesForUser(Iterable<Issue> issues, ApplicationUser remoteUser, Integer limit)
      Returns a List of ChangeHistory entities for multiple issues. This method is much more efficient than #getChangeHistoriesForUser(com.atlassian.jira.issue.Issue, com.atlassian.crowd.embedded.api.User) and should be preferred whenever possible. Returns
      Parameters:
      issues - the issues.
      remoteUser - the user who is asking.
      limit - maximum amount of records to return
      Returns:
      a List of ChangeHistory entries in Ascending order by date and id
      Since:
      v8.2
    • getChangeItemsForField

      List<ChangeItemBean> getChangeItemsForField(Issue issue, String changeItemFieldName)
      Returns a list of ChangeItemBean for the given issue which also are for the provided changeItemFieldName (i.e. Link, Fix Version/s, etc). The order of the list will from oldest to newest.
      Parameters:
      issue - the issue the change items are associated with, not null.
      changeItemFieldName - the field name the change item is stored under, not null or empty.
      Returns:
      a List of ChangeItemBean's for the given issue.
    • getChangeItemsForField

      @Nonnull @ExperimentalApi List<ChangeItemBean> getChangeItemsForField(@Nonnull Issue issue, String changeItemFieldName, @Nonnull Date since)
      Returns a list of ChangeItemBean for the given issue which also are for the provided changeItemFieldName (i.e. Link, Fix Version/s, etc) and the provided date since the changes have been created. The order of the list returned is from oldest to newest.
      Parameters:
      issue - the issue the change items are associated with, not null.
      changeItemFieldName - the field name the change item is stored under, not null or empty.
      since - only change items created after this date will be returned, not null.
      Returns:
      a List of ChangeItemBean's for the given issue.
      Since:
      v8.22
    • getChangeItemsWithFieldsForIssues

      List<ChangeHistory> getChangeItemsWithFieldsForIssues(Iterable<Issue> issues, Iterable<String> fieldNames)
      Returns a List of ChangeHistory for the listed issues with changes only for the listed fields.
      Parameters:
      issues - The list of issues to search
      fieldNames - The list of field names
      Returns:
      A list of changes.
      Since:
      v7.1
    • getAllChangeItems

      List<ChangeHistoryItem> getAllChangeItems(Issue issue)
      Returns a List of ChangeHistoryItem's for the given issue. Items in the returned list are ordered ascending by creation date any id.
      Parameters:
      issue - the issue
      Returns:
      A list containing all of the change items for a specific Issue
    • getChangeHistoryById

      @Nullable ChangeHistory getChangeHistoryById(Long changeGroupId)
      Returns:
      a ChangeHistory group with the given id, or null if not found
      Since:
      v6.3
    • findUserHistory

      Collection<Issue> findUserHistory(ApplicationUser remoteUser, Collection<String> userkeys, int maxResults)
      Find a list of issues that the given users have acted on.
      Parameters:
      remoteUser - The user executing this request.
      userkeys - The keys of users to find the history for. If null, returns the history for all users. If empty, no results will be found.
      maxResults - The maxmimum number of issues to return
      Returns:
      An immutable collection of issue objects sorted by creation date in descending order
      Since:
      v4.0
    • findUserHistory

      Collection<Issue> findUserHistory(ApplicationUser remoteUser, Collection<String> userkeys, Collection<Project> projects, int maxResults)
      Find a list of issues that the given users have acted on with the option to limit the projects included in the search.
      Parameters:
      remoteUser - The user executing this request.
      userkeys - The keys of users to find the history for. If null, returns the history for all users. If empty, no results will be found.
      projects - The projects to include issues from
      maxResults - The maxmimum number of issues to return
      Returns:
      An immutable collection of issue objects sorted by creation date in descending order
      Since:
      v4.3
    • findUserHistory

      Collection<Issue> findUserHistory(ApplicationUser remoteUser, Collection<String> userkeys, Collection<Project> projects, int maxResults, @Nullable Date oldestUpdateTime)
      Find a list of issues that the given users have acted on with the option to limit the projects included in the search.
      Parameters:
      remoteUser - The user executing this request.
      userkeys - The keys of users to find the history for. If null, returns the history for all users. If empty, no results will be found.
      projects - The projects to include issues from
      maxResults - The maxmimum number of issues to return
      oldestUpdateTime - issues updated prior to this time will not be included in the result
      Returns:
      An immutable collection of issue objects sorted by creation date in descending order
      Since:
      v8.17
    • removeAllChangeItems

      void removeAllChangeItems(Issue issue)
      Remove all change items associated with an issue.
      Parameters:
      issue - affected issue