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; } }