-
Notifications
You must be signed in to change notification settings - Fork 3
/
Item.java
140 lines (117 loc) · 3.65 KB
/
Item.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
* $Id: $
*
* Copyright (C) 2012 Stoyan Rachev ([email protected])
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2, or (at your option) any
* later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*/
package com.stoyanr.todo.model;
import java.io.Serializable;
import java.util.Date;
import javax.jdo.annotations.Extension;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
@SuppressWarnings("serial")
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
public class Item implements Serializable {
public enum Priority {
HIGH, MEDIUM, LOW
}
public enum Status {
NEW, IN_PROGRESS, FINISHED
}
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = "true")
private String key;
@Persistent
@Extension(vendorName = "datanucleus", key = "gae.pk-name", value = "true")
private String id;
@Persistent
private String text;
@Persistent
private Priority priority;
@Persistent
private Status status;
@Persistent
private Date created;
@Persistent
private Date updated;
public Item() {
this(null, -1, "(Empty)", Priority.MEDIUM, Status.NEW, new Date(), new Date());
}
public Item(String key, long id, String text, Priority priority,
Status status, Date created, Date updated) {
assert (id >= -1);
assert (text != null);
assert (priority != null);
assert (status != null);
assert (created != null);
assert (updated != null);
this.key = key;
this.id = String.valueOf(id);
this.text = text;
this.priority = priority;
this.status = status;
this.created = created;
this.updated = updated;
}
public String getKey() {
return key;
}
public long getId() {
return Long.valueOf(id);
}
public String getText() {
return text;
}
public void setText(String text) {
assert (text != null);
this.text = text;
}
public Priority getPriority() {
return priority;
}
public void setPriority(Priority priority) {
assert (priority != null);
this.priority = priority;
}
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
assert (status != null);
this.status = status;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
assert (created != null);
this.created = created;
}
public Date getUpdated() {
return updated;
}
public void setUpdated(Date updated) {
assert (updated != null);
this.updated = updated;
}
@Override
public String toString() {
return id + ":" + text + ":" + priority.toString() + ":"
+ status.toString() + ":" + created.toString() + ":"
+ updated.toString();
}
}