first version of request table
[jSite2.git] / src / net / pterodactylus / jsite / core / CoreImpl.java
index 9c68d44..73039f4 100644 (file)
@@ -20,6 +20,7 @@
 package net.pterodactylus.jsite.core;
 
 import java.io.IOException;
+import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -187,6 +188,30 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
        }
 
        /**
+        * Notifies all listeners that a node was added to the core.
+        * 
+        * @param node
+        *            The node that was added
+        */
+       private void fireNodeAdded(Node node) {
+               for (CoreListener coreListener: coreListeners) {
+                       coreListener.nodeAdded(node);
+               }
+       }
+
+       /**
+        * Notifies all listeners that a node was removed from the core.
+        * 
+        * @param node
+        *            The node that was removed
+        */
+       private void fireNodeRemoved(Node node) {
+               for (CoreListener coreListener: coreListeners) {
+                       coreListener.nodeRemoved(node);
+               }
+       }
+
+       /**
         * Notifies all listeners that a connection to the given node is now being
         * established.
         * 
@@ -212,6 +237,20 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
        }
 
        /**
+        * Notifies all listeners that a connection to a node has failed.
+        * 
+        * @param node
+        *            The node that could not be connected
+        * @param cause
+        *            The cause of the failure
+        */
+       private void fireNodeConnectionFailed(Node node, Throwable cause) {
+               for (CoreListener coreListener: coreListeners) {
+                       coreListener.nodeConnectionFailed(node, cause);
+               }
+       }
+
+       /**
         * Notifies all listeners that the given node was disconnected.
         * 
         * @param node
@@ -229,14 +268,24 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
        /**
         * Notifies all listeners that a request was added to a node.
         * 
-        * @param node
-        *            The node the request was added to
         * @param request
         *            The request that was added
         */
-       private void fireRequestAdded(Node node, Request request) {
+       private void fireRequestAdded(Request request) {
                for (CoreListener coreListener: coreListeners) {
-                       coreListener.requestAdded(node, request);
+                       coreListener.requestAdded(request);
+               }
+       }
+
+       /**
+        * Notifies all listeners that a request progressed.
+        * 
+        * @param request
+        *            The request
+        */
+       private void fireRequestProgressed(Request request) {
+               for (CoreListener coreListener: coreListeners) {
+                       coreListener.requestProgressed(request);
                }
        }
 
@@ -351,9 +400,22 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
        /**
         * {@inheritDoc}
         */
+       public boolean addNode(Node node) throws UnknownHostException {
+               return nodeManager.addNode(node);
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       public void removeNode(Node node) {
+               nodeManager.removeNode(node);
+       }
+
+       /**
+        * {@inheritDoc}
+        */
        public void connectToNode(Node node) {
                fireNodeConnecting(node);
-               nodeManager.addNode(node);
                nodeManager.connect(node);
        }
 
@@ -391,6 +453,20 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
        /**
         * {@inheritDoc}
         */
+       public void nodeAdded(Node node) {
+               fireNodeAdded(node);
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       public void nodeRemoved(Node node) {
+               fireNodeRemoved(node);
+       }
+
+       /**
+        * {@inheritDoc}
+        */
        public void nodeConnected(Node node) {
                fireNodeConnected(node);
        }
@@ -398,6 +474,13 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
        /**
         * {@inheritDoc}
         */
+       public void nodeConnectionFailed(Node node, Throwable cause) {
+               fireNodeConnectionFailed(node, cause);
+       }
+
+       /**
+        * {@inheritDoc}
+        */
        public void nodeDisconnected(Node node, Throwable throwable) {
                fireNodeDisconnected(node, throwable);
        }
@@ -409,8 +492,22 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
        /**
         * {@inheritDoc}
         */
-       public void requestAdded(Node node, Request request) {
-               fireRequestAdded(node, request);
+       public void requestAdded(Request request) {
+               fireRequestAdded(request);
+       }
+
+       /**
+        * @see net.pterodactylus.jsite.core.RequestListener#requestProgressed(Request)
+        */
+       public void requestProgressed(Request request) {
+               fireRequestProgressed(request);
+       }
+
+       /**
+        * @see net.pterodactylus.jsite.core.RequestListener#requestRemoved(net.pterodactylus.jsite.core.Request)
+        */
+       public void requestRemoved(Request request) {
+               /* TODO */
        }
 
 }