X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Ffcp%2Fplugin%2FWebOfTrustPlugin.java;h=df6991eb6aabdc2bac0e005fa41df0b8a4ef72d2;hb=d6e61f56d4907ddcdf1f136229ee3396de6c3cc2;hp=7e5cc5ac41256dc97e6f812797f9d40db97c13f8;hpb=5a417401b78b76267ae4841b7b363624ec27464e;p=jFCPlib.git diff --git a/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java b/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java index 7e5cc5a..df6991e 100644 --- a/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java +++ b/src/net/pterodactylus/fcp/plugin/WebOfTrustPlugin.java @@ -50,6 +50,64 @@ public class WebOfTrustPlugin { } /** + * Creates a new identity. + * + * @param nickname + * The nickname of the new identity + * @param context + * The context for the new identity + * @param publishTrustList + * {@code true} if the new identity should publish its trust list + * @return The new identity + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public OwnIdentity createIdentity(String nickname, String context, boolean publishTrustList) throws IOException, FcpException { + return createIdentity(nickname, context, publishTrustList, null, null); + } + + /** + * Creates a new identity from the given request and insert URI. + * + * @param nickname + * The nickname of the new identity + * @param context + * The context for the new identity + * @param publishTrustList + * {@code true} if the new identity should publish its trust list + * @param requestUri + * The request URI of the identity + * @param insertUri + * The insert URI of the identity + * @return The new identity + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public OwnIdentity createIdentity(String nickname, String context, boolean publishTrustList, String requestUri, String insertUri) throws IOException, FcpException { + Map parameters = new HashMap(); + parameters.put("Message", "CreateIdentity"); + parameters.put("Nickname", nickname); + parameters.put("Context", context); + parameters.put("PublishTrustList", String.valueOf(publishTrustList)); + if ((requestUri != null) && (insertUri != null)) { + parameters.put("RequestURI", requestUri); + parameters.put("InsertURI", insertUri); + } + Map replies = fcpClient.sendPluginMessage("plugins.WoT.WoT", parameters); + if (!replies.get("Message").equals("IdentityCreated")) { + throw new FcpException("WebOfTrust Plugin did not reply with “IdentityCreated” message!"); + } + String identifier = replies.get("ID"); + String newRequestUri = replies.get("RequestURI"); + String newInsertUri = replies.get("InsertURI"); + return new OwnIdentity(identifier, nickname, newRequestUri, newInsertUri); + } + + /** * Returns all own identities of the web-of-trust plugins. Almost all other * commands require an {@link OwnIdentity} to return meaningful values. * @@ -75,6 +133,48 @@ public class WebOfTrustPlugin { return ownIdentities; } + /** + * Returns the identity with the given identifier and the trust values + * depending on the given own identity. + * + * @param ownIdentity + * The own identity that is used to calculate trust values + * @param identifier + * The identifier of the identity to get + * @return The request identity + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public Identity getIdentity(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!"); + } + String nickname = replies.get("Nickname"); + String requestUri = replies.get("RequestURI"); + 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 Identity(identifier, nickname, requestUri, trust, score, rank); + } + // // PRIVATE METHODS // @@ -113,6 +213,15 @@ 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. * @@ -122,11 +231,20 @@ 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) { + public Identity(String identifier, String nickname, String requestUri, Byte trust, Integer score, Integer rank) { this.identifier = identifier; this.nickname = nickname; this.requestUri = requestUri; + this.trust = trust; + this.score = score; + this.rank = rank; } /** @@ -156,6 +274,36 @@ public class WebOfTrustPlugin { return requestUri; } + /** + * Returns the trust value of this identity. + * + * @return This identity’s trust value, or {@code null} if this + * identity’s trust value is not known + */ + public Byte getTrust() { + return trust; + } + + /** + * Returns the score value of this identity. + * + * @return This identity’s score value, or {@code null} if this + * identity’s score value is not known + */ + public Integer getScore() { + return score; + } + + /** + * Returns the rank of this identity. + * + * @return This identity’s rank, or {@code null} if this identity’s rank + * is not known + */ + public Integer getRank() { + return rank; + } + } /** @@ -163,7 +311,16 @@ public class WebOfTrustPlugin { * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> */ - public static class OwnIdentity extends Identity { + public static class OwnIdentity { + + /** The identity’s identifier. */ + private final String identifier; + + /** The identity’s nickname. */ + private final String nickname; + + /** The identity’s request URI. */ + private final String requestUri; /** The identity’s insert URI. */ private final String insertUri; @@ -181,11 +338,40 @@ public class WebOfTrustPlugin { * The insert URI of the identity */ public OwnIdentity(String identifier, String nickname, String requestUri, String insertUri) { - super(identifier, nickname, requestUri); + this.identifier = identifier; + this.nickname = nickname; + this.requestUri = requestUri; this.insertUri = insertUri; } /** + * Returns the identifier of this identity. + * + * @return This identity’s identifier + */ + public String getIdentifier() { + return identifier; + } + + /** + * Returns the nickname of this identity. + * + * @return This identity’s nickname + */ + public String getNickname() { + return nickname; + } + + /** + * Returns the request URI of this identity. + * + * @return This identity’s request URI + */ + public String getRequestUri() { + return requestUri; + } + + /** * Returns the insert URI of this identity. * * @return This identity’s insert URI