diff options
Diffstat (limited to 'src/com/p4square/grow/provider')
14 files changed, 0 insertions, 545 deletions
diff --git a/src/com/p4square/grow/provider/CollectionProvider.java b/src/com/p4square/grow/provider/CollectionProvider.java deleted file mode 100644 index e4e9040..0000000 --- a/src/com/p4square/grow/provider/CollectionProvider.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import java.io.IOException; -import java.util.Map; - -/** - * ListProvider is the logical extension of Provider for dealing with lists of - * items. - * - * @param C The type of the collection key. - * @param K The type of the item key. - * @param V The type of the value. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public interface CollectionProvider<C, K, V> { - /** - * Retrieve a specific object from the collection. - * - * @param collection The collection key. - * @param key The key for the object in the collection. - * @return The object or null if not found. - */ - V get(C collection, K key) throws IOException; - - /** - * Retrieve a collection. - * - * The returned map will never be null. - * - * @param collection The collection key. - * @return A Map of keys to values. - */ - Map<K, V> query(C collection) throws IOException; - - /** - * Retrieve a portion of a collection. - * - * The returned map will never be null. - * - * @param collection The collection key. - * @param limit Max number of items to return. - * @return A Map of keys to values. - */ - Map<K, V> query(C collection, int limit) throws IOException; - - /** - * Persist the object with the given key. - * - * @param collection The collection key. - * @param key The key for the object in the collection. - * @param obj The object to persist. - */ - void put(C collection, K key, V obj) throws IOException; -} diff --git a/src/com/p4square/grow/provider/DelegateCollectionProvider.java b/src/com/p4square/grow/provider/DelegateCollectionProvider.java deleted file mode 100644 index cf697ba..0000000 --- a/src/com/p4square/grow/provider/DelegateCollectionProvider.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2014 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import java.io.IOException; -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public abstract class DelegateCollectionProvider<C, DC, K, DK, V> - implements CollectionProvider<C, K, V> { - - private CollectionProvider<DC, DK, V> mProvider; - - public DelegateCollectionProvider(final CollectionProvider<DC, DK, V> provider) { - mProvider = provider; - } - - public V get(C collection, K key) throws IOException { - return mProvider.get(makeCollectionKey(collection), makeKey(key)); - } - - public Map<K, V> query(C collection) throws IOException { - return query(collection, -1); - } - - 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 LinkedHashMap<>(); - for (Map.Entry<DK, V> entry : delegateResult.entrySet()) { - result.put(unmakeKey(entry.getKey()), entry.getValue()); - } - - return result; - } - - public void put(C collection, K key, V obj) throws IOException { - mProvider.put(makeCollectionKey(collection), makeKey(key), obj); - } - - /** - * Make a collection key for the delegated provider. - * - * @param input The pre-transform key. - * @return the post-transform key. - */ - protected abstract DC makeCollectionKey(final C input); - - /** - * Make a key for the delegated provider. - * - * @param input The pre-transform key. - * @return the post-transform key. - */ - protected abstract DK makeKey(final K input); - - /** - * Transform a key for the delegated provider to an input key. - * - * @param input The post-transform key. - * @return the pre-transform key. - */ - protected abstract K unmakeKey(final DK input); -} diff --git a/src/com/p4square/grow/provider/DelegateProvider.java b/src/com/p4square/grow/provider/DelegateProvider.java deleted file mode 100644 index 42dcc63..0000000 --- a/src/com/p4square/grow/provider/DelegateProvider.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2014 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import java.io.IOException; - -/** - * DelegateProvider wraps an existing Provider an transforms the key from - * type K to type D. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public abstract class DelegateProvider<K, D, V> implements Provider<K, V> { - - private Provider<D, V> mProvider; - - public DelegateProvider(final Provider<D, V> provider) { - mProvider = provider; - } - - @Override - public V get(final K key) throws IOException { - return mProvider.get(makeKey(key)); - } - - @Override - public void put(final K key, final V obj) throws IOException { - mProvider.put(makeKey(key), obj); - } - - /** - * Make a Key for the delegated provider. - * - * @param input The pre-transform key. - * @return the post-transform key. - */ - protected abstract D makeKey(final K input); -} diff --git a/src/com/p4square/grow/provider/JsonEncodedProvider.java b/src/com/p4square/grow/provider/JsonEncodedProvider.java deleted file mode 100644 index 500f761..0000000 --- a/src/com/p4square/grow/provider/JsonEncodedProvider.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import java.io.IOException; - -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JavaType; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; - -/** - * Provider provides a simple interface for loading and persisting - * objects. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public abstract class JsonEncodedProvider<V> { - public static final ObjectMapper MAPPER = new ObjectMapper(); - static { - MAPPER.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true); - MAPPER.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true); - MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - } - - protected final Class<V> mClazz; - protected final JavaType mType; - - public JsonEncodedProvider(Class<V> clazz) { - mClazz = clazz; - mType = null; - } - - public JsonEncodedProvider(JavaType type) { - mType = type; - mClazz = null; - } - - /** - * Encode the object as JSON. - * - * @param obj The object to encode. - * @return The JSON encoding of obj. - * @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); - } - - /** - * Decode the JSON string as an object. - * - * @param blob The JSON data to decode. - * @return The decoded object or null if blob is null. - * @throws IOException If an object cannot be decoded. - */ - protected V decode(String blob) throws IOException { - if (blob == null) { - return null; - } - - if (mClazz == String.class) { - return (V) blob; - } - - V obj; - if (mClazz != null) { - obj = MAPPER.readValue(blob, mClazz); - - } else { - obj = MAPPER.readValue(blob, mType); - } - - return obj; - } -} - diff --git a/src/com/p4square/grow/provider/MapCollectionProvider.java b/src/com/p4square/grow/provider/MapCollectionProvider.java deleted file mode 100644 index 4c5cef6..0000000 --- a/src/com/p4square/grow/provider/MapCollectionProvider.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2015 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import java.io.IOException; -import java.util.Iterator; -import java.util.Map; -import java.util.HashMap; - -/** - * In-memory CollectionProvider implementation, useful for tests. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class MapCollectionProvider<C, K, V> implements CollectionProvider<C, K, V> { - private final Map<C, Map<K, V>> mMap; - - public MapCollectionProvider() { - mMap = new HashMap<>(); - } - - @Override - public synchronized V get(C collection, K key) throws IOException { - Map<K, V> map = mMap.get(collection); - if (map != null) { - return map.get(key); - } - - return null; - } - - @Override - public synchronized Map<K, V> query(C collection) throws IOException { - Map<K, V> map = mMap.get(collection); - if (map == null) { - map = new HashMap<K, V>(); - } - - return map; - } - - @Override - public synchronized Map<K, V> query(C collection, int limit) throws IOException { - Map<K, V> map = query(collection); - - if (map.size() > limit) { - Map<K, V> smallMap = new HashMap<>(); - - Iterator<Map.Entry<K, V>> iterator = map.entrySet().iterator(); - for (int i = 0; i < limit; i++) { - Map.Entry<K, V> entry = iterator.next(); - smallMap.put(entry.getKey(), entry.getValue()); - } - - return smallMap; - - } else { - return map; - } - } - - @Override - public synchronized void put(C collection, K key, V obj) throws IOException { - Map<K, V> map = mMap.get(collection); - if (map == null) { - map = new HashMap<K, V>(); - mMap.put(collection, map); - } - - map.put(key, obj); - } -} diff --git a/src/com/p4square/grow/provider/MapProvider.java b/src/com/p4square/grow/provider/MapProvider.java deleted file mode 100644 index 40f8107..0000000 --- a/src/com/p4square/grow/provider/MapProvider.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2015 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import java.io.IOException; -import java.util.Map; -import java.util.HashMap; - -/** - * In-memory Provider implementation, useful for tests. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class MapProvider<K, V> implements Provider<K, V> { - private final Map<K, V> mMap = new HashMap<K, V>(); - - @Override - public V get(K key) throws IOException { - return mMap.get(key); - } - - @Override - public void put(K key, V obj) throws IOException { - mMap.put(key, obj); - } -} diff --git a/src/com/p4square/grow/provider/Provider.java b/src/com/p4square/grow/provider/Provider.java deleted file mode 100644 index ca6af25..0000000 --- a/src/com/p4square/grow/provider/Provider.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import java.io.IOException; - -/** - * Provider provides a simple interface for loading and persisting - * objects. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public interface Provider<K, V> { - /** - * Retrieve the object with the given key. - * - * @param key The key for the object. - * @return The object or null if not found. - */ - V get(K key) throws IOException; - - /** - * Persist the object with the given key. - * - * @param key The key for the object. - * @param obj The object to persist. - */ - void put(K key, V obj) throws IOException; -} diff --git a/src/com/p4square/grow/provider/ProvidesAssessments.java b/src/com/p4square/grow/provider/ProvidesAssessments.java deleted file mode 100644 index 62ba8f6..0000000 --- a/src/com/p4square/grow/provider/ProvidesAssessments.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2014 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import com.p4square.grow.model.RecordedAnswer; - -/** - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public interface ProvidesAssessments { - /** - * Provides a collection of user assessments. - * The collection key is the user id. - * The key is the question id. - */ - CollectionProvider<String, String, String> getAnswerProvider(); -} diff --git a/src/com/p4square/grow/provider/ProvidesQuestions.java b/src/com/p4square/grow/provider/ProvidesQuestions.java deleted file mode 100644 index b43f649..0000000 --- a/src/com/p4square/grow/provider/ProvidesQuestions.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import com.p4square.grow.model.Question; - -/** - * Indicates the ability to provide a Question Provider. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public interface ProvidesQuestions { - /** - * @return A Provider of Questions keyed by question id. - */ - Provider<String, Question> getQuestionProvider(); -} diff --git a/src/com/p4square/grow/provider/ProvidesStrings.java b/src/com/p4square/grow/provider/ProvidesStrings.java deleted file mode 100644 index 5d9976e..0000000 --- a/src/com/p4square/grow/provider/ProvidesStrings.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2014 Jesse Morgan - */ - -package com.p4square.grow.provider; - -/** - * Indicates the ability to provide a String provider. - * - * Strings are typically configuration settings stored as a String. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public interface ProvidesStrings { - /** - * @return A Provider of Questions keyed by question id. - */ - Provider<String, String> getStringProvider(); -}
\ No newline at end of file diff --git a/src/com/p4square/grow/provider/ProvidesTrainingRecords.java b/src/com/p4square/grow/provider/ProvidesTrainingRecords.java deleted file mode 100644 index 586e649..0000000 --- a/src/com/p4square/grow/provider/ProvidesTrainingRecords.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import java.io.IOException; - -import com.p4square.grow.model.TrainingRecord; -import com.p4square.grow.model.Playlist; - -/** - * Indicates the ability to provide a TrainingRecord Provider. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public interface ProvidesTrainingRecords { - /** - * @return A Provider of Questions keyed by question id. - */ - Provider<String, TrainingRecord> getTrainingRecordProvider(); - - /** - * @return the Default Playlist. - */ - Playlist getDefaultPlaylist() throws IOException; -} diff --git a/src/com/p4square/grow/provider/ProvidesUserRecords.java b/src/com/p4square/grow/provider/ProvidesUserRecords.java deleted file mode 100644 index d77c878..0000000 --- a/src/com/p4square/grow/provider/ProvidesUserRecords.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 2014 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import com.p4square.grow.model.UserRecord; - -/** - * Indicates the ability to provide a UserRecord Provider. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public interface ProvidesUserRecords { - /** - * @return A Provider of Questions keyed by question id. - */ - Provider<String, UserRecord> getUserRecordProvider(); -} diff --git a/src/com/p4square/grow/provider/ProvidesVideos.java b/src/com/p4square/grow/provider/ProvidesVideos.java deleted file mode 100644 index 3d055d3..0000000 --- a/src/com/p4square/grow/provider/ProvidesVideos.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2014 Jesse Morgan - */ - -package com.p4square.grow.provider; - -/** - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public interface ProvidesVideos { - /** - * @return A Provider of Questions keyed by question id. - */ - CollectionProvider<String, String, String> getVideoProvider(); -} diff --git a/src/com/p4square/grow/provider/TrainingRecordProvider.java b/src/com/p4square/grow/provider/TrainingRecordProvider.java deleted file mode 100644 index 44dba87..0000000 --- a/src/com/p4square/grow/provider/TrainingRecordProvider.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.grow.provider; - -import java.io.IOException; - -import com.p4square.grow.model.TrainingRecord; - -/** - * TrainingRecordProvider wraps an existing Provider to get and put TrainingRecords. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public abstract class TrainingRecordProvider<K> implements Provider<String, TrainingRecord> { - - private Provider<K, TrainingRecord> mProvider; - - public TrainingRecordProvider(Provider<K, TrainingRecord> provider) { - mProvider = provider; - } - - @Override - public TrainingRecord get(String key) throws IOException { - return mProvider.get(makeKey(key)); - } - - @Override - public void put(String key, TrainingRecord obj) throws IOException { - mProvider.put(makeKey(key), obj); - } - - /** - * Make a Key for a TrainingRecord.. - * - * @param userId The user id. - * @return a key for the TrainingRecord of userid. - */ - protected abstract K makeKey(String userId); -} |