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/CollectionProvider.java59
-rw-r--r--src/com/p4square/grow/provider/DelegateCollectionProvider.java69
-rw-r--r--src/com/p4square/grow/provider/DelegateProvider.java40
-rw-r--r--src/com/p4square/grow/provider/JsonEncodedProvider.java83
-rw-r--r--src/com/p4square/grow/provider/MapCollectionProvider.java74
-rw-r--r--src/com/p4square/grow/provider/MapProvider.java28
-rw-r--r--src/com/p4square/grow/provider/Provider.java31
-rw-r--r--src/com/p4square/grow/provider/ProvidesAssessments.java20
-rw-r--r--src/com/p4square/grow/provider/ProvidesQuestions.java19
-rw-r--r--src/com/p4square/grow/provider/ProvidesStrings.java19
-rw-r--r--src/com/p4square/grow/provider/ProvidesTrainingRecords.java27
-rw-r--r--src/com/p4square/grow/provider/ProvidesUserRecords.java19
-rw-r--r--src/com/p4square/grow/provider/ProvidesVideos.java16
-rw-r--r--src/com/p4square/grow/provider/TrainingRecordProvider.java41
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);
-}