Files
GSE2TaskTracker/src/main/java/hhn/temp/project/Task.java
Jan-Philipp Luithardt c775b4ab96
Some checks are pending
Gradle CI with Jacoco / build (push) Has started running
add db
2025-12-06 20:08:03 +01:00

95 lines
2.2 KiB
Java

package hhn.temp.project;
import hhn.temp.project.expections.TaskHasNoWorkerException;
import hhn.temp.project.provider.MySql;
public class Task {
private String name;
private String description;
private TaskStatus taskStatus;
private int taskID;
private String workername;
private MySql mySql;
public Task(int id, String name, String description, String workername, TaskStatus status, MySql mySql) {
this.taskID = id;
this.name = name;
this.description = description;
this.taskStatus = status;
this.workername = workername;
this.mySql = mySql;
}
public int getTaskID() {
return this.taskID;
}
public String getName() {
return this.name;
}
public String getDescription() {
return description;
}
public TaskStatus getStatus() {
return taskStatus;
}
public void setDescription(String description) {
if (description == null ) {
throw new IllegalArgumentException("Description is null!");
}
this.mySql.updateDescription(taskID, description);
this.description = description;
}
public void setStatus(TaskStatus taskStatus) {
if (taskStatus == null ) {
throw new IllegalArgumentException("TaskStatus is null!");
}
this.mySql.updateStatus(taskID, taskStatus);
this.taskStatus = taskStatus;
}
public void setWorker(String workerName) {
if(workerName == null || workerName.isEmpty()) {
throw new IllegalArgumentException("There is nothing in this variable.");
}
if(!checkOnlyLetter(workerName)){
throw new IllegalArgumentException("Only Lettery as Worker Name!");
}
this.mySql.updateStatus(taskID, TaskStatus.INPROCESS);
this.mySql.updateWorker(taskID, workerName);
this.workername = workerName;
this.setStatus(TaskStatus.INPROCESS);
}
public String getWorker() {
if(this.workername == null) {
throw new TaskHasNoWorkerException("Please set first a Worker");
}
return this.workername;
}
private boolean checkOnlyLetter(String text) {
boolean result = true;
for(int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if(!Character.isLetter(c)) {
result = false;
break;
}
}
return result;
}
}