+ * Gets all known Sones that are not local Sones.
+ *
+ * @return All remote Sones
+ */
+ public Collection<Sone> getRemoteSones() {
+ return Filters.filteredCollection(getKnownSones(), new Filter<Sone>() {
+
+ @Override
+ @SuppressWarnings("synthetic-access")
+ public boolean filterObject(Sone object) {
+ return !localSones.contains(object);
+ }
+ });
+ }
+
+ /**
+ * Returns the status of the given Sone.
+ *
+ * @param sone
+ * The Sone to get the status for
+ * @return The status of the Sone
+ */
+ public SoneStatus getSoneStatus(Sone sone) {
+ return soneStatuses.get(sone);
+ }
+
+ /**
+ * Sets the status of the Sone.
+ *
+ * @param sone
+ * The Sone to set the status for
+ * @param soneStatus
+ * The status of the Sone
+ */
+ public void setSoneStatus(Sone sone, SoneStatus soneStatus) {
+ soneStatuses.put(sone, soneStatus);
+ }
+
+ /**
+ * Creates a new post and adds it to the given Sone.