@Override public int compareTo(ChangeHistoryItem other) { int result = created.compareTo(other.getCreated()); if (result == 0) { result = changeGroupId.compareTo(other.getChangeGroupId()); if (result == 0) { result = id.compareTo(other.getId()); } } return result; }
private Iterable<ChangeHistoryGroup> createChangeGroupsFromChangeItems(final List<ChangeHistoryItem> changeHistoryItems, final Issue issue) { // need to maintain sorting order here, for this to work List<ChangeHistoryItem> filteredChangeItems = newArrayList(filterChangeItems(issue, changeHistoryItems)); Collections.sort(filteredChangeItems); long currentChangeGroup = -1; ChangeHistoryGroup.Builder builder = new ChangeHistoryGroup.Builder(); List<ChangeHistoryGroup.Builder> builders = newArrayList(builder); for (ChangeHistoryItem item : filteredChangeItems) { if (item.getChangeGroupId() != currentChangeGroup) { currentChangeGroup = item.getChangeGroupId(); builder = new ChangeHistoryGroup.Builder(); builders.add(builder); } builder.addChangeItem(item); } return Iterables.transform(builders, new Function<ChangeHistoryGroup.Builder, ChangeHistoryGroup>() { @Override public ChangeHistoryGroup apply(@Nullable ChangeHistoryGroup.Builder builder) { return builder.build(); } }); }
@Override public int hashCode() { return new HashCodeBuilder() .append(getId()) .append(getChangeGroupId()) .append(getField()) .append(getUserKey()) .append(getProjectId()) .append(getIssueId()) .append(getIssueKey()) .append(getCreated()) .append(getNextChangeCreated()) .append(getFroms()) .append(getTos()) .toHashCode(); }
@Override public boolean equals(Object o) { if(o == null || !(o instanceof ChangeHistoryItem)) { return false; } ChangeHistoryItem rhs = (ChangeHistoryItem)o; return new EqualsBuilder() .append(getId(), rhs.getId()) .append(getChangeGroupId(), rhs.getChangeGroupId()) .append(getField(), rhs.getField()) .append(getUserKey(), rhs.getUserKey()) .append(getProjectId(), rhs.getProjectId()) .append(getIssueId(), rhs.getIssueId()) .append(getIssueKey(), rhs.getIssueKey()) .append(getCreated(), rhs.getCreated()) .append(getNextChangeCreated(), rhs.getNextChangeCreated()) .append(getFroms(), rhs.getFroms()) .append(getTos(), rhs.getTos()) .isEquals(); }
public Builder addChangeItem(ChangeHistoryItem item) { Assertions.notNull(item); changeItems.add(item); if (issueId == 0) { id = item.getChangeGroupId(); issueId = item.getIssueId(); issueKey = item.getIssueKey(); projectId = item.getProjectId(); userKey = item.getUserKey(); created = item.getCreated(); } return this; }
public Builder fromChangeItemWithoutPreservingChanges(ChangeHistoryItem changeItem) { this.id = changeItem.getId(); this.projectId = changeItem.getProjectId(); this.changeGroupId = changeItem.getChangeGroupId(); this.issueId = changeItem.getIssueId(); this.issueKey = changeItem.getIssueKey(); this.field = changeItem.getField(); this.created = changeItem.getCreated(); this.userKey = changeItem.getUserKey(); this.nextChangeCreated = changeItem.getNextChangeCreated(); return this; }