summaryrefslogtreecommitdiff
path: root/src/com/p4square/grow/provider
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/p4square/grow/provider')
-rw-r--r--src/com/p4square/grow/provider/DelegateCollectionProvider.java4
-rw-r--r--src/com/p4square/grow/provider/JsonEncodedProvider.java8
2 files changed, 10 insertions, 2 deletions
diff --git a/src/com/p4square/grow/provider/DelegateCollectionProvider.java b/src/com/p4square/grow/provider/DelegateCollectionProvider.java
index e17af87..cf697ba 100644
--- a/src/com/p4square/grow/provider/DelegateCollectionProvider.java
+++ b/src/com/p4square/grow/provider/DelegateCollectionProvider.java
@@ -5,7 +5,7 @@
package com.p4square.grow.provider;
import java.io.IOException;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Map;
/**
@@ -31,7 +31,7 @@ public abstract class DelegateCollectionProvider<C, DC, K, DK, V>
public Map<K, V> query(C collection, int limit) throws IOException {
Map<DK, V> delegateResult = mProvider.query(makeCollectionKey(collection), limit);
- Map<K, V> result = new HashMap<>();
+ Map<K, V> result = new LinkedHashMap<>();
for (Map.Entry<DK, V> entry : delegateResult.entrySet()) {
result.put(unmakeKey(entry.getKey()), entry.getValue());
}
diff --git a/src/com/p4square/grow/provider/JsonEncodedProvider.java b/src/com/p4square/grow/provider/JsonEncodedProvider.java
index 7651443..500f761 100644
--- a/src/com/p4square/grow/provider/JsonEncodedProvider.java
+++ b/src/com/p4square/grow/provider/JsonEncodedProvider.java
@@ -46,6 +46,10 @@ public abstract class JsonEncodedProvider<V> {
* @throws IOException if the object cannot be encoded.
*/
protected String encode(V obj) throws IOException {
+ if (mClazz == String.class) {
+ return (String) obj;
+ }
+
return MAPPER.writeValueAsString(obj);
}
@@ -61,6 +65,10 @@ public abstract class JsonEncodedProvider<V> {
return null;
}
+ if (mClazz == String.class) {
+ return (V) blob;
+ }
+
V obj;
if (mClazz != null) {
obj = MAPPER.readValue(blob, mClazz);