package com.vaguehope.onosendai.storage; import android.database.Cursor; public class TweetCursorReader { private int colUid = -1; private int colSid = -1; private int colTime = -1; private int colUsername = -1; private int colFullname = -1; private int colUserSubtitle = -1; private int colFullSubtitle = -1; private int colBody = -1; private int colAvatar = -1; private int colInlineMedia = -1; private int colQuotedSid = -1; private int colFiltered = -1; public long readUid (final Cursor c) { if (c == null) return -1; if (this.colUid < 0) this.colUid = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_ID); return c.getLong(this.colUid); } public String readSid (final Cursor c) { if (c == null) return null; if (this.colSid < 0) this.colSid = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_SID); return c.getString(this.colSid); } public long readTime (final Cursor c) { if (c == null) return -1; if (this.colTime < 0) this.colTime = c.getColumnIndex(DbAdapter.TBL_TW_TIME); return c.getLong(this.colTime); } public String readUsername (final Cursor c) { if (c == null) return null; if (this.colUsername < 0) this.colUsername = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_USERNAME); return c.getString(this.colUsername); } public String readUserSubtitle (final Cursor c) { if (c == null) return null; if (this.colUserSubtitle < 0) this.colUserSubtitle = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_USERSUBTITLE); return c.getString(this.colUserSubtitle); } public String readUsernameWithSubtitle (final Cursor c) { if (c == null) return null; final String username = readUsername(c); if (username == null) return null; final String userSubtitle = readUserSubtitle(c); if (userSubtitle == null) return username; return String.format("%s\n%s", username, userSubtitle); } public String readFullname (final Cursor c) { if (c == null) return null; if (this.colFullname < 0) this.colFullname = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_FULLNAME); return c.getString(this.colFullname); } public String readFullSubtitle (final Cursor c) { if (c == null) return null; if (this.colFullSubtitle < 0) this.colFullSubtitle = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_FULLSUBTITLE); return c.getString(this.colFullSubtitle); } public String readFullnameWithSubtitle (final Cursor c) { if (c == null) return null; final String fullname = readFullname(c); if (fullname == null) return null; final String fullSubtitle = readFullSubtitle(c); if (fullSubtitle == null) return fullname; return String.format("%s\n%s", fullname, fullSubtitle); } public String readBody (final Cursor c) { if (c == null) return null; if (this.colBody < 0) this.colBody = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_BODY); return c.getString(this.colBody); } public String readAvatar (final Cursor c) { if (c == null) return null; if (this.colAvatar < 0) this.colAvatar = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_AVATAR); return c.getString(this.colAvatar); } public String readInlineMedia (final Cursor c) { if (c == null) return null; if (this.colInlineMedia < 0) this.colInlineMedia = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_INLINEMEDIA); return c.getString(this.colInlineMedia); } public String readQuotedSid (final Cursor c) { if (c == null) return null; if (this.colQuotedSid < 0) this.colQuotedSid = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_QUOTED_SID); return c.getString(this.colQuotedSid); } public boolean readFiltered (final Cursor c) { if (c == null) return false; if (this.colFiltered < 0) this.colFiltered = c.getColumnIndexOrThrow(DbAdapter.TBL_TW_FILTERED); return !c.isNull(this.colFiltered); } }