From 2e0fef2e9dfe98d8a3a6145c7a2f68236b63dfd6 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 22 Jan 2013 11:02:34 -0800 Subject: [PATCH] Added a fetch by uuid method to remote model daos --- .../com/todoroo/andlib/data/DatabaseDao.java | 4 +++ .../todoroo/astrid/dao/RemoteModelDao.java | 27 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/api/src/com/todoroo/andlib/data/DatabaseDao.java b/api/src/com/todoroo/andlib/data/DatabaseDao.java index b9c5f64f5..0ab8a6cf2 100644 --- a/api/src/com/todoroo/andlib/data/DatabaseDao.java +++ b/api/src/com/todoroo/andlib/data/DatabaseDao.java @@ -150,6 +150,10 @@ public class DatabaseDao { */ public TYPE fetch(long id, Property... properties) { TodorooCursor cursor = fetchItem(id, properties); + return returnFetchResult(cursor); + } + + protected TYPE returnFetchResult(TodorooCursor cursor) { try { if (cursor.getCount() == 0) return null; diff --git a/astrid/src/com/todoroo/astrid/dao/RemoteModelDao.java b/astrid/src/com/todoroo/astrid/dao/RemoteModelDao.java index ef7d9992a..dca9937f5 100644 --- a/astrid/src/com/todoroo/astrid/dao/RemoteModelDao.java +++ b/astrid/src/com/todoroo/astrid/dao/RemoteModelDao.java @@ -1,6 +1,9 @@ package com.todoroo.astrid.dao; import com.todoroo.andlib.data.DatabaseDao; +import com.todoroo.andlib.data.Property; +import com.todoroo.andlib.data.TodorooCursor; +import com.todoroo.andlib.sql.Query; import com.todoroo.astrid.data.RemoteModel; import com.todoroo.astrid.helper.UUIDHelper; @@ -27,5 +30,29 @@ public class RemoteModelDao extends DatabaseDao... properties) { + TodorooCursor cursor = fetchItem(uuid, properties); + return returnFetchResult(cursor); + } + + /** + * Returns cursor to object corresponding to the given identifier + * + * @param database + * @param table + * name of table + * @param properties + * properties to read + * @param id + * id of item + * @return + */ + protected TodorooCursor fetchItem(String uuid, Property... properties) { + TodorooCursor cursor = query( + Query.select(properties).where(RemoteModel.UUID_PROPERTY.eq(uuid))); + cursor.moveToFirst(); + return new TodorooCursor(cursor, properties); + } + }