Fix own identities without trust identities from disappearing.
[Sone.git] / src / main / java / net / pterodactylus / sone / freenet / wot / IdentityManager.java
index e89c667..5978169 100644 (file)
 
 package net.pterodactylus.sone.freenet.wot;
 
-import static com.google.common.base.Optional.fromNullable;
-import static com.google.common.collect.HashMultimap.create;
-
+import java.util.Collection;
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -29,11 +29,9 @@ import net.pterodactylus.sone.freenet.plugin.PluginException;
 import net.pterodactylus.util.logging.Logging;
 import net.pterodactylus.util.service.AbstractService;
 
-import com.google.common.collect.Multimap;
 import com.google.common.collect.Sets;
 import com.google.common.eventbus.EventBus;
 import com.google.inject.Inject;
-import com.google.inject.name.Named;
 
 /**
  * The identity manager takes care of loading and storing identities, their
@@ -69,16 +67,13 @@ public class IdentityManager extends AbstractService {
         *            The event bus
         * @param webOfTrustConnector
         *            The Web of Trust connector
-        * @param context
-        *            The context to focus on (may be {@code null} to ignore
-        *            contexts)
         */
        @Inject
-       public IdentityManager(EventBus eventBus, WebOfTrustConnector webOfTrustConnector, @Named("WebOfTrustContext") String context) {
+       public IdentityManager(EventBus eventBus, WebOfTrustConnector webOfTrustConnector, IdentityLoader identityLoader) {
                super("Sone Identity Manager", false);
                this.eventBus = eventBus;
                this.webOfTrustConnector = webOfTrustConnector;
-               this.identityLoader = new IdentityLoader(webOfTrustConnector, fromNullable(context));
+               this.identityLoader = identityLoader;
        }
 
        //
@@ -122,11 +117,11 @@ public class IdentityManager extends AbstractService {
         */
        @Override
        protected void serviceRun() {
-               Multimap<OwnIdentity, Identity> oldIdentities = create();
+               Map<OwnIdentity, Collection<Identity>> oldIdentities = new HashMap<OwnIdentity, Collection<Identity>>();
 
                while (!shouldStop()) {
                        try {
-                               Multimap<OwnIdentity, Identity> currentIdentities = identityLoader.loadIdentities();
+                               Map<OwnIdentity, Collection<Identity>> currentIdentities = identityLoader.loadIdentities();
 
                                IdentityChangeEventSender identityChangeEventSender = new IdentityChangeEventSender(eventBus, oldIdentities);
                                identityChangeEventSender.detectChanges(currentIdentities);