From c2d1b0276190d046abc60ed3c13b8e96af6e1b42 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Wed, 25 Jun 2014 08:12:07 -0500 Subject: [PATCH] Remove array conversions from in criterion --- api/src/main/java/com/todoroo/andlib/sql/Field.java | 2 +- .../com/todoroo/astrid/gtasks/GtasksMetadataService.java | 3 +-- .../todoroo/astrid/gtasks/sync/GtasksSyncV2Provider.java | 3 +-- .../java/com/todoroo/astrid/subtasks/SubtasksHelper.java | 9 +++++---- .../com/todoroo/astrid/utility/SyncMetadataService.java | 5 +---- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/api/src/main/java/com/todoroo/andlib/sql/Field.java b/api/src/main/java/com/todoroo/andlib/sql/Field.java index d74330cf8..708b3a005 100644 --- a/api/src/main/java/com/todoroo/andlib/sql/Field.java +++ b/api/src/main/java/com/todoroo/andlib/sql/Field.java @@ -78,7 +78,7 @@ public class Field extends DBObject { return UnaryCriterion.like(this, value, escape); } - public Criterion in(final T[] value) { + public Criterion in(final Iterable value) { final Field field = this; return new Criterion(Operator.in) { diff --git a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksMetadataService.java b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksMetadataService.java index 257c94378..8c6798b3f 100644 --- a/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksMetadataService.java +++ b/astrid/src/main/java/com/todoroo/astrid/gtasks/GtasksMetadataService.java @@ -126,8 +126,7 @@ public final class GtasksMetadataService extends SyncMetadataService getIdList(String serializedTree) { ArrayList ids = new ArrayList<>(); String[] digitsOnly = serializedTree.split("[\\[\\],\\s]"); // Split on [ ] , or whitespace chars for (String idString : digitsOnly) { @@ -115,7 +116,7 @@ public class SubtasksHelper { log.error(e.getMessage(), e); } } - return ids.toArray(new Long[ids.size()]); + return ids; } public static String[] getStringIdArray(String serializedTree) { @@ -133,7 +134,7 @@ public class SubtasksHelper { * Takes a subtasks string containing local ids and remaps it to one containing UUIDs */ public static String convertTreeToRemoteIds(TaskService taskService, String localTree) { - Long[] localIds = getIdArray(localTree); + List localIds = getIdList(localTree); HashMap idMap = getIdMap(taskService, localIds, Task.ID, Task.UUID); idMap.put(-1L, "-1"); //$NON-NLS-1$ @@ -178,7 +179,7 @@ public class SubtasksHelper { }); } - private static HashMap getIdMap(TaskService taskService, A[] keys, Property keyProperty, Property valueProperty) { + private static HashMap getIdMap(TaskService taskService, Iterable keys, Property keyProperty, Property valueProperty) { HashMap map = new HashMap<>(); TodorooCursor tasks = taskService.query(Query.select(keyProperty, valueProperty).where(keyProperty.in(keys))); try { diff --git a/astrid/src/main/java/com/todoroo/astrid/utility/SyncMetadataService.java b/astrid/src/main/java/com/todoroo/astrid/utility/SyncMetadataService.java index 8bda33a41..29df8809c 100644 --- a/astrid/src/main/java/com/todoroo/astrid/utility/SyncMetadataService.java +++ b/astrid/src/main/java/com/todoroo/astrid/utility/SyncMetadataService.java @@ -105,10 +105,7 @@ abstract public class SyncMetadataService { try { ArrayList matchingRows = new ArrayList<>(); joinRows(tasks, metadata, matchingRows, both); - - return - taskDao.query(Query.select(properties).where(Task.ID.in( - matchingRows.toArray(new Long[matchingRows.size()])))); + return taskDao.query(Query.select(properties).where(Task.ID.in(matchingRows))); } finally { metadata.close(); }