aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/model
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/model')
-rwxr-xr-xsrc/main/java/io/trygvis/model/Queue.java12
-rwxr-xr-xsrc/main/java/io/trygvis/model/Task.java74
2 files changed, 80 insertions, 6 deletions
diff --git a/src/main/java/io/trygvis/model/Queue.java b/src/main/java/io/trygvis/model/Queue.java
index 52c5c0f..aeec405 100755
--- a/src/main/java/io/trygvis/model/Queue.java
+++ b/src/main/java/io/trygvis/model/Queue.java
@@ -19,6 +19,10 @@ public class Queue {
private long interval;
+ @SuppressWarnings("UnusedDeclaration")
+ private Queue() {
+ }
+
public Queue(String name, long interval) {
this.name = name;
this.interval = interval;
@@ -43,4 +47,12 @@ public class Queue {
public void setInterval(long interval) {
this.interval = interval;
}
+
+ public String toString() {
+ return "Queue{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ ", interval=" + interval +
+ '}';
+ }
}
diff --git a/src/main/java/io/trygvis/model/Task.java b/src/main/java/io/trygvis/model/Task.java
index fa44e26..e86b623 100755
--- a/src/main/java/io/trygvis/model/Task.java
+++ b/src/main/java/io/trygvis/model/Task.java
@@ -1,6 +1,8 @@
package io.trygvis.model;
import javax.persistence.*;
+import java.util.*;
+import java.util.regex.*;
@Entity
public class Task {
@@ -12,21 +14,81 @@ public class Task {
@ManyToOne
private Queue queue;
- private Long long1;
+ private Date scheduled;
- public Task(Queue queue) {
+ private Date lastRun;
+
+ private int runCount;
+
+ private Date completed;
+
+ private String arguments;
+
+ private static final Pattern pattern = Pattern.compile(" ");
+
+ @SuppressWarnings("UnusedDeclaration")
+ private Task() {
+ }
+
+ public Task(Queue queue, Date scheduled, String... arguments) {
this.queue = queue;
+ this.scheduled = scheduled;
+
+ StringBuilder builder = new StringBuilder(arguments.length * 100);
+ for (String argument : arguments) {
+ if (pattern.matcher(argument).matches()) {
+ throw new RuntimeException("Bad argument: '" + argument + "'.");
+ }
+ builder.append(argument).append(' ');
+ }
+ this.arguments = builder.toString();
}
public Integer getId() {
return id;
}
- public Long getLong1() {
- return long1;
+ public String[] getArguments() {
+ return arguments.split(" ");
+ }
+
+ public Date getScheduled() {
+ return scheduled;
+ }
+
+ public Date getLastRun() {
+ return lastRun;
+ }
+
+ public int getRunCount() {
+ return runCount;
+ }
+
+ public Date getCompleted() {
+ return completed;
+ }
+
+ public void setCompleted(Date completed) {
+ this.completed = completed;
+ }
+
+ public void registerRun() {
+ lastRun = new Date();
+ runCount++;
+ }
+
+ public void registerComplete(Date completed) {
+ this.completed = completed;
}
- public void setLong1(Long long1) {
- this.long1 = long1;
+ public String toString() {
+ return "Task{" +
+ "id=" + id +
+ ", queue=" + queue +
+ ", scheduled=" + scheduled +
+ ", lastRun=" + lastRun +
+ ", completed=" + completed +
+ ", arguments='" + arguments + '\'' +
+ '}';
}
}