X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FCoreImpl.java;h=9073655a007ce5468aef8f0ff22c372a862816c4;hb=f42b615dcbe440d9908385754948d6448a3b67ff;hp=9c68d441dd0f96cbdce0fff6c6db0313d5bccd87;hpb=7ccb1fcb746198ee1417bb2f92c846132bf6bc96;p=jSite2.git
diff --git a/src/net/pterodactylus/jsite/core/CoreImpl.java b/src/net/pterodactylus/jsite/core/CoreImpl.java
index 9c68d44..9073655 100644
--- a/src/net/pterodactylus/jsite/core/CoreImpl.java
+++ b/src/net/pterodactylus/jsite/core/CoreImpl.java
@@ -20,14 +20,17 @@
package net.pterodactylus.jsite.core;
import java.io.IOException;
+import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
+import net.pterodactylus.jsite.project.Project;
+import net.pterodactylus.jsite.project.ProjectManager;
+
/**
* The core of jSite.
*
* @author David âBombeâ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class CoreImpl implements Core, NodeListener, RequestListener {
@@ -117,6 +120,41 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
}
/**
+ * Notifies all listeners that a project was added.
+ *
+ * @param project
+ * The project that was added
+ */
+ private void fireProjectAdded(Project project) {
+ for (CoreListener coreListener: coreListeners) {
+ coreListener.projectAdded(project);
+ }
+ }
+
+ /**
+ * Notifies all listeners that a project was cloned.
+ * @param clonedProject The project that was cloned
+ * @param projectClone The clone of the project
+ */
+ private void fireProjectCloned(Project clonedProject, Project projectClone) {
+ for (CoreListener coreListener: coreListeners) {
+ coreListener.projectCloned(clonedProject, projectClone);
+ }
+ }
+
+ /**
+ * Notifies all listeners that a project was removed.
+ *
+ * @param project
+ * The project that was removed
+ */
+ private void fireProjectRemoved(Project project) {
+ for (CoreListener coreListener: coreListeners) {
+ coreListener.projectRemoved(project);
+ }
+ }
+
+ /**
* Notifies all listeners that the nodes were successfully loaded.
*
* @param directory
@@ -187,6 +225,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,31 +274,31 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
}
/**
- * Notifies all listeners that the given node was disconnected.
+ * Notifies all listeners that a connection to a node has failed.
*
* @param node
- * The node that is now disconnected
- * @param throwable
- * The exception that caused the disconnect, or null
- * if there was no exception
+ * The node that could not be connected
+ * @param cause
+ * The cause of the failure
*/
- private void fireNodeDisconnected(Node node, Throwable throwable) {
+ private void fireNodeConnectionFailed(Node node, Throwable cause) {
for (CoreListener coreListener: coreListeners) {
- coreListener.nodeDisconnected(node, throwable);
+ coreListener.nodeConnectionFailed(node, cause);
}
}
/**
- * Notifies all listeners that a request was added to a node.
+ * Notifies all listeners that the given node was disconnected.
*
* @param node
- * The node the request was added to
- * @param request
- * The request that was added
+ * The node that is now disconnected
+ * @param throwable
+ * The exception that caused the disconnect, or null
+ * if there was no exception
*/
- private void fireRequestAdded(Node node, Request request) {
+ private void fireNodeDisconnected(Node node, Throwable throwable) {
for (CoreListener coreListener: coreListeners) {
- coreListener.requestAdded(node, request);
+ coreListener.nodeDisconnected(node, throwable);
}
}
@@ -306,6 +368,13 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
return nodeManager.hasNode(node);
}
+ /**
+ * {@inheritDoc}
+ */
+ public List getProjects() {
+ return projectManager.getProjects();
+ }
+
//
// ACTIONS
//
@@ -351,9 +420,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);
}
@@ -364,6 +446,30 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
nodeManager.disconnect(node);
}
+ /**
+ * {@inheritDoc}
+ */
+ public void createProject() throws IOException, JSiteException {
+ Project newProject = projectManager.createProject();
+ fireProjectAdded(newProject);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void cloneProject(Project project) {
+ Project projectClone = projectManager.cloneProject(project);
+ fireProjectCloned(project, projectClone);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void removeProject(Project project) {
+ projectManager.removeProject(project);
+ fireProjectRemoved(project);
+ }
+
//
// PRIVATE METHODS
//
@@ -391,6 +497,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 +518,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 +536,37 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
/**
* {@inheritDoc}
*/
- public void requestAdded(Node node, Request request) {
- fireRequestAdded(node, request);
+ public void requestAdded(Request request) {
+ /* TODO - find project and process request */
+ }
+
+ /**
+ * @see net.pterodactylus.jsite.core.RequestListener#requestProgressed(Request)
+ */
+ public void requestProgressed(Request request) {
+ /* TODO - find project and process request */
+ }
+
+ /**
+ * @see net.pterodactylus.jsite.core.RequestListener#requestRemoved(net.pterodactylus.jsite.core.Request)
+ */
+ public void requestRemoved(Request request) {
+ /* TODO - find project and process request */
+ }
+
+ /**
+ * @see net.pterodactylus.jsite.core.RequestListener#requestGeneratedURI(net.pterodactylus.jsite.core.Request,
+ * java.lang.String)
+ */
+ public void requestGeneratedURI(Request request, String uri) {
+ /* TODO - find project and process request */
+ }
+
+ /**
+ * @see net.pterodactylus.jsite.core.RequestListener#requestFinished(net.pterodactylus.jsite.core.Request)
+ */
+ public void requestFinished(Request request) {
+ /* TODO - find project and process request */
}
}