X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Ffcp%2Fplugin%2FWebOfTrustPlugin.java;h=3e99b1ef10a0e7edf6f91ac9f5baf3c6a756c0af;hb=dd605aee444057a874fabf7fb0045b8448b0d1cd;hp=1805af69c2d16bb7998fb3cd3285dd8c2eaaec47;hpb=c396744376667b3034b95063f6f0734f92ed3b33;p=jFCPlib.git diff --git a/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java b/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java index 1805af6..3e99b1e 100644 --- a/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java +++ b/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java @@ -1,6 +1,5 @@ /* - * jFCPlib - WebOfTrustPlugin.java - - * Copyright © 2009 David Roden + * jFCPlib - WebOfTrustPlugin.java - Copyright © 2009 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 @@ -212,7 +211,7 @@ public class WebOfTrustPlugin { * 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 ? "+" : "-")))); + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "GetIdentitiesByScore", "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!"); } @@ -227,6 +226,66 @@ public class WebOfTrustPlugin { } /** + * Returns the identities that trust the given identity. + * + * @param identity + * The identity to get the trusters for + * @param context + * The context to get the trusters for + * @return The identities and their trust values + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public Map getTrusters(Identity identity, String context) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "GetTrusters", "Identity", identity.getIdentifier(), "Context", context)); + if (!replies.get("Message").equals("Identities")) { + throw new FcpException("WebOfTrust Plugin did not reply with “Identities” message!"); + } + Map identityTrusts = new HashMap(); + 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); + byte trust = Byte.parseByte(replies.get("Value" + identityIndex)); + String comment = replies.get("Comment" + identityIndex); + identityTrusts.put(new Identity(identifier, nickname, requestUri), new IdentityTrust(trust, comment)); + } + return identityTrusts; + } + + /** + * Returns the identities that given identity trusts. + * + * @param identity + * The identity to get the trustees for + * @param context + * The context to get the trustees for + * @return The identities and their trust values + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public Map getTrustees(Identity identity, String context) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "GetTrustees", "Identity", identity.getIdentifier(), "Context", context)); + if (!replies.get("Message").equals("Identities")) { + throw new FcpException("WebOfTrust Plugin did not reply with “Identities” message!"); + } + Map identityTrusts = new HashMap(); + 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); + byte trust = Byte.parseByte(replies.get("Value" + identityIndex)); + String comment = replies.get("Comment" + identityIndex); + identityTrusts.put(new Identity(identifier, nickname, requestUri), new IdentityTrust(trust, comment)); + } + return identityTrusts; + } + + /** * Sets the trust given to the given identify by the given own identity. * * @param ownIdentity @@ -249,6 +308,105 @@ public class WebOfTrustPlugin { } } + /** + * Adds the given context to the given identity. + * + * @param ownIdentity + * The identity to add the context to + * @param context + * The context to add + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public void addContext(OwnIdentity ownIdentity, String context) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "AddContext", "Identity", ownIdentity.getIdentifier(), "Context", context)); + if (!replies.get("Message").equals("ContextAdded")) { + throw new FcpException("WebOfTrust Plugin did not reply with “ContextAdded” message!"); + } + } + + /** + * Removes the given context from the given identity. + * + * @param ownIdentity + * The identity to remove the context from + * @param context + * The context to remove + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public void removeContext(OwnIdentity ownIdentity, String context) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "RemoveContext", "Identity", ownIdentity.getIdentifier(), "Context", context)); + if (!replies.get("Message").equals("ContextRemoved")) { + throw new FcpException("WebOfTrust Plugin did not reply with “ContextRemoved” message!"); + } + } + + /** + * Sets the given property for the given identity. + * + * @param ownIdentity + * The identity to set a property for + * @param property + * The name of the property to set + * @param value + * The value of the property to set + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public void setProperty(OwnIdentity ownIdentity, String property, String value) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "SetProperty", "Identity", ownIdentity.getIdentifier(), "Property", property, "Value", value)); + if (!replies.get("Message").equals("PropertyAdded")) { + throw new FcpException("WebOfTrust Plugin did not reply with “PropertyAdded” message!"); + } + } + + /** + * Returns the value of the given property for the given identity. + * + * @param ownIdentity + * The identity to get a property for + * @param property + * The name of the property to get + * @return The value of the property + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public String getProperty(OwnIdentity ownIdentity, String property) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "GetProperty", "Identity", ownIdentity.getIdentifier(), "Property", property)); + if (!replies.get("Message").equals("PropertyValue")) { + throw new FcpException("WebOfTrust Plugin did not reply with “PropertyValue” message!"); + } + return replies.get("Property"); + } + + /** + * Removes the given property from the given identity. + * + * @param ownIdentity + * The identity to remove a property from + * @param property + * The name of the property to remove + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public void removeProperty(OwnIdentity ownIdentity, String property) throws IOException, FcpException { + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", createParameters("Message", "RemoveProperty", "Identity", ownIdentity.getIdentifier(), "Property", property)); + if (!replies.get("Message").equals("PropertyRemoved")) { + throw new FcpException("WebOfTrust Plugin did not reply with “PropertyRemoved” message!"); + } + } + // // PRIVATE METHODS // @@ -330,6 +488,26 @@ public class WebOfTrustPlugin { return requestUri; } + /** + * {@inheritDoc} + */ + @Override + public boolean equals(Object obj) { + if ((obj == null) || (obj.getClass() != this.getClass())) { + return false; + } + Identity identity = (Identity) obj; + return identifier.equals(identity.identifier); + } + + /** + * {@inheritDoc} + */ + @Override + public int hashCode() { + return identifier.hashCode(); + } + } /**