Generate key without docname.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / FreenetInterface.java
index 490c253..1098069 100644 (file)
 
 package net.pterodactylus.sone.core;
 
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import net.pterodactylus.util.logging.Logging;
 import net.pterodactylus.util.service.AbstractService;
+import freenet.client.FetchException;
+import freenet.client.FetchResult;
 import freenet.client.HighLevelSimpleClient;
+import freenet.keys.FreenetURI;
 import freenet.node.Node;
 
 /**
@@ -28,7 +35,11 @@ import freenet.node.Node;
  */
 public class FreenetInterface extends AbstractService {
 
+       /** The logger. */
+       private static final Logger logger = Logging.getLogger(FreenetInterface.class);
+
        /** The node to interact with. */
+       @SuppressWarnings("unused")
        private final Node node;
 
        /** The high-level client to use for requests. */
@@ -39,10 +50,46 @@ public class FreenetInterface extends AbstractService {
         *
         * @param node
         *            The node to interact with
+        * @param client
+        *            The high-level client
         */
        public FreenetInterface(Node node, HighLevelSimpleClient client) {
                this.node = node;
                this.client = client;
        }
 
+       //
+       // ACTIONS
+       //
+
+       /**
+        * Fetches the given URI.
+        *
+        * @param uri
+        *            The URI to fetch
+        * @return The result of the fetch, or {@code null} if an error occured
+        */
+       public FetchResult fetchUri(FreenetURI uri) {
+               logger.entering(FreenetInterface.class.getName(), "fetchUri(FreenetURI)", uri);
+               FetchResult fetchResult = null;
+               try {
+                       fetchResult = client.fetch(uri);
+               } catch (FetchException fe1) {
+                       logger.log(Level.WARNING, "Could not fetch “" + uri + "”!", fe1);
+               } finally {
+                       logger.exiting(FreenetInterface.class.getName(), "fetchUri(FreenetURI)", fetchResult);
+               }
+               return fetchResult;
+       }
+
+       /**
+        * Creates a key pair.
+        *
+        * @return The request key at index 0, the insert key at index 1
+        */
+       public String[] generateKeyPair() {
+               FreenetURI[] keyPair = client.generateKeyPair("");
+               return new String[] { keyPair[1].toString(), keyPair[0].toString() };
+       }
+
 }