projects
/
Sone.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
18812e3
)
Add method to expose a Sone loader to the Sone provider.
author
David ‘Bombe’ Roden
<bombe@pterodactylus.net>
Mon, 24 Nov 2014 06:11:18 +0000
(07:11 +0100)
committer
David ‘Bombe’ Roden
<bombe@pterodactylus.net>
Mon, 24 Nov 2014 06:11:18 +0000
(07:11 +0100)
src/main/java/net/pterodactylus/sone/core/Core.java
patch
|
blob
|
history
src/main/java/net/pterodactylus/sone/database/SoneProvider.java
patch
|
blob
|
history
src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java
patch
|
blob
|
history
src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java
patch
|
blob
|
history
diff --git
a/src/main/java/net/pterodactylus/sone/core/Core.java
b/src/main/java/net/pterodactylus/sone/core/Core.java
index
dc5e207
..
dfe8074
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/core/Core.java
+++ b/
src/main/java/net/pterodactylus/sone/core/Core.java
@@
-96,6
+96,7
@@
import net.pterodactylus.util.service.AbstractService;
import net.pterodactylus.util.thread.NamedThreadFactory;
import com.google.common.annotations.VisibleForTesting;
import net.pterodactylus.util.thread.NamedThreadFactory;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Function;
import com.google.common.base.Optional;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.HashMultimap;
import com.google.common.base.Optional;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.HashMultimap;
@@
-318,6
+319,11
@@
public class Core extends AbstractService implements SoneProvider, PostProvider,
return database.getSones();
}
return database.getSones();
}
+ @Override
+ public Function<String, Optional<Sone>> soneLoader() {
+ return database.soneLoader();
+ }
+
/**
* Returns the Sone with the given ID, regardless whether it’s local or
* remote.
/**
* Returns the Sone with the given ID, regardless whether it’s local or
* remote.
diff --git
a/src/main/java/net/pterodactylus/sone/database/SoneProvider.java
b/src/main/java/net/pterodactylus/sone/database/SoneProvider.java
index
f36eaba
..
73467a2
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/database/SoneProvider.java
+++ b/
src/main/java/net/pterodactylus/sone/database/SoneProvider.java
@@
-22,6
+22,7
@@
import java.util.Collection;
import net.pterodactylus.sone.core.Core;
import net.pterodactylus.sone.data.Sone;
import net.pterodactylus.sone.core.Core;
import net.pterodactylus.sone.data.Sone;
+import com.google.common.base.Function;
import com.google.common.base.Optional;
import com.google.inject.ImplementedBy;
import com.google.common.base.Optional;
import com.google.inject.ImplementedBy;
@@
-33,6
+34,8
@@
import com.google.inject.ImplementedBy;
@ImplementedBy(Core.class)
public interface SoneProvider {
@ImplementedBy(Core.class)
public interface SoneProvider {
+ Function<String, Optional<Sone>> soneLoader();
+
/**
* Returns the Sone with the given ID, or {@link Optional#absent()} if it
* does not exist.
/**
* Returns the Sone with the given ID, or {@link Optional#absent()} if it
* does not exist.
diff --git
a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java
b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java
index
c611eea
..
4ee375e
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java
+++ b/
src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.java
@@
-56,6
+56,7
@@
import net.pterodactylus.sone.database.SoneProvider;
import net.pterodactylus.util.config.Configuration;
import net.pterodactylus.util.config.ConfigurationException;
import net.pterodactylus.util.config.Configuration;
import net.pterodactylus.util.config.ConfigurationException;
+import com.google.common.base.Function;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.collect.HashMultimap;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.google.common.collect.HashMultimap;
@@
-239,6
+240,16
@@
public class MemoryDatabase extends AbstractService implements Database {
}
@Override
}
@Override
+ public Function<String, Optional<Sone>> soneLoader() {
+ return new Function<String, Optional<Sone>>() {
+ @Override
+ public Optional<Sone> apply(String soneId) {
+ return getSone(soneId);
+ }
+ };
+ }
+
+ @Override
public Optional<Sone> getSone(String soneId) {
lock.readLock().lock();
try {
public Optional<Sone> getSone(String soneId) {
lock.readLock().lock();
try {
diff --git
a/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java
b/src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java
index
c805998
..
2ac6db7
100644
(file)
--- a/
src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java
+++ b/
src/test/java/net/pterodactylus/sone/text/SoneTextParserTest.java
@@
-22,13
+22,14
@@
import java.io.StringReader;
import java.util.Arrays;
import java.util.Collection;
import java.util.Arrays;
import java.util.Collection;
-import com.google.common.base.Optional;
-
-import junit.framework.TestCase;
import net.pterodactylus.sone.data.Sone;
import net.pterodactylus.sone.data.impl.IdOnlySone;
import net.pterodactylus.sone.database.SoneProvider;
import net.pterodactylus.sone.data.Sone;
import net.pterodactylus.sone.data.impl.IdOnlySone;
import net.pterodactylus.sone.database.SoneProvider;
+import com.google.common.base.Function;
+import com.google.common.base.Optional;
+import junit.framework.TestCase;
+
/**
* JUnit test case for {@link SoneTextParser}.
*
/**
* JUnit test case for {@link SoneTextParser}.
*
@@
-181,6
+182,16
@@
public class SoneTextParserTest extends TestCase {
*/
private static class TestSoneProvider implements SoneProvider {
*/
private static class TestSoneProvider implements SoneProvider {
+ @Override
+ public Function<String, Optional<Sone>> soneLoader() {
+ return new Function<String, Optional<Sone>>() {
+ @Override
+ public Optional<Sone> apply(String soneId) {
+ return getSone(soneId);
+ }
+ };
+ }
+
/**
* {@inheritDoc}
*/
/**
* {@inheritDoc}
*/