// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.olio.olios.model.strategies; import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import com.olio.olios.model.OlioDatabaseHelper; import com.olio.olios.model.OlioDatabaseUtils; import com.olio.olios.model.record.DatabaseRecord; import com.olio.olios.model.record.DatabaseRecordMixins; import java.util.List; // Referenced classes of package com.olio.olios.model.strategies: // CacheStrategy, CacheStrategyUtils public class SingleRowCacheStrategy implements CacheStrategy { private DatabaseRecord mCachedDatabaseRecord; private ContentResolver mContentResolver; private OlioDatabaseHelper mDatabaseHelper; private com.olio.olios.model.record.DatabaseRecord.DatabaseRecordFactory mDatabaseRecordFactory; public SingleRowCacheStrategy(ContentResolver contentresolver, OlioDatabaseHelper oliodatabasehelper, com.olio.olios.model.record.DatabaseRecord.DatabaseRecordFactory databaserecordfactory) { mContentResolver = contentresolver; mDatabaseHelper = oliodatabasehelper; mDatabaseRecordFactory = databaserecordfactory; } private DatabaseRecord databaseRecordFromCursor(Cursor cursor) { if (cursor != null && cursor.getCount() > 0) { cursor = DatabaseRecordMixins.recordsFromCursor(cursor, mDatabaseRecordFactory); if (cursor != null && cursor.size() > 0) { return (DatabaseRecord)cursor.get(0); } } return null; } public void clearCache() { mCachedDatabaseRecord = null; } public int delete(Uri uri, String s, String as[]) { CacheStrategyUtils.assertNullParameters(uri, s, as, getClass().getSimpleName()); mCachedDatabaseRecord = null; return OlioDatabaseUtils.delete(mContentResolver, uri, s, as, mDatabaseHelper); } public Uri insert(Uri uri, ContentValues contentvalues) { Cursor cursor = OlioDatabaseUtils.cursorForContentValues(mDatabaseRecordFactory.getRecordInstance().columnProjection(), new ContentValues[] { contentvalues }); mCachedDatabaseRecord = databaseRecordFromCursor(cursor); cursor.close(); return OlioDatabaseUtils.insert(mContentResolver, uri, contentvalues, mDatabaseHelper); } public Cursor query(Uri uri, String as[], String s, String as1[], String s1) { CacheStrategyUtils.assertNullParameters(uri, s, as1, getClass().getSimpleName()); if (mCachedDatabaseRecord != null) { uri = DatabaseRecordMixins.valuesForRecord(mCachedDatabaseRecord); uri = OlioDatabaseUtils.cursorForContentValues(mDatabaseRecordFactory.getRecordInstance().columnProjection(), new ContentValues[] { uri }); } else { as = OlioDatabaseUtils.query(mContentResolver, uri, as, s, as1, mDatabaseHelper); uri = as; if (as != null) { uri = as; if (as.getCount() > 0) { mCachedDatabaseRecord = databaseRecordFromCursor(as); as.moveToPosition(-1); return as; } } } return uri; } public int update(Uri uri, ContentValues contentvalues, String s, String as[]) { CacheStrategyUtils.assertNullParameters(uri, s, as, getClass().getSimpleName()); Cursor cursor = OlioDatabaseUtils.cursorForContentValues(mDatabaseRecordFactory.getRecordInstance().columnProjection(), new ContentValues[] { contentvalues }); mCachedDatabaseRecord = databaseRecordFromCursor(cursor); cursor.close(); return OlioDatabaseUtils.update(mContentResolver, uri, contentvalues, s, as, mDatabaseHelper); } }