public Builder fromChangeItem(ChangeHistoryItem changeItem) { this.fromChangeItemWithoutPreservingChanges(changeItem); this.fromValues = Maps.newHashMap(changeItem.getFroms()); this.toValues = Maps.newHashMap(changeItem.getTos()); return this; }
private ChangeHistoryItem fixInitialChangeItem(ChangeHistoryItem initialChangeItem, Map<String, String> values, Timestamp created) { if (values.isEmpty()) { values = Maps.newHashMap(); values.put(emptyValue, ""); } return new ChangeHistoryItem.Builder().fromChangeItemWithoutPreservingChanges(initialChangeItem). withTos(values).nextChangeOn(created).build(); }
/** * * @param items The list of {@link com.atlassian.jira.issue.changehistory.ChangeHistoryItem}'s that represent all chnages in the current issue * @param initialChangeItem The synthetic ChangeHistoryItem previously built * @param created Timestamp of the first itrem in the list * @return The ChangeHistoryItem that accurately reflects the initial state of the issue * * The algorithm is pretty straightforward, revers the list and then iterate through reversing each change from the initial list. What is left is the * original state. */ private ChangeHistoryItem fixInitialChangeItemToValue(List <ChangeHistoryItem> items, ChangeHistoryItem initialChangeItem, Timestamp created) { Map<String, String> newToValues = Maps.newHashMap(initialChangeItem.getTos()); newToValues.remove(emptyValue); for (ChangeHistoryItem item : Lists.reverse(items)) { newToValues.putAll(item.getFroms()); for (String key: item.getTos().keySet()) { newToValues.remove(key); } } if (newToValues.isEmpty()) { newToValues.put(emptyValue, EMPTY_STRING); } return new ChangeHistoryItem.Builder().fromChangeItemWithoutPreservingChanges(initialChangeItem). withTos(newToValues).nextChangeOn(created).build(); }
public Builder fromChangeItemPreservingFromValues(ChangeHistoryItem changeItem) { this.fromChangeItemWithoutPreservingChanges(changeItem); this.fromValues = Maps.newHashMap(changeItem.getFroms()); return this; }
public Builder fromChangeItemPreservingToValues(ChangeHistoryItem changeItem) { this.fromChangeItemWithoutPreservingChanges(changeItem); this.toValues = Maps.newHashMap(changeItem.getTos()); return this; }