Store Web of Trust connector in Core.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index accfa1e..6ceede0 100644 (file)
@@ -40,6 +40,7 @@ import net.pterodactylus.sone.data.Post;
 import net.pterodactylus.sone.data.Profile;
 import net.pterodactylus.sone.data.Reply;
 import net.pterodactylus.sone.data.Sone;
+import net.pterodactylus.sone.freenet.wot.WebOfTrustConnector;
 import net.pterodactylus.util.config.Configuration;
 import net.pterodactylus.util.config.ConfigurationException;
 import net.pterodactylus.util.filter.Filter;
@@ -56,6 +57,16 @@ import freenet.keys.FreenetURI;
  */
 public class Core extends AbstractService {
 
+       /** The default Sones. */
+       private static final Set<String> defaultSones = new HashSet<String>();
+
+       static {
+               /* Sone of Sone. */
+               defaultSones.add("USK@eRHt0ceFsHjRZ11j6dd68RSdIvfd8f9YjJLZ9lnhEyo,iJWjIWh6TkMZm1NY8qBranKTIuwsCPkVPG6T6c6ft-I,AQACAAE/Sone/4");
+               /* Sone of Bombe. */
+               defaultSones.add("USK@RuW~uAO35Ipne896-1OmaVJNPuYE4ZIB5oZ5ziaU57A,7rV3uiyztXBDt03DCoRiNwiGjgFCJuznM9Okc1opURU,AQACAAE/Sone/29");
+       }
+
        /**
         * Enumeration for the possible states of a {@link Sone}.
         *
@@ -88,17 +99,20 @@ public class Core extends AbstractService {
        /** Interface to freenet. */
        private FreenetInterface freenetInterface;
 
+       /** The WoT connector. */
+       private WebOfTrustConnector webOfTrustConnector;
+
        /** The Sone downloader. */
        private SoneDownloader soneDownloader;
 
        /** The Sone blacklist. */
-       private final Set<Sone> blacklistedSones = new HashSet<Sone>();
+       private final Set<Sone> blacklistedSones = Collections.synchronizedSet(new HashSet<Sone>());
 
        /** The local Sones. */
-       private final Set<Sone> localSones = new HashSet<Sone>();
+       private final Set<Sone> localSones = Collections.synchronizedSet(new HashSet<Sone>());
 
        /** Sone inserters. */
-       private final Map<Sone, SoneInserter> soneInserters = new HashMap<Sone, SoneInserter>();
+       private final Map<Sone, SoneInserter> soneInserters = Collections.synchronizedMap(new HashMap<Sone, SoneInserter>());
 
        /** The Sones’ statuses. */
        private final Map<Sone, SoneStatus> soneStatuses = Collections.synchronizedMap(new HashMap<Sone, SoneStatus>());
@@ -106,13 +120,13 @@ public class Core extends AbstractService {
        /* various caches follow here. */
 
        /** Cache for all known Sones. */
-       private final Map<String, Sone> soneCache = new HashMap<String, Sone>();
+       private final Map<String, Sone> soneCache = Collections.synchronizedMap(new HashMap<String, Sone>());
 
        /** Cache for all known posts. */
-       private final Map<String, Post> postCache = new HashMap<String, Post>();
+       private final Map<String, Post> postCache = Collections.synchronizedMap(new HashMap<String, Post>());
 
        /** Cache for all known replies. */
-       private final Map<String, Reply> replyCache = new HashMap<String, Reply>();
+       private final Map<String, Reply> replyCache = Collections.synchronizedMap(new HashMap<String, Reply>());
 
        /**
         * Creates a new core.
@@ -161,6 +175,27 @@ public class Core extends AbstractService {
        }
 
        /**
+        * Returns the Web of Trust connector.
+        *
+        * @return The Web of Trust connector
+        */
+       public WebOfTrustConnector getWebOfTrustConnector() {
+               return webOfTrustConnector;
+       }
+
+       /**
+        * Sets the Web of Trust connector.
+        *
+        * @param webOfTrustConnector
+        *            The Web of Trust connector
+        * @return This core (for method chaining)
+        */
+       public Core setWebOfTrustConnector(WebOfTrustConnector webOfTrustConnector) {
+               this.webOfTrustConnector = webOfTrustConnector;
+               return this;
+       }
+
+       /**
         * Returns the local Sones.
         *
         * @return The local Sones
@@ -715,10 +750,9 @@ public class Core extends AbstractService {
         * Adds some default Sones.
         */
        private void addDefaultSones() {
-               /* Sone’s Sone. */
-               loadSone("USK@eRHt0ceFsHjRZ11j6dd68RSdIvfd8f9YjJLZ9lnhEyo,iJWjIWh6TkMZm1NY8qBranKTIuwsCPkVPG6T6c6ft-I,AQACAAE/Sone/0");
-               /* Bombe’s Sone. */
-               loadSone("USK@RuW~uAO35Ipne896-1OmaVJNPuYE4ZIB5oZ5ziaU57A,7rV3uiyztXBDt03DCoRiNwiGjgFCJuznM9Okc1opURU,AQACAAE/Sone/15");
+               for (String soneUri : defaultSones) {
+                       loadSone(soneUri);
+               }
        }
 
        /**