X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2FSoneProvider.java;h=69f7eaf3a33ae700e11388032cccd9d484f670a1;hb=a34c3b49cdd2a0d71d0c061ce33f567b77409383;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..69f7eaf 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,57 @@
package net.pterodactylus.sone.database;
+import java.util.Collection;
+
+import javax.annotation.Nonnull;
+
+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
+ */
+ @Nonnull
+ 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();
}