10UMLClass57017510030MainUMLClass920365300140<<Interface>>
PlantDatabase
--
+ getPlantList(zone: HardinessZone): List<Plant>UMLClass76064522050TaskListControllerUMLClass97085210130<<Record>>
Plant
--
+ id: long
+ name: String
+ description: String
+ spacing: ?
+ lifecycle: Lifecycle
UMLClass102064516050TaskListModelUMLClass45062518070PlantListModelUMLClass23062518080PlantListControllerUMLClass1300825380230Task
--
+ id: long
+ name: String {readOnly}
+ description: String {readOnly}
+ startDate: Date {readOnly}
- interval: int
- endDate: Date
--
+ Task(name: String, description: String, startDate: String): Task
+ withInterval(interval: int): Task
+ withEndDate(endDate: Date): Task
+ withId(id: long): Task
--
+ getInterval(): Optional<int>
+ getEndDate(): Optional<Date>UMLClass960825280140<<Interface>>
TaskDatabase
--
+ getTaskList(start: Date, end: Date): List<Task>
+ saveTask(Task task): void
+ removeTask(Task task): booleanUMLClass500265100100MainWindowUMLClass630285180130MainWindowControllerUMLClass54047521070NotificationServiceUMLClass1690565240140<<Interface>>
WeatherService
--
+ getWeatherForecast: WeatherForecastUMLClass1410445230100WeatherForecast
--
- updateTasksUMLClass138045260240Lifecycle
--
- sowStart: Date {final}
- sowEnd: Date {final}
- plantStart: Date {final}
- plantEnd: Date {final}
- harvestStart: Date {final}
- harvestEnd: Date {final}
--
+ Lifecylcle(sowStart: Date, sowEnd: Date, plantStart: Date, plantEnd: Date, harvestStart: )
+ getSowStart(): Optional<Date>
+ getSowEnd(): Optional<Date>
+ getPlantStart(): Optional<Date>
+ getPlantEnd(): Optional<Date>
+ getHarvestStart(): Optional<Date>
+ getHarvestEnd(): Optional<Date>
Relation117011523060lt=<->>>>>210;10;10;40Text2306519070Note:
--
{final, readOnly} omitted on public data fields in <<Record>> Entities for clarity
style=wordwrapRelation12308859030lt=<.70;10;10;10Relation109068530160lt=<.10;140;10;10UMLClass410785210120<<Record>>
UserPlanting
--
+ plantId: long
+ isSown: boolean
+ startDate: Date
+ area: int