X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2Fwot%2FIdentityLoader.java;h=0917130f2fa279b589995334c10c54e4d3cf02ae;hb=c5734598ee88c40467f586de702a67ccabd0af92;hp=823653e1d50bf8e2ae4ffb92d52941353b281bcb;hpb=aa69d7eb1845cffa60b264dd9517ea0fcc54bcd4;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityLoader.java b/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityLoader.java index 823653e..0917130 100644 --- a/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityLoader.java +++ b/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityLoader.java @@ -1,5 +1,5 @@ /* - * Sone - IdentityLoader.java - Copyright © 2013 David Roden + * Sone - IdentityLoader.java - Copyright © 2013–2019 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,28 +17,24 @@ package net.pterodactylus.sone.freenet.wot; -import static com.google.common.collect.HashMultimap.create; -import static net.pterodactylus.sone.freenet.wot.Context.extractContext; +import static java.util.concurrent.TimeUnit.*; +import static net.pterodactylus.sone.freenet.wot.Context.*; -import java.util.Collection; -import java.util.Set; +import java.util.*; +import java.util.logging.*; -import javax.annotation.Nullable; +import net.pterodactylus.sone.freenet.plugin.*; -import net.pterodactylus.sone.freenet.plugin.PluginException; - -import com.google.common.base.Function; import com.google.common.base.Optional; -import com.google.common.collect.Multimap; -import com.google.inject.Inject; +import com.google.common.base.*; +import com.google.inject.*; /** * Loads {@link OwnIdentity}s and the {@link Identity}s they trust. - * - * @author David ‘Bombe’ Roden */ public class IdentityLoader { + private final Logger logger = Logger.getLogger(IdentityLoader.class.getName()); private final WebOfTrustConnector webOfTrustConnector; private final Optional context; @@ -52,21 +48,26 @@ public class IdentityLoader { this.context = context; } - public Multimap loadIdentities() throws WebOfTrustException { + public Map> loadIdentities() throws WebOfTrustException { + Stopwatch stopwatch = Stopwatch.createStarted(); Collection currentOwnIdentities = webOfTrustConnector.loadAllOwnIdentities(); + logger.fine("Loaded " + currentOwnIdentities.size() + " own identities in " + (stopwatch.elapsed(MILLISECONDS) / 1000.0) + "s."); return loadTrustedIdentitiesForOwnIdentities(currentOwnIdentities); } - private Multimap loadTrustedIdentitiesForOwnIdentities(Collection ownIdentities) throws PluginException { - Multimap currentIdentities = create(); + private Map> loadTrustedIdentitiesForOwnIdentities(Collection ownIdentities) throws PluginException { + Map> currentIdentities = new HashMap<>(); for (OwnIdentity ownIdentity : ownIdentities) { if (identityDoesNotHaveTheCorrectContext(ownIdentity)) { + currentIdentities.put(ownIdentity, Collections.emptySet()); continue; } + Stopwatch stopwatch = Stopwatch.createStarted(); Set trustedIdentities = webOfTrustConnector.loadTrustedIdentities(ownIdentity, context.transform(extractContext)); - currentIdentities.putAll(ownIdentity, trustedIdentities); + logger.fine("Loaded " + trustedIdentities.size() + " identities for " + ownIdentity.getNickname() + " in " + (stopwatch.elapsed(MILLISECONDS) / 1000.0) + "s."); + currentIdentities.put(ownIdentity, trustedIdentities); } return currentIdentities;