diff --git a/.gitignore b/.gitignore index 6425211..e586271 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ target tmp .clover atlassian-ide-plugin.xml +.idea \ No newline at end of file diff --git a/pom.xml b/pom.xml index 4eb7c6c..b555261 100644 --- a/pom.xml +++ b/pom.xml @@ -107,6 +107,16 @@ maven-source-plugin 2.1.2 + + + attach-sources + verify + + jar-no-fork + + + + diff --git a/src/main/java/com/codeslap/persistence/DatabaseSpec.java b/src/main/java/com/codeslap/persistence/DatabaseSpec.java index f6bdd4b..fda88c8 100644 --- a/src/main/java/com/codeslap/persistence/DatabaseSpec.java +++ b/src/main/java/com/codeslap/persistence/DatabaseSpec.java @@ -442,4 +442,13 @@ public String toString() { ", mAfterImporters=" + mAfterImporters + '}'; } + + /** + * Returns the List of classes that have been added to the DatabaseSpec, useful for + * operations like Database truncate. + * @return List + */ + public List> getMatches(){ + return mSqliteList; + } } diff --git a/src/main/java/com/codeslap/persistence/SqliteAdapterImpl.java b/src/main/java/com/codeslap/persistence/SqliteAdapterImpl.java index 7c92e5f..6559dc5 100644 --- a/src/main/java/com/codeslap/persistence/SqliteAdapterImpl.java +++ b/src/main/java/com/codeslap/persistence/SqliteAdapterImpl.java @@ -24,10 +24,9 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; /** * This is a persistence adapter that uses sqlite database as persistence engine. @@ -40,6 +39,7 @@ public class SqliteAdapterImpl implements SqlAdapter { // this expression is used when inserting rows in the many-to-many relation tables. It will basically // prevent a row from being inserted when the values already exist. private static final String HACK_INSERT_FORMAT = "CASE WHEN (SELECT COUNT(*) FROM %s WHERE %s = %s AND %s = %s) == 0 THEN %s ELSE NULL END"; + private static final DateFormat dateFormat = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH); private static final String TAG = "sqliteImpl"; private final DatabaseSpec mDatabaseSpec; @@ -739,6 +739,8 @@ private Object getValueFromCursor(Class type, String name, Cursor query) { value = query.getString(columnIndex); } else if (type == byte[].class || type == Byte[].class) { value = query.getBlob(columnIndex); + } else if (type == Date.class){ + value = dateFormat.parse(query.getString(columnIndex)); } return value; } catch (Exception e) {