feat: TaskDB types and interfaces

Created the types and interfaces relating to the TaskDatabase
This commit is contained in:
David Guler 2022-10-14 21:08:34 +02:00
parent 9ad62d72cc
commit 6d1fdd05ab
2 changed files with 63 additions and 0 deletions

View File

@ -0,0 +1,13 @@
package ch.zhaw.gartenverwaltung.io;
import ch.zhaw.gartenverwaltung.types.Task;
import java.io.IOException;
import java.util.Date;
import java.util.List;
public interface TaskDatabase {
List<Task> getTaskList(Date start, Date end);
void saveTask(Task task) throws IOException;
void removeTask(Task task) throws IOException;
}

View File

@ -0,0 +1,50 @@
package ch.zhaw.gartenverwaltung.types;
import java.util.Date;
import java.util.Optional;
/**
* Models a Task
* May be created using the builder pattern.
*/
public class Task {
private long id;
private final String name;
private final String description;
private final Date startDate;
private Integer interval;
private Date endDate;
public Task(String name, String description, Date startDate) {
this.name = name;
this.description = description;
this.startDate = endDate;
}
// Builder-pattern-style setters
public Task withId(long id) {
this.id = id;
return this;
}
public Task withInterval(int interval) {
this.interval = interval;
return this;
}
public Task withEndDate(Date endDate) {
this.endDate = endDate;
return this;
}
// Getters
public long getId() { return id; }
public String getName() { return name; }
public String getDescription() { return description; }
public Date getStartDate() { return startDate; }
public Optional<Integer> getInterval() {
return Optional.ofNullable(interval);
}
public Optional<Date> getEndDate() {
return Optional.ofNullable(endDate);
}
}