HistoryList.java
package org.ferris.riviera.console.history;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
/**
*
* @author Michael Remijan mjremijan@yahoo.com @mjremijan
*/
public class HistoryList extends ArrayList<History> {
private static final long serialVersionUID = 116498641946549L;
public Optional<History> getLastAppliedVersion() {
if (isEmpty()) {
return Optional.empty();
} else {
Map<Date, List<History>> map =
stream()
.collect(Collectors.groupingBy(h -> h.getAppliedOn()));
map.keySet().stream().max((a,b)->a.compareTo(b));
return Optional.of(stream()
.max(Comparator.comparing(History::getAppliedOn)).get());
}
}
public Optional<History> getLatestVersion() {
if (isEmpty()) {
return Optional.empty();
} else {
return Optional.of(get(size() - 1));
}
}
}