public List<ChangeHistoryGroup> apply(final Issue issue)
{
final List<ChangeHistoryGroup> changeGroups = new ArrayList<ChangeHistoryGroup>();
try
{
final List<GenericValue> allChanges = issueManager.getEntitiesByIssueObject(IssueRelationConstants.CHANGE_GROUPS, issue);
for (final GenericValue element : allChanges)
{
final List<ChangeHistoryItem> changes = new ArrayList<ChangeHistoryItem>();
final List<GenericValue> changeitems = element.getRelated("ChildChangeItem");
for (final GenericValue changeItem : changeitems) {
changes.add(new ChangeHistoryItem(changeItem.getLong("id"), changeItem.getLong("group"), issue.getProjectObject().getId(),issue.getId(), issue.getKey(), "status",
new Timestamp(System.currentTimeMillis()), changeItem.getString("oldstring"),
changeItem.getString("newstring"), changeItem.getString("oldvalue"),
changeItem.getString("newvalue"), element.getString("author")));
}
changeGroups.add(new ChangeHistoryGroup(element.getLong("id"), issue.getProjectObject().getId(), issue.getId(), issue.getKey(), element.getString("author"), changes, element.getTimestamp("created")));
}
}
catch (final Exception e)
{
throw new DataAccessException(e);
}
return changeGroups;
}
}