package com.quickblox.q_municate_db.models; import com.j256.ormlite.dao.ForeignCollection; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.field.ForeignCollectionField; import com.j256.ormlite.table.DatabaseTable; import java.io.Serializable; import static com.quickblox.q_municate_db.models.DialogOccupant.Column.ID; import static com.quickblox.q_municate_db.models.DialogOccupant.Column.TABLE_NAME; import static com.quickblox.q_municate_db.models.DialogOccupant.Column.STATUS; @DatabaseTable(tableName = TABLE_NAME) public class DialogOccupant implements Serializable { @DatabaseField( generatedId = true, unique = true, columnName = ID) private long dialogOccupantId; @DatabaseField( foreign = true, foreignAutoRefresh = true, canBeNull = false, uniqueCombo = true, columnDefinition = "INTEGER REFERENCES " + Dialog.Column.TABLE_NAME + "(" + Dialog.Column.ID + ") ON DELETE CASCADE", columnName = Dialog.Column.ID) private Dialog dialog; @DatabaseField( foreign = true, foreignAutoRefresh = true, canBeNull = false, uniqueCombo = true, columnName = User.Column.ID) private User user; @ForeignCollectionField( eager = true) private ForeignCollection<Message> messageCollection; @DatabaseField( canBeNull = false, columnName = STATUS) private Status status; public DialogOccupant() { status = Status.ACTUAL; } public DialogOccupant(Dialog dialog, User user, ForeignCollection<Message> messageCollection) { this.dialog = dialog; this.user = user; this.messageCollection = messageCollection; } public ForeignCollection<Message> getMessages() { return messageCollection; } public void setMessages(ForeignCollection<Message> message) { this.messageCollection = message; } public Dialog getDialog() { return dialog; } public void setDialog(Dialog dialog) { this.dialog = dialog; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } public ForeignCollection<Message> getMessageCollection() { return messageCollection; } public void setMessageCollection(ForeignCollection<Message> messageCollection) { this.messageCollection = messageCollection; } public long getDialogOccupantId() { return dialogOccupantId; } public void setDialogOccupantId(long dialogOccupantId) { this.dialogOccupantId = dialogOccupantId; } public Status getStatus() { return status; } public void setStatus(Status status) { this.status = status; } @Override public boolean equals(Object object) { if (this == object) { return true; } if (!(object instanceof DialogOccupant)) { return false; } DialogOccupant dialogOccupant = (DialogOccupant) object; return dialogOccupantId == dialogOccupant.getDialogOccupantId(); } @Override public String toString() { return "DialogOccupant [id='" + dialogOccupantId + "', dialog='" + dialog + "', user='" + user + "']"; } public enum Status { ACTUAL(0), DELETED(1); private int code; Status(int code) { this.code = code; } public static Status parseByCode(int code) { Status[] valuesArray = Status.values(); Status result = null; for (Status value : valuesArray) { if (value.getCode() == code) { result = value; break; } } return result; } public int getCode() { return code; } } public interface Column { String TABLE_NAME = "dialog_occupant"; String ID = "dialog_occupant_id"; String STATUS = "dialog_occupant_status"; } }