X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2FSoneProvider.java;h=a39ceff0a12d2509244b69cec0ece33ffdff6499;hb=00d9636e4d2f27c1e64ed4be50632c67c726e3b0;hp=b1b1eb48dadce65252659879e3da7d79f5a2fe22;hpb=8f02544d31f323ae9053dd9a11a99eacd8cf5bcd;p=Sone.git
diff --git a/src/main/java/net/pterodactylus/sone/database/SoneProvider.java b/src/main/java/net/pterodactylus/sone/database/SoneProvider.java
index b1b1eb4..a39ceff 100644
--- a/src/main/java/net/pterodactylus/sone/database/SoneProvider.java
+++ b/src/main/java/net/pterodactylus/sone/database/SoneProvider.java
@@ -1,5 +1,5 @@
/*
- * Sone - SoneProvider.java - Copyright © 2011â2013 David Roden
+ * Sone - SoneProvider.java - Copyright © 2011â2016 David Roden
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,22 +17,54 @@
package net.pterodactylus.sone.database;
+import java.util.Collection;
+
+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;
+
/**
* Interface for objects that can provide {@link Sone}s by their ID.
*
* @author David âBombeâ Roden
*/
+@ImplementedBy(Core.class)
public interface SoneProvider {
+ Function> soneLoader();
+
/**
- * Returns the Sone with the given ID, if it exists.
+ * Returns the Sone with the given ID, or {@link Optional#absent()} if it
+ * does not exist.
*
* @param soneId
* The ID of the Sone to return
- * @return The Sone with the given ID, or {@code null}
+ * @return The Sone with the given ID, or {@link Optional#absent()}
+ */
+ public Optional getSone(String soneId);
+
+ /**
+ * Returns all Sones.
+ *
+ * @return All Sones
+ */
+ public Collection getSones();
+
+ /**
+ * Returns all local Sones.
+ *
+ * @return All local Sones
+ */
+ public Collection getLocalSones();
+
+ /**
+ * Returns all remote Sones.
+ *
+ * @return All remote Sones
*/
- public Sone getSone(String soneId);
+ public Collection getRemoteSones();
}