/** * Creates a new ChangeHistoryBatch from a collection of ChangeHistory instances. * * @param issues the Issues to load the ChangeHistory items for * @param ofBizDelegator the OfBizDelegator to use for fetching change items * @param issueManager the IssueManager @return a ChangeHistoryBatch * @throws NullPointerException if any element in {@code issues} is null */ static ChangeHistoryBatch createBatchForIssue(@Nonnull Iterable<Issue> issues, OfBizDelegator ofBizDelegator, IssueManager issueManager, UserManager userManager) { return new ChangeHistoryBatch(issues, ofBizDelegator, issueManager, userManager); }
private List<ChangeHistory> getAllChangeHistories(final Iterable<Issue> issues) { notNull("issues", issues); return ChangeHistoryBatch.createBatchForIssue(issues, ofBizDelegator, issueManager, userManager).asList(); }
/** * Creates a new ChangeHistoryBatch from a collection of ChangeHistory instances. * * @param issues the Issues to load the ChangeHistory items for * @param ofBizDelegator the OfBizDelegator to use for fetching change items * @throws NullPointerException if any element in {@code issues} is null */ private ChangeHistoryBatch(@Nonnull Iterable<Issue> issues, @Nonnull OfBizDelegator ofBizDelegator, @Nonnull IssueManager issueManager,@Nonnull UserManager userManager) throws NullPointerException { this.issues = ImmutableMap.copyOf(Maps.uniqueIndex(issues, new GetIssueIdFn())); this.issueManager = notNull("issueManager", issueManager); this.userManager = notNull("userManager", userManager); this.ofBizDelegator = notNull("ofBizDelegator", ofBizDelegator); this.changeHistories = fetchAllChangeGroups(); }
/** * Fetches all change history items for this batch's issue. * * @return a list of ChangeHistory */ private ImmutableList<ChangeHistory> fetchAllChangeGroups() { if (issues.isEmpty()) { return ImmutableList.of(); } log.debug("About to fetch change groups for issues: {}", issues.keySet()); OfBizListIterator changeGroups = ofBizDelegator.findListIteratorByCondition("ChangeGroup", new EntityExpr("issue", IN, issues.keySet()), null, null, ImmutableList.of("created ASC", "id ASC"), null); try { log.debug("Fetched {} change groups"); return wrapChangeHistories(changeGroups); } finally { changeGroups.close(); } }
return makeImmutable(changeItemsByChangeGroup);