*/
static public HistoricItem maximumSince(final Item item, AbstractInstant timestamp, String serviceName) {
Iterable<HistoricItem> result = getAllStatesSince(item, timestamp, serviceName);
Iterator<HistoricItem> it = result.iterator();
HistoricItem maximumHistoricItem = null;
DecimalType maximum = (DecimalType) item.getStateAs(DecimalType.class);
while(it.hasNext()) {
HistoricItem historicItem = it.next();
State state = historicItem.getState();
if (state instanceof DecimalType) {
DecimalType value = (DecimalType) state;
if(maximum==null || value.compareTo(maximum)>0) {
maximum = value;
maximumHistoricItem = historicItem;
}
}
}
if(maximumHistoricItem==null && maximum!=null) {
// the maximum state is the current one, so construct a historic item on the fly
final DecimalType state = maximum;
return new HistoricItem() {
public Date getTimestamp() {
return Calendar.getInstance().getTime();
}