X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2FSoneProvider.java;h=69f7eaf3a33ae700e11388032cccd9d484f670a1;hb=6cac5513ec98c44bc574a87111bec2a2524464bd;hp=f484aafada0609d3c118edb7ada053df7da26f12;hpb=921177685a8622866750a3740f94786d88127d95;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 f484aaf..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
@@ -19,17 +19,25 @@ 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, or {@link Optional#absent()} if it
* does not exist.
@@ -45,6 +53,21 @@ public interface SoneProvider {
*
* @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 Collection getRemoteSones();
+
}