package org.liberty.android.fantastischmemo.entity;
import com.google.common.base.Objects;
import com.j256.ormlite.field.DataType;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import org.liberty.android.fantastischmemo.dao.CardDaoImpl;
import java.util.Date;
@DatabaseTable(tableName = "cards", daoClass = CardDaoImpl.class)
public class Card implements VersionableDomainObject {
@DatabaseField(generatedId = true)
private Integer id;
/* The actual card ordinal in a deck */
@DatabaseField(index = true)
private Integer ordinal;
@DatabaseField(defaultValue = "", width = 8192)
private String question = "";
@DatabaseField(defaultValue = "", width = 8192)
private String answer = "";
@DatabaseField(defaultValue = "", width = 8192)
private String note = "";
/* Category = 1 should be uncategorized */
@DatabaseField(foreign = true, index = true)
private Category category;
@DatabaseField(foreign = true)
private LearningData learningData;
@DatabaseField(defaultValue = "0")
private Integer cardType = 0;
@DatabaseField(format="yyyy-MM-dd HH:mm:ss.SSSSSS", dataType=DataType.DATE_STRING)
private Date creationDate;
@DatabaseField(format="yyyy-MM-dd HH:mm:ss.SSSSSS", dataType=DataType.DATE_STRING)
private Date updateDate;
public Card() {}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getOrdinal() {
return ordinal;
}
public void setOrdinal(Integer ordinal) {
this.ordinal = ordinal;
}
public String getQuestion() {
if (question == null) {
return "";
}
return question;
}
public void setQuestion(String question) {
if (question == null) {
this.question = "";
} else{
this.question = question;
}
}
public String getAnswer() {
if (answer == null ) {
return "";
}
return answer;
}
public void setAnswer(String answer) {
if (answer == null) {
this.answer = "";
} else {
this.answer = answer;
}
}
public String getNote() {
if (note == null) {
return "";
} else {
return note;
}
}
public void setNote(String note) {
if (note == null) {
this.note = "";
} else {
this.note = note;
}
}
public Date getCreationDate() {
return creationDate;
}
public void setCreationDate(Date creationDate) {
this.creationDate = creationDate;
}
public Date getUpdateDate() {
return updateDate;
}
public Category getCategory() {
return category;
}
public Integer getCardType() {
return cardType;
}
public void setCardType(Integer cardType) {
this.cardType = cardType;
}
public void setCategory(Category category) {
this.category = category;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public LearningData getLearningData() {
return learningData;
}
public void setLearningData(LearningData learningData) {
this.learningData = learningData;
}
@Override
public String toString() {
return Objects.toStringHelper(this)
.add("id", id)
.add("question", question)
.add("answer", answer)
.toString();
}
@Override
public boolean equals(Object c) {
Card card2 = (Card)c;
return this.getId().equals(card2.getId());
}
@Override
public int hashCode() {
return getId();
}
}