package polly.rx.entities; import java.util.Date; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.SequenceGenerator; import javax.persistence.Temporal; import javax.persistence.TemporalType; import de.skuzzle.polly.tools.Check; import de.skuzzle.polly.tools.Equatable; import polly.rx.core.orion.model.OrionChatEntry; import polly.rx.core.orion.model.OrionObjectUtil; @Entity @NamedQueries({ @NamedQuery( name = DBOrionChatEntry.YOUNGEST_ENTRIES, query = "SELECT oce FROM DBOrionChatEntry oce ORDER BY oce.id DESC" ) }) public class DBOrionChatEntry implements OrionChatEntry { public final static String YOUNGEST_ENTRIES_BY_DATE = "OCE_YOUNGEST_BY_DATE"; //$NON-NLS-1$ public final static String YOUNGEST_ENTRIES = "OCE_YOUNGEST_ENTRIES"; //$NON-NLS-1$ private final static String GENERATOR = "CHAT_ENTRY_GEN"; //$NON-NLS-1$ @Id @SequenceGenerator(name = GENERATOR) @GeneratedValue(strategy = GenerationType.TABLE, generator = GENERATOR) private int id; private String sender; private String message; @Temporal(TemporalType.TIMESTAMP) private Date date; public DBOrionChatEntry() { } public DBOrionChatEntry(OrionChatEntry oce) { Check.objects(oce.getSender(), oce.getMessage(), oce.getDate()).notNull(); this.sender = oce.getSender(); this.message = oce.getMessage(); this.date = oce.getDate(); } public int getId() { return this.id; } @Override public Class<?> getEquivalenceClass() { return OrionChatEntry.class; } @Override public boolean actualEquals(Equatable o) { return OrionObjectUtil.chatEntriesEqual(this, (OrionChatEntry) o); } @Override public int hashCode() { return OrionObjectUtil.chatEntryHashCode(this); } @Override public String toString() { return OrionObjectUtil.chatEntryString(this); } @Override public Date getDate() { return this.date; } @Override public String getSender() { return this.sender; } @Override public String getMessage() { return this.message; } }