X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Ffcp%2Fplugin%2FWebOfTrustPlugin.java;h=b0c6ea4c52db8c6fec919ecf002ad208e5636af9;hb=a18de5dcab8c81ec8c8671f71e4363a1a4e15d37;hp=194952795eeb593bb27093651ed6de666180b4c4;hpb=9be110e698b59932cb5818cb473653c367b8cad0;p=jFCPlib.git diff --git a/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java b/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java index 1949527..b0c6ea4 100644 --- a/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java +++ b/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java @@ -147,7 +147,7 @@ public class WebOfTrustPlugin { * @throws FcpException * if an FCP error occurs */ - public IdentityTrust getIdentityTrust(OwnIdentity ownIdentity, String identifier) throws IOException, FcpException { + public CalculatedTrust 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!"); @@ -170,7 +170,83 @@ public class WebOfTrustPlugin { } catch (NumberFormatException nfe1) { /* ignore. */ } - return new IdentityTrust(trust, score, rank); + return new CalculatedTrust(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); + } + + /** + * Returns identities by the given score. + * + * @param ownIdentity + * The own identity + * @param context + * The context to get the identities for + * @param positive + * {@code null} to return neutrally trusted identities, {@code + * true} to return positively trusted identities, {@code false} + * for negatively trusted identities + * @return The trusted identites + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public Set getIdentitesByScore(OwnIdentity ownIdentity, String context, Boolean positive) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "GetIdentitesByScore", "TreeOwner", ownIdentity.getIdentifier(), "Context", context, "Selection", ((positive == null) ? "0" : (positive ? "+" : "-")))); + if (!replies.get("Message").equals("Identities")) { + throw new FcpException("WebOfTrust Plugin did not reply with “Identities” message!"); + } + Set identities = new HashSet(); + for (int identityIndex = 1; replies.containsKey("Identity" + identityIndex); identityIndex++) { + String identifier = replies.get("Identity" + identityIndex); + String nickname = replies.get("Nickname" + identityIndex); + String requestUri = replies.get("RequestURI" + identityIndex); + identities.add(new Identity(identifier, nickname, requestUri)); + } + return identities; + } + + /** + * Sets the trust given to the given identify by the given own identity. + * + * @param ownIdentity + * The identity that gives the trust + * @param identity + * The identity that receives the trust + * @param trust + * The trust value (ranging from {@code -100} to {@code 100} + * @param comment + * The comment for setting the trust + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public void setTrust(OwnIdentity ownIdentity, Identity identity, byte trust, String comment) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "SetTrust", "Truster", ownIdentity.getIdentifier(), "Trustee", identity.getIdentifier(), "Value", String.valueOf(trust), "Comment", comment)); + if (!replies.get("Message").equals("TrustSet")) { + throw new FcpException("WebOfTrust Plugin did not reply with “TrustSet” message!"); + } } // @@ -257,62 +333,62 @@ public class WebOfTrustPlugin { } /** - * Container that stores the trust given to an identity. + * Container that stores the trust that is calculated by taking all trustees + * and their trust lists into account. * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> */ - public static class IdentityTrust { + public static class CalculatedTrust { - /** The identity’s trust value. */ + /** The calculated trust value. */ private final Byte trust; - /** The identity’s score value. */ + /** The calculated score value. */ private final Integer score; - /** The identity’s rank. */ + /** The calculated rank. */ private final Integer rank; /** - * Creates a new identity trust container. + * Creates a new calculated trust container. * * @param trust - * The trust value of the identity + * The calculated trust value * @param score - * The score value of the identity + * The calculated score value * @param rank - * The rank of the identity + * The calculated rank of the */ - public IdentityTrust(Byte trust, Integer score, Integer rank) { + public CalculatedTrust(Byte trust, Integer score, Integer rank) { this.trust = trust; this.score = score; this.rank = rank; } /** - * Returns the trust value of this identity. + * Returns the calculated trust value. * - * @return This identity’s trust value, or {@code null} if this - * identity’s trust value is not known + * @return The calculated trust value, or {@code null} if the trust + * value is not known */ public Byte getTrust() { return trust; } /** - * Returns the score value of this identity. + * Returns the calculated score value. * - * @return This identity’s score value, or {@code null} if this - * identity’s score value is not known + * @return The calculated score value, or {@code null} if the score + * value is not known */ public Integer getScore() { return score; } /** - * Returns the rank of this identity. + * Returns the calculated rank. * - * @return This identity’s rank, or {@code null} if this identity’s rank - * is not known + * @return The calculated rank, or {@code null} if the rank is not known */ public Integer getRank() { return rank;