implement node addition and removal events
[jSite2.git] / src / net / pterodactylus / jsite / core / CoreImpl.java
index 9c68d44..f3ac5c0 100644 (file)
@@ -187,6 +187,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.
         * 
@@ -351,6 +375,22 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
        /**
         * {@inheritDoc}
         */
+       public void addNode(Node node) {
+               nodeManager.addNode(node);
+               fireNodeAdded(node);
+       }
+
+       /**
+        * {@inheritDoc}
+        */
+       public void removeNode(Node node) {
+               nodeManager.removeNode(node);
+               fireNodeRemoved(node);
+       }
+
+       /**
+        * {@inheritDoc}
+        */
        public void connectToNode(Node node) {
                fireNodeConnecting(node);
                nodeManager.addNode(node);
@@ -391,6 +431,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);
        }