X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2Fwot%2FIdentityManager.java;h=89e4297e215e014f7c3048f2ee81d0c4e36e4e75;hp=f9af3613bc3e4916e91c222615d5e550839a5f9a;hb=a47643aed43d118ca68044f95451bb5374cdb332;hpb=2463c2c5e852aea6b90294f55ffcb17e9eb822eb diff --git a/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManager.java b/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManager.java index f9af361..89e4297 100644 --- a/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManager.java +++ b/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManager.java @@ -1,5 +1,5 @@ /* - * Sone - IdentityManager.java - Copyright © 2010 David Roden + * Sone - IdentityManager.java - Copyright © 2010–2012 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 @@ -26,6 +26,8 @@ import java.util.logging.Level; import java.util.logging.Logger; import net.pterodactylus.sone.freenet.plugin.PluginException; +import net.pterodactylus.util.collection.Mapper; +import net.pterodactylus.util.collection.Mappers; import net.pterodactylus.util.logging.Logging; import net.pterodactylus.util.service.AbstractService; @@ -43,6 +45,7 @@ import net.pterodactylus.util.service.AbstractService; public class IdentityManager extends AbstractService { /** Object used for synchronization. */ + @SuppressWarnings("hiding") private final Object syncObject = new Object() { /* inner class for better lock names. */ }; @@ -140,7 +143,7 @@ public class IdentityManager extends AbstractService { Set allOwnIdentities = getAllOwnIdentities(); for (OwnIdentity ownIdentity : allOwnIdentities) { if (ownIdentity.getId().equals(id)) { - return ownIdentity; + return new DefaultOwnIdentity(webOfTrustConnector, ownIdentity); } } return null; @@ -159,7 +162,17 @@ public class IdentityManager extends AbstractService { newOwnIdentities.put(ownIdentity.getId(), ownIdentity); } checkOwnIdentities(newOwnIdentities); - return ownIdentities; + return Mappers.mappedSet(ownIdentities, new Mapper() { + + /** + * {@inheritDoc} + */ + @Override + @SuppressWarnings("synthetic-access") + public OwnIdentity map(OwnIdentity input) { + return new DefaultOwnIdentity(webOfTrustConnector, input); + } + }); } catch (WebOfTrustException wote1) { logger.log(Level.WARNING, "Could not load all own identities!", wote1); return Collections.emptySet(); @@ -297,7 +310,7 @@ public class IdentityManager extends AbstractService { for (OwnIdentity oldOwnIdentity : currentOwnIdentities.values()) { OwnIdentity newOwnIdentity = newOwnIdentities.get(oldOwnIdentity.getId()); if ((newOwnIdentity == null) || ((context != null) && oldOwnIdentity.hasContext(context) && !newOwnIdentity.hasContext(context))) { - identityListenerManager.fireOwnIdentityRemoved(oldOwnIdentity); + identityListenerManager.fireOwnIdentityRemoved(new DefaultOwnIdentity(webOfTrustConnector, oldOwnIdentity)); } } @@ -305,7 +318,7 @@ public class IdentityManager extends AbstractService { for (OwnIdentity currentOwnIdentity : newOwnIdentities.values()) { OwnIdentity oldOwnIdentity = currentOwnIdentities.get(currentOwnIdentity.getId()); if (((oldOwnIdentity == null) && ((context == null) || currentOwnIdentity.hasContext(context))) || ((oldOwnIdentity != null) && (context != null) && (!oldOwnIdentity.hasContext(context) && currentOwnIdentity.hasContext(context)))) { - identityListenerManager.fireOwnIdentityAdded(currentOwnIdentity); + identityListenerManager.fireOwnIdentityAdded(new DefaultOwnIdentity(webOfTrustConnector, currentOwnIdentity)); } }