X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Ffcp%2Fplugin%2FWebOfTrustPlugin.java;h=d5cedfc56d3138f106296fa39b7dfcf9685c832c;hb=c200f549b8ebde87b6145f1f5bacf932e68151f5;hp=ba9ad3ac9dabd475d36349124d80d8f22bf0064c;hpb=3586ba06c49cf99fa22da071f53b5f01b87353a0;p=jFCPlib.git diff --git a/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java b/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java index ba9ad3a..d5cedfc 100644 --- a/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java +++ b/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java @@ -133,6 +133,67 @@ public class WebOfTrustPlugin { return ownIdentities; } + /** + * Returns the trust given to the identity with the given identifier by the + * given own identity. + * + * @param ownIdentity + * The own identity that is used to calculate trust values + * @param identifier + * The identifier of the identity whose trust to get + * @return The request identity trust + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public IdentityTrust getIdentityTrust(OwnIdentity ownIdentity, String identifier) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "GetIdentity", "TreeOwner", ownIdentity.getIdentifier(), "Identity", identifier)); + if (!replies.get("Message").equals("Identity")) { + throw new FcpException("WebOfTrust Plugin did not reply with “Identity” message!"); + } + Byte trust = null; + try { + trust = Byte.valueOf(replies.get("Trust")); + } catch (NumberFormatException nfe1) { + /* ignore. */ + } + Integer score = null; + try { + score = Integer.valueOf(replies.get("Score")); + } catch (NumberFormatException nfe1) { + /* ignore. */ + } + Integer rank = null; + try { + rank = Integer.valueOf(replies.get("Rank")); + } catch (NumberFormatException nfe1) { + /* ignore. */ + } + return new IdentityTrust(trust, score, rank); + } + + /** + * Adds a new identity by its request URI. + * + * @param requestUri + * The request URI of the identity to add + * @return The added identity + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public Identity addIdentity(String requestUri) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "AddIdentity", "RequestURI", requestUri)); + if (!replies.get("Message").equals("IdentityAdded")) { + throw new FcpException("WebOfTrust Plugin did not reply with “IdentityAdded” message!"); + } + String identifier = replies.get("ID"); + String nickname = replies.get("Nickname"); + return new Identity(identifier, nickname, requestUri); + } + // // PRIVATE METHODS // @@ -171,15 +232,6 @@ public class WebOfTrustPlugin { /** The identity’s request URI. */ private final String requestUri; - /** The identity’s trust value. */ - private final Byte trust; - - /** The identity’s score value. */ - private final Integer score; - - /** The identity’s rank. */ - private final Integer rank; - /** * Creates a new identity. * @@ -189,20 +241,11 @@ public class WebOfTrustPlugin { * The nickname of the identity * @param requestUri * The request URI of the identity - * @param trust - * The trust value of the identity - * @param score - * The score value of the identity - * @param rank - * The rank of the identity */ - public Identity(String identifier, String nickname, String requestUri, Byte trust, Integer score, Integer rank) { + public Identity(String identifier, String nickname, String requestUri) { this.identifier = identifier; this.nickname = nickname; this.requestUri = requestUri; - this.trust = trust; - this.score = score; - this.rank = rank; } /** @@ -232,6 +275,40 @@ public class WebOfTrustPlugin { return requestUri; } + } + + /** + * Container that stores the trust given to an identity. + * + * @author David ‘Bombe’ Roden <bombe@freenetproject.org> + */ + public static class IdentityTrust { + + /** The identity’s trust value. */ + private final Byte trust; + + /** The identity’s score value. */ + private final Integer score; + + /** The identity’s rank. */ + private final Integer rank; + + /** + * Creates a new identity trust container. + * + * @param trust + * The trust value of the identity + * @param score + * The score value of the identity + * @param rank + * The rank of the identity + */ + public IdentityTrust(Byte trust, Integer score, Integer rank) { + this.trust = trust; + this.score = score; + this.rank = rank; + } + /** * Returns the trust value of this identity. *