X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2Fwot%2FIdentity.java;h=2909936ac2c65ccff8f6c3ed324a8bc59382fb28;hb=da6c0a57ac23f13e25a2347237ef3d9ac52ac332;hp=c3053ae8a16c08eebbeeed31c1181b366bc59818;hpb=45758dd574219c139923b1a9c50d174129a0b740;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/freenet/wot/Identity.java b/src/main/java/net/pterodactylus/sone/freenet/wot/Identity.java index c3053ae..2909936 100644 --- a/src/main/java/net/pterodactylus/sone/freenet/wot/Identity.java +++ b/src/main/java/net/pterodactylus/sone/freenet/wot/Identity.java @@ -30,6 +30,9 @@ import java.util.Set; */ public class Identity { + /** The Web of Trust connector. */ + protected final WebOfTrustConnector webOfTrustConnector; + /** The ID of the identity. */ private final String id; @@ -48,6 +51,8 @@ public class Identity { /** * Creates a new identity. * + * @param webOfTrustConnector + * The Web of Trust connector * @param id * The ID of the identity * @param nickname @@ -55,7 +60,8 @@ public class Identity { * @param requestUri * The request URI of the identity */ - public Identity(String id, String nickname, String requestUri) { + public Identity(WebOfTrustConnector webOfTrustConnector, String id, String nickname, String requestUri) { + this.webOfTrustConnector = webOfTrustConnector; this.id = id; this.nickname = nickname; this.requestUri = requestUri; @@ -96,8 +102,30 @@ public class Identity { * Returns the contexts of the identity. * * @return The contexts of the identity + * @throws PluginException + * if an error occured communicating with the Web of Trust + * plugin */ - public Set getContexts() { + public Set getContexts() throws PluginException { + return getContexts(false); + } + + /** + * Returns the contexts of the identity. + * + * @param forceReload + * {@code true} to force a reload of the contexts + * @return The contexts of the identity + * @throws PluginException + * if an error occured communicating with the Web of Trust + * plugin + */ + public Set getContexts(boolean forceReload) throws PluginException { + if (contexts.isEmpty() || forceReload) { + Set contexts = webOfTrustConnector.loadIdentityContexts(this); + this.contexts.clear(); + this.contexts.addAll(contexts); + } return Collections.unmodifiableSet(contexts); }