From c6957b33e8e8e77519067b61b23a37e5e4da16aa Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Tue, 22 Jan 2013 11:52:20 -0800 Subject: [PATCH] Refactored NameMaps to be a bit cleaner --- .../astrid/actfm/sync/messages/NameMaps.java | 96 +++++++++++-------- 1 file changed, 56 insertions(+), 40 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/NameMaps.java b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/NameMaps.java index 5cb8ba56b..75cbc98c4 100644 --- a/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/NameMaps.java +++ b/astrid/plugin-src/com/todoroo/astrid/actfm/sync/messages/NameMaps.java @@ -53,12 +53,6 @@ public class NameMaps { // -------------------------------- // ---- Column name mappings ------- // -------------------------------- - private static final Map, String> TASK_PROPERTIES_LOCAL_TO_SERVER; - private static final Map> TASK_COLUMN_NAMES_TO_PROPERTIES; - private static final Map TASK_COLUMNS_LOCAL_TO_SERVER; - private static final Map> TASK_PROPERTIES_SERVER_TO_LOCAL; - private static final Set TASK_PROPERTIES_EXCLUDED; - private static void putPropertyToServerName(Property property, String serverName, Map, String> propertyMap, Map> localNameMap, Map serverNameMap, Set excludedFromOutstandingSet, boolean excludedFromOustanding) { @@ -69,6 +63,18 @@ public class NameMaps { excludedFromOutstandingSet.add(property.name); } + private static final Map, String> TASK_PROPERTIES_LOCAL_TO_SERVER; + private static final Map> TASK_COLUMN_NAMES_TO_PROPERTIES; + private static final Map TASK_COLUMNS_LOCAL_TO_SERVER; + private static final Map> TASK_PROPERTIES_SERVER_TO_LOCAL; + private static final Set TASK_PROPERTIES_EXCLUDED; + + + private static void putTaskPropertyToServerName(Property property, String serverName, boolean excludedFromOutstanding) { + putPropertyToServerName(property, serverName, TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, + TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, excludedFromOutstanding); + } + static { // Hardcoded local columns mapped to corresponding server names TASK_PROPERTIES_LOCAL_TO_SERVER = new HashMap, String>(); @@ -76,23 +82,23 @@ public class NameMaps { TASK_COLUMN_NAMES_TO_PROPERTIES = new HashMap>(); TASK_PROPERTIES_EXCLUDED = new HashSet(); - putPropertyToServerName(Task.TITLE, "title", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.IMPORTANCE, "importance", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.DUE_DATE, "due", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.HIDE_UNTIL, "hide_until", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, true); - putPropertyToServerName(Task.CREATION_DATE, "created_at", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.COMPLETION_DATE, "completed_at", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.RECURRENCE, "repeat", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.DELETION_DATE, "deleted_at", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.NOTES, "notes", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.RECURRENCE, "repeat", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.USER_ID, "user_id", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.USER, "user", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, true); - putPropertyToServerName(Task.CREATOR_ID, "creator_id", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, true); - putPropertyToServerName(Task.UUID, "uuid", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, true); - putPropertyToServerName(Task.PUSHED_AT, "pushed_at", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, true); - putPropertyToServerName(Task.IS_PUBLIC, "public", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(Task.IS_READONLY, "read_only", TASK_PROPERTIES_LOCAL_TO_SERVER, TASK_COLUMN_NAMES_TO_PROPERTIES, TASK_COLUMNS_LOCAL_TO_SERVER, TASK_PROPERTIES_EXCLUDED, true); + putTaskPropertyToServerName(Task.TITLE, "title", false); + putTaskPropertyToServerName(Task.IMPORTANCE, "importance", false); + putTaskPropertyToServerName(Task.DUE_DATE, "due", false); + putTaskPropertyToServerName(Task.HIDE_UNTIL, "hide_until", true); + putTaskPropertyToServerName(Task.CREATION_DATE, "created_at", false); + putTaskPropertyToServerName(Task.COMPLETION_DATE, "completed_at", false); + putTaskPropertyToServerName(Task.RECURRENCE, "repeat", false); + putTaskPropertyToServerName(Task.DELETION_DATE, "deleted_at", false); + putTaskPropertyToServerName(Task.NOTES, "notes", false); + putTaskPropertyToServerName(Task.RECURRENCE, "repeat", false); + putTaskPropertyToServerName(Task.USER_ID, "user_id", false); + putTaskPropertyToServerName(Task.USER, "user", true); + putTaskPropertyToServerName(Task.CREATOR_ID, "creator_id", true); + putTaskPropertyToServerName(Task.UUID, "uuid", true); + putTaskPropertyToServerName(Task.PUSHED_AT, "pushed_at", true); + putTaskPropertyToServerName(Task.IS_PUBLIC, "public", false); + putTaskPropertyToServerName(Task.IS_READONLY, "read_only", true); TASK_PROPERTIES_SERVER_TO_LOCAL = AndroidUtilities.reverseMap(TASK_PROPERTIES_LOCAL_TO_SERVER); } @@ -104,6 +110,10 @@ public class NameMaps { private static final Map> TAG_DATA_PROPERTIES_SERVER_TO_LOCAL; private static final Set TAG_PROPERTIES_EXCLUDED; + private static void putTagPropertyToServerName(Property property, String serverName, boolean excludedFromOutstanding) { + putPropertyToServerName(property, serverName, TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, + TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, excludedFromOutstanding); + } static { // Hardcoded local columns mapped to corresponding server names TAG_DATA_PROPERTIES_LOCAL_TO_SERVER = new HashMap, String>(); @@ -111,17 +121,17 @@ public class NameMaps { TAG_DATA_COLUMN_NAMES_TO_PROPERTIES = new HashMap>(); TAG_PROPERTIES_EXCLUDED = new HashSet(); - putPropertyToServerName(TagData.USER_ID, "user_id", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(TagData.NAME, "name", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(TagData.PICTURE, "picture_id", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, false); //TODO: NOT CORRECT - putPropertyToServerName(TagData.MEMBERS, "members", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, false); //TODO: NOT CORRECT - putPropertyToServerName(TagData.CREATION_DATE, "created_at", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(TagData.DELETION_DATE, "deleted_at", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, false); - putPropertyToServerName(TagData.UUID, "uuid", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, true); - putPropertyToServerName(TagData.TAG_ORDERING, "tag_ordering", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, false); //TODO: NOT CORRECT - putPropertyToServerName(TagData.PUSHED_AT, "pushed_at", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, true); - putPropertyToServerName(TagData.TASK_COUNT, "task_count", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, true); - putPropertyToServerName(TagData.TAG_DESCRIPTION, "description", TAG_DATA_PROPERTIES_LOCAL_TO_SERVER, TAG_DATA_COLUMN_NAMES_TO_PROPERTIES, TAG_DATA_COLUMNS_LOCAL_TO_SERVER, TAG_PROPERTIES_EXCLUDED, false); + putTagPropertyToServerName(TagData.USER_ID, "user_id", false); + putTagPropertyToServerName(TagData.NAME, "name", false); + putTagPropertyToServerName(TagData.PICTURE, "picture_id", false); //TODO: NOT CORRECT + putTagPropertyToServerName(TagData.MEMBERS, "members", false); //TODO: NOT CORRECT + putTagPropertyToServerName(TagData.CREATION_DATE, "created_at", false); + putTagPropertyToServerName(TagData.DELETION_DATE, "deleted_at", false); + putTagPropertyToServerName(TagData.UUID, "uuid", true); + putTagPropertyToServerName(TagData.TAG_ORDERING, "tag_ordering", false); //TODO: NOT CORRECT + putTagPropertyToServerName(TagData.PUSHED_AT, "pushed_at", true); + putTagPropertyToServerName(TagData.TASK_COUNT, "task_count", true); + putTagPropertyToServerName(TagData.TAG_DESCRIPTION, "description", false); // Reverse the mapping to construct the server to local map TAG_DATA_PROPERTIES_SERVER_TO_LOCAL = AndroidUtilities.reverseMap(TAG_DATA_PROPERTIES_LOCAL_TO_SERVER); @@ -132,23 +142,29 @@ public class NameMaps { private static final Map USER_COLUMNS_LOCAL_TO_SERVER; private static final Map> USER_PROPERTIES_SERVER_TO_LOCAL; + private static void putUserPropertyToServerName(Property property, String serverName, boolean excludedFromOutstanding) { + putPropertyToServerName(property, serverName, USER_PROPERTIES_LOCAL_TO_SERVER, USER_COLUMN_NAMES_TO_PROPERTIES, + USER_COLUMNS_LOCAL_TO_SERVER, null, excludedFromOutstanding); + } + static { USER_PROPERTIES_LOCAL_TO_SERVER = new HashMap, String>(); USER_COLUMN_NAMES_TO_PROPERTIES = new HashMap>(); USER_COLUMNS_LOCAL_TO_SERVER = new HashMap(); - putPropertyToServerName(User.UUID, "uuid", USER_PROPERTIES_LOCAL_TO_SERVER, USER_COLUMN_NAMES_TO_PROPERTIES, USER_COLUMNS_LOCAL_TO_SERVER, null, true); - putPropertyToServerName(User.EMAIL, "email", USER_PROPERTIES_LOCAL_TO_SERVER, USER_COLUMN_NAMES_TO_PROPERTIES, USER_COLUMNS_LOCAL_TO_SERVER, null, true); - putPropertyToServerName(User.PICTURE, "picture", USER_PROPERTIES_LOCAL_TO_SERVER, USER_COLUMN_NAMES_TO_PROPERTIES, USER_COLUMNS_LOCAL_TO_SERVER, null, true); - putPropertyToServerName(User.PUSHED_AT, "pushed_at", USER_PROPERTIES_LOCAL_TO_SERVER, USER_COLUMN_NAMES_TO_PROPERTIES, USER_COLUMNS_LOCAL_TO_SERVER, null, true); - putPropertyToServerName(User.FIRST_NAME, "first_name", USER_PROPERTIES_LOCAL_TO_SERVER, USER_COLUMN_NAMES_TO_PROPERTIES, USER_COLUMNS_LOCAL_TO_SERVER, null, true); - putPropertyToServerName(User.LAST_NAME, "last_name", USER_PROPERTIES_LOCAL_TO_SERVER, USER_COLUMN_NAMES_TO_PROPERTIES, USER_COLUMNS_LOCAL_TO_SERVER, null, true); + putUserPropertyToServerName(User.UUID, "uuid", true); + putUserPropertyToServerName(User.EMAIL, "email", true); + putUserPropertyToServerName(User.PICTURE, "picture", true); + putUserPropertyToServerName(User.PUSHED_AT, "pushed_at", true); + putUserPropertyToServerName(User.FIRST_NAME, "first_name", true); + putUserPropertyToServerName(User.LAST_NAME, "last_name", true); // Reverse the mapping to construct the server to local map USER_PROPERTIES_SERVER_TO_LOCAL = AndroidUtilities.reverseMap(USER_PROPERTIES_LOCAL_TO_SERVER); } + private static B mapColumnName(String table, String col, Map taskMap, Map tagMap, Map userMap) { Map map = null; if (TABLE_ID_TASKS.equals(table))