package com.code44.finance.data.model;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.Parcel;
import com.code44.finance.common.utils.Preconditions;
import com.code44.finance.data.db.Column;
import com.code44.finance.data.db.Tables;
public class Tag extends Model {
public static final Creator<Tag> CREATOR = new Creator<Tag>() {
public Tag createFromParcel(Parcel in) {
return new Tag(in);
}
public Tag[] newArray(int size) {
return new Tag[size];
}
};
private String title;
public Tag() {
super();
setTitle(null);
}
public Tag(Parcel parcel) {
super(parcel);
setTitle(parcel.readString());
}
public static Tag from(Cursor cursor) {
final Tag tag = new Tag();
if (cursor.getCount() > 0) {
tag.updateFrom(cursor, null);
}
return tag;
}
@Override protected Column getLocalIdColumn() {
return Tables.Tags.LOCAL_ID;
}
@Override protected Column getIdColumn() {
return Tables.Tags.ID;
}
@Override protected Column getModelStateColumn() {
return Tables.Tags.MODEL_STATE;
}
@Override protected Column getSyncStateColumn() {
return Tables.Tags.SYNC_STATE;
}
@Override public void validate() throws IllegalStateException {
super.validate();
Preconditions.notEmpty(title, "Title cannot be empty.");
}
@Override public ContentValues asValues() {
final ContentValues values = super.asValues();
values.put(Tables.Tags.TITLE.getName(), title);
return values;
}
@Override public void writeToParcel(Parcel parcel, int flags) {
super.writeToParcel(parcel, flags);
parcel.writeString(getTitle());
}
@Override public void updateFrom(Cursor cursor, String columnPrefixTable) {
super.updateFrom(cursor, columnPrefixTable);
int index;
// Title
index = cursor.getColumnIndex(Tables.Tags.TITLE.getName(columnPrefixTable));
if (index >= 0) {
setTitle(cursor.getString(index));
}
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}