package org.bensteele.jirrigate.controller;
import java.util.LinkedHashMap;
import java.util.Map;
import org.bensteele.jirrigate.controller.zone.Zone;
/**
* Provides information to a {@link Controller} on what zones and duration to irrigate. This is a
* one off irrigation request.
*
* @author Ben Steele (ben@bensteele.org)
*/
public class IrrigationRequest {
// <Zone,Long> where long is the duration in this particular request for the zone.
private final Map<Zone, Long> zones = new LinkedHashMap<Zone, Long>();
public Map<Zone, Long> getZones() {
return this.zones;
}
@Override
public String toString() {
String request = "Zone(s): ";
long duration = 0;
for (Zone z : zones.keySet()) {
request += "<" + z.getName() + ",";
if (zones.get(z) < 60) {
request += zones.get(z) + "s> ";
} else {
request += (zones.get(z) / 60) + "m> ";
}
duration += zones.get(z);
}
if (duration < 60) {
request += "\nTotal duration: " + duration + "s";
} else {
request += "\nTotal duration: " + (duration / 60) + "m";
}
return request;
}
}