package ua.kpi.ecampus.database.table; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.support.annotation.NonNull; import ua.kpi.ecampus.database.SqlHelper; import ua.kpi.ecampus.model.pojo.Token; import java.util.ArrayList; import java.util.List; /** * Represents Token table entity in SQliteDB. * * Created by Administrator on 09.02.2016. */ public class TokenTable { public static final Uri URI = SqlHelper.BASE_CONTENT_URI.buildUpon().appendPath(Requests.TABLE_NAME).build(); public static void save(Context context, @NonNull Token token) { context.getContentResolver().insert(URI, toContentValues(token)); } public static void save(Context context, @NonNull List<Token> tokens) { ContentValues[] values = new ContentValues[tokens.size()]; for (int i = 0; i < tokens.size(); i++) { values[i] = toContentValues(tokens.get(i)); } context.getContentResolver().bulkInsert(URI, values); } @NonNull public static ContentValues toContentValues(@NonNull Token token) { ContentValues values = new ContentValues(); values.put(Columns.ACCESS_TOKEN, token.getAccessToken()); // values.put(Columns.TOKEN_TYPE, token.getTokenType()); // values.put(Columns.EXPIRES_IN, token.getExpiresIn()); return values; } @NonNull public static Token fromCursor(@NonNull Cursor cursor) { String token = cursor.getString(cursor.getColumnIndex(Columns.ACCESS_TOKEN)); return new Token(token); } @NonNull public static List<Token> listFromCursor(@NonNull Cursor cursor) { List<Token> tokens = new ArrayList<>(); if (!cursor.moveToFirst()) { return tokens; } try { do { tokens.add(fromCursor(cursor)); } while (cursor.moveToNext()); return tokens; } finally { cursor.close(); } } public static void clear(Context context) { context.getContentResolver().delete(URI, null, null); } public interface Columns { String ACCESS_TOKEN = "token"; } public interface Requests { String TABLE_NAME = TokenTable.class.getSimpleName(); String CREATION_REQUEST = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (" + Columns.ACCESS_TOKEN + " VARCHAR);"; String DROP_REQUEST = "DROP TABLE IF EXISTS " + TABLE_NAME; } }