1
0

Arkistointi

This commit is contained in:
2026-04-13 00:33:23 +03:00
parent 1d8cda35f8
commit 17b53a38cf
93 changed files with 8476 additions and 1 deletions
@@ -0,0 +1,112 @@
package com.example.harjoitustyo;
import java.io.Serializable;
import java.time.LocalDate;
/**
* Ohjelman perustietoluokka
*/
public class Tehtava implements Serializable {
/**
* Enum tehtävän tilan seuraamiseen
*/
public enum Status {
Luotu,
Vaiheessa,
Valmis
}
private static int idCounter = 1;
private final int id;
private String otsikko;
private String kuvaus;
private final LocalDate luontiPaiva;
private LocalDate deadline;
private LocalDate valmistumisPaiva;
private Status tila;
/**
* Luo uuden tehtävän
* @param otsikko Tehtävän otsikko
* @param kuvaus Tehtävän kuvaus
* @param deadline Tehtävän deadline
*/
public Tehtava(String otsikko, String kuvaus, LocalDate deadline) {
this.id = idCounter++;
this.otsikko = otsikko;
this.kuvaus = kuvaus;
this.luontiPaiva = LocalDate.now();
this.deadline = deadline;
this.tila = Status.Luotu;
}
/**
* Asettaa luokan staattisen muuttujan tiettyyn arvoon
* @param idCounter kentän uusi arvo
*/
protected static void setIdCounter(int idCounter) {
Tehtava.idCounter = idCounter;
}
/**
* Asettaa tehtävän tilan ja valmistumisPaiva kentän valmistumispäivään
* @param tila tehtävän uusi tila
*/
public void setTila(Status tila) {
switch (tila) {
case Luotu:
this.tila = Status.Luotu;
this.valmistumisPaiva = null;
break;
case Vaiheessa:
this.tila = Status.Vaiheessa;
this.valmistumisPaiva = null;
break;
case Valmis:
if (this.tila == Status.Valmis) return; //Jos on jo valmis, ei tehdä mitään
this.tila = Status.Valmis;
this.valmistumisPaiva = LocalDate.now();
}
}
public void setOtsikko(String otsikko) {
this.otsikko = otsikko;
}
public void setKuvaus(String kuvaus) {
this.kuvaus = kuvaus;
}
public void setDeadline(LocalDate deadline) {
this.deadline = deadline;
}
public int getId() {
return id;
}
public String getOtsikko() {
return otsikko;
}
public String getKuvaus() {
return kuvaus;
}
public LocalDate getLuontiPaiva() {
return luontiPaiva;
}
public LocalDate getDeadline() {
return deadline;
}
public LocalDate getValmistumisPaiva() {
return valmistumisPaiva;
}
public Status getTila() {
return tila;
}
}