Add method that fetches an URI.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 12 Oct 2010 14:50:36 +0000 (16:50 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 12 Oct 2010 14:50:36 +0000 (16:50 +0200)
src/main/java/net/pterodactylus/sone/core/FreenetInterface.java

index 9214d85..8f9ec8f 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,6 +35,9 @@ 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. */
        private final Node node;
 
@@ -47,4 +57,24 @@ public class FreenetInterface extends AbstractService {
                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) {
+               try {
+                       return client.fetch(uri);
+               } catch (FetchException fe1) {
+                       logger.log(Level.WARNING, "Could not fetch “" + uri + "”!", fe1);
+                       return null;
+               }
+       }
+
 }