Add trust, score, and rank to Identity.
[jFCPlib.git] / src / net / pterodactylus / fcp / plugin / WebOfTrustPlugin.java
index 7e5cc5a..ba9ad3a 100644 (file)
@@ -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<String, String> parameters = new HashMap<String, String>();
+               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<String, String> 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.
         *
@@ -113,6 +171,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 +189,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 +232,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;
+               }
+
        }
 
        /**