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.StringUtils; 9 import org.apache.commons.lang.builder.EqualsBuilder; 10 import org.apache.commons.lang.builder.HashCodeBuilder; 11 import org.apache.commons.lang.builder.ToStringBuilder; 12 import org.gnomekr.potron.parser.ParserEntry; 13 14 /*** 15 * TranslatedEntry.java 16 * @author Xavier Cho 17 * @version $Revision 1.1 $ $Date: 2005/09/11 05:49:44 $ 18 * @hibernate.class table = "POTRON_TRANS_ENTRY" 19 * @hibernate.cache usage = "nonstrict-read-write" 20 */ 21 public class TranslatedEntry implements Serializable { 22 23 private static final long serialVersionUID = 5411524675311419135L; 24 25 private long id = -1; 26 private Entry entry; 27 private String comment; 28 private boolean fuzzy = false; 29 private Translation translation; 30 private String translatedString; 31 private List<String> pluralStrings; 32 private User translator; 33 private Date modifiedDate; 34 private Lock lock; 35 private Set<EntryLog> entryLogs; 36 37 public TranslatedEntry() { 38 } 39 40 /*** 41 * @param entry 42 */ 43 public TranslatedEntry(ParserEntry entry) { 44 if (entry != null) { 45 this.comment = entry.getComment(); 46 this.fuzzy = entry.isFuzzy(); 47 48 List<String> messages = entry.getMsgStr(); 49 if (messages != null && !messages.isEmpty()) { 50 String message = messages.get(0); 51 52 if (message.length() > 0) { 53 this.translatedString = message; 54 } 55 56 if (messages.size() > 1) { 57 messages.remove(0); 58 this.pluralStrings = messages; 59 } 60 } 61 } 62 } 63 64 /*** 65 * @param entry2 66 */ 67 public TranslatedEntry(Entry entry, Translation trans) { 68 if (entry != null) { 69 this.entry = entry; 70 this.comment = entry.getComment(); 71 } 72 this.translation = trans; 73 } 74 75 /*** 76 * @return Returns the id. 77 * @hibernate.id 78 * column = "trans_entry_id" 79 * length = "20" 80 * unsaved-value = "-1" 81 * generator-class = "native" 82 * @hibernate.generator-param 83 * name = "sequence" 84 * value = "POTRON_SEQ_TENTRY" 85 */ 86 public long getId() { 87 return id; 88 } 89 90 /*** 91 * @return Returns the entry. 92 * @hibernate.many-to-one 93 * class = "org.gnomekr.potron.data.Entry" 94 * column = "entry_id" 95 * not-null = "true" 96 */ 97 public Entry getEntry() { 98 return entry; 99 } 100 101 /*** 102 * @return 103 * @hibernate.property 104 * column = "comment" 105 * update = "true" 106 * not-null = "true" 107 * type = "text" 108 */ 109 public String getComment() { 110 return comment; 111 } 112 113 /*** 114 * @return Returns the fuzzy. 115 * @hibernate.property 116 * column = "fuzzy" 117 * update = "true" 118 * not-null = "true" 119 */ 120 public boolean isFuzzy() { 121 return fuzzy; 122 } 123 124 /*** 125 * @return Returns the translation. 126 * @hibernate.property 127 * column = "translation" 128 * update = "true" 129 * not-null = "false" 130 * type = "text" 131 */ 132 public String getTranslatedString() { 133 return translatedString; 134 } 135 136 /*** 137 * @return Returns the pluralStrings. 138 * @hibernate.collection-key 139 * column = "trans_entry_id" 140 *@hibernate.collection-index 141 * column = "plural_index" 142 * type = "int" 143 * length = "10" 144 *@hibernate.collection-element 145 * column = "plural_str" 146 * type = "text" 147 * @hibernate.list 148 * table = "POTRON_PLURAL_STR" 149 * lazy = "true" 150 * cascade = "all" 151 */ 152 public List<String> getPluralStrings() { 153 return pluralStrings; 154 } 155 156 /*** 157 * @return Returns the translator. 158 * @hibernate.many-to-one 159 * class = "org.gnomekr.potron.data.User" 160 * column = "translator" 161 */ 162 public User getTranslator() { 163 return translator; 164 } 165 166 /*** 167 * @return 168 * @hibernate.many-to-one 169 * class = "org.gnomekr.potron.data.Translation" 170 * column = "trans_id" 171 */ 172 public Translation getTranslation() { 173 return translation; 174 } 175 176 /*** 177 * @return Returns the modifiedDate. 178 * @hibernate.property 179 * column = "modified_date" 180 * update = "true" 181 * not-null = "false" 182 */ 183 public Date getModifiedDate() { 184 return modifiedDate; 185 } 186 187 /*** 188 * @return Returns the entryLogs. 189 * @hibernate.collection-one-to-many 190 * class = "org.gnomekr.potron.data.EntryLog" 191 * @hibernate.collection-key 192 * column = "trans_entry_id" 193 * @hibernate.set 194 * lazy = "true" 195 * inverse = "true" 196 * order-by = "modified_date desc" 197 * cascade = "all-delete-orphan" 198 */ 199 public Set<EntryLog> getEntryLogs() { 200 return entryLogs; 201 } 202 203 /*** 204 * @return Returns the lock. 205 * @hibernate.component 206 * class = "org.gnomekr.potron.data.Lock" 207 */ 208 public Lock getLock() { 209 return lock; 210 } 211 212 /*** 213 * @param comment The comment to set. 214 */ 215 public void setComment(String comment) { 216 this.comment = comment; 217 } 218 219 /*** 220 * @param entry The entry to set. 221 */ 222 public void setEntry(Entry entry) { 223 this.entry = entry; 224 } 225 226 /*** 227 * @param entryLogs The entryLogs to set. 228 */ 229 public void setEntryLogs(Set<EntryLog> entryLogs) { 230 this.entryLogs = entryLogs; 231 } 232 233 /*** 234 * @param fuzzy The fuzzy to set. 235 */ 236 public void setFuzzy(boolean fuzzy) { 237 this.fuzzy = fuzzy; 238 } 239 240 /*** 241 * @param id The id to set. 242 */ 243 public void setId(long id) { 244 this.id = id; 245 } 246 247 /*** 248 * @param lock The lock to set. 249 */ 250 public void setLock(Lock lock) { 251 this.lock = lock; 252 } 253 254 /*** 255 * @param modifiedDate The modifiedDate to set. 256 */ 257 public void setModifiedDate(Date modifiedDate) { 258 this.modifiedDate = modifiedDate; 259 } 260 261 /*** 262 * @param translatedString The translatedString to set. 263 */ 264 public void setTranslatedString(String translatedString) { 265 if (StringUtils.isBlank(translatedString)) { 266 this.translatedString = null; 267 } else { 268 this.translatedString = translatedString; 269 } 270 } 271 272 /*** 273 * @param pluralStrings The pluralStrings to set. 274 */ 275 public void setPluralStrings(List<String> pluralStrings) { 276 this.pluralStrings = pluralStrings; 277 } 278 279 /*** 280 * @param translation 281 */ 282 public void setTranslation(Translation translation) { 283 this.translation = translation; 284 } 285 286 /*** 287 * @param translator The translator to set. 288 */ 289 public void setTranslator(User translator) { 290 this.translator = translator; 291 } 292 293 /*** 294 * @see java.lang.Object#equals(java.lang.Object) 295 */ 296 public boolean equals(final Object object) { 297 if (object instanceof TranslatedEntry) { 298 TranslatedEntry entry = (TranslatedEntry) object; 299 300 EqualsBuilder builder = new EqualsBuilder(); 301 builder.append(id, entry.getId()); 302 builder.append(entry, entry.getEntry()); 303 builder.append(modifiedDate, entry.getModifiedDate()); 304 305 return builder.isEquals(); 306 } 307 308 return false; 309 } 310 311 /*** 312 * @see java.lang.Object#toString() 313 */ 314 public String toString() { 315 ToStringBuilder builder = new ToStringBuilder(this); 316 builder.append("id", id); 317 builder.append("entry", entry); 318 builder.append("translation", translatedString); 319 320 return builder.toString(); 321 } 322 323 /*** 324 * @see java.lang.Object#hashCode() 325 */ 326 public int hashCode() { 327 HashCodeBuilder builder = new HashCodeBuilder(); 328 builder.append(id); 329 builder.append(entry); 330 builder.append(modifiedDate); 331 332 return builder.toHashCode(); 333 } 334 }