1 package org.gnomekr.potron.data;
2
3 import java.io.Serializable;
4 import java.util.Date;
5 import java.util.List;
6 import java.util.Set;
7
8 import org.apache.commons.lang.builder.EqualsBuilder;
9 import org.apache.commons.lang.builder.HashCodeBuilder;
10 import org.apache.commons.lang.builder.ToStringBuilder;
11
12 /***
13 * Template.java
14 * @author Xavier Cho
15 * @version $Revision 1.1 $ $Date: 2005/07/21 10:04:42 $
16 * @hibernate.class
17 * table = "POTRON_TEMPLATE"
18 * lazy = "true"
19 * @hibernate.cache usage = "nonstrict-read-write"
20 */
21 public class Template implements Serializable {
22
23 private static final long serialVersionUID = 183646233934599284L;
24
25 private long id = -1;
26 private String name;
27 private Date registeredDate;
28 private String comment;
29 private String description;
30 private Project project;
31 private List<Header> headers;
32 private Set<Translation> translations;
33 private List<Entry> entries;
34
35 public Template() {
36 }
37
38 /***
39 * @param id
40 */
41 public Template(long id) {
42 this.id = id;
43 }
44
45 /***
46 * @return
47 * @hibernate.id
48 * column = "template_id"
49 * length = "20"
50 * unsaved-value = "-1"
51 * generator-class = "native"
52 * @hibernate.generator-param
53 * name = "sequence"
54 * value = "POTRON_SEQ_TEMPLATE"
55 */
56 public long getId() {
57 return id;
58 }
59
60 /***
61 * @return
62 * @hibernate.property
63 * column = "name"
64 * length = "40"
65 * update = "true"
66 * not-null = "true"
67 */
68 public String getName() {
69 return name;
70 }
71
72 /***
73 * @return
74 * @hibernate.property
75 * column = "description"
76 * length = "800"
77 * update = "true"
78 * not-null = "false"
79 */
80 public String getDescription() {
81 return description;
82 }
83
84 /***
85 * @return
86 * @hibernate.property
87 * column = "comment"
88 * type = "text"
89 * update = "true"
90 * not-null = "false"
91 */
92 public String getComment() {
93 return comment;
94 }
95
96 /***
97 * @return
98 * @hibernate.property
99 * column = "reg_date"
100 * update = "false"
101 * not-null = "true"
102 */
103 public Date getRegisteredDate() {
104 return registeredDate;
105 }
106
107 /***
108 * @return
109 * @hibernate.many-to-one
110 * class = "org.gnomekr.potron.data.Project"
111 * column = "project_id"
112 * not-null = "true"
113 */
114 public Project getProject() {
115 return project;
116 }
117
118 /***
119 * @return
120 * @hibernate.collection-key
121 * column = "template_id"
122 *@hibernate.collection-index
123 * column = "header_index"
124 * type = "int"
125 * length = "10"
126 *@hibernate.collection-composite-element
127 * class = "org.gnomekr.potron.data.Header"
128 * @hibernate.list
129 * table = "POTRON_TEMPL_HEADER"
130 * lazy = "true"
131 * cascade = "all-delete-orphan"
132 */
133 public List<Header> getHeaders() {
134 return headers;
135 }
136
137 /***
138 * @return
139 * @hibernate.collection-one-to-many
140 * class = "org.gnomekr.potron.data.Translation"
141 * @hibernate.collection-key
142 * column = "template_id"
143 * @hibernate.set
144 * lazy = "true"
145 * inverse = "true"
146 * order-by = "trans_id"
147 * cascade = "all-delete-orphan"
148 */
149 public Set<Translation> getTranslations() {
150 return translations;
151 }
152
153 /***
154 * @return Returns the entries.
155 * @hibernate.collection-one-to-many
156 * class = "org.gnomekr.potron.data.Entry"
157 * @hibernate.collection-key
158 * column = "template_id"
159 * @hibernate.collection-index
160 * column = "entry_index"
161 * type = "int"
162 * length = "10"
163 * @hibernate.list
164 * lazy = "true"
165 * order-by = "entry_id"
166 * cascade = "all-delete-orphan"
167 */
168 public List<Entry> getEntries() {
169 return entries;
170 }
171
172 /***
173 * @param description The description to set.
174 */
175 public void setDescription(String description) {
176 this.description = description;
177 }
178
179 /***
180 * @param comment The comment to set.
181 */
182 public void setComment(String comment) {
183 this.comment = comment;
184 }
185
186 /***
187 * @param id The id to set.
188 */
189 public void setId(long id) {
190 this.id = id;
191 }
192
193 /***
194 * @param name The name to set.
195 */
196 public void setName(String name) {
197 this.name = name;
198 }
199
200 /***
201 * @param registeredDate The registeredDate to set.
202 */
203 public void setRegisteredDate(Date registeredDate) {
204 this.registeredDate = registeredDate;
205 }
206
207 /***
208 * @param registeredDate The project to set.
209 */
210 public void setProject(Project project) {
211 this.project = project;
212 }
213
214 /***
215 * @param entries The entries to set.
216 */
217 public void setEntries(List<Entry> entries) {
218 this.entries = entries;
219 }
220
221 /***
222 * @param headers The headers to set.
223 */
224 public void setHeaders(List<Header> headers) {
225 this.headers = headers;
226 }
227
228 /***
229 * @param translations The translations to set.
230 */
231 public void setTranslations(Set<Translation> translations) {
232 this.translations = translations;
233 }
234
235 /***
236 * @see java.lang.Object#equals(java.lang.Object)
237 */
238 public boolean equals(final Object object) {
239 if (object instanceof Template) {
240 Template template = (Template) object;
241
242 EqualsBuilder builder = new EqualsBuilder();
243 builder.append(id, template.getId());
244 builder.append(name, template.getName());
245 builder.append(description, template.getDescription());
246
247 return builder.isEquals();
248 }
249
250 return false;
251 }
252
253 /***
254 * @see java.lang.Object#toString()
255 */
256 public String toString() {
257 ToStringBuilder builder = new ToStringBuilder(this);
258 builder.append("id", id);
259 builder.append("name", name);
260 builder.append("registeredDate", registeredDate);
261
262 return builder.toString();
263 }
264
265 /***
266 * @see java.lang.Object#hashCode()
267 */
268 public int hashCode() {
269 HashCodeBuilder builder = new HashCodeBuilder();
270 builder.append(id);
271 builder.append(name);
272 builder.append(description);
273
274 return builder.toHashCode();
275 }
276 }