X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FCoreImpl.java;h=8f26a673c69c455eea60d74a2ec686e289f80abb;hb=e1e349bae97feb779fc692eb03c2fea0e0e612c9;hp=d0e78b96d7c1d08769653db46045dfb3e985f3a7;hpb=cf127faffabd3f07b0acc6de9ea746059d571b56;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/core/CoreImpl.java b/src/net/pterodactylus/jsite/core/CoreImpl.java index d0e78b9..8f26a67 100644 --- a/src/net/pterodactylus/jsite/core/CoreImpl.java +++ b/src/net/pterodactylus/jsite/core/CoreImpl.java @@ -23,9 +23,11 @@ import java.io.IOException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; -import net.pterodactylus.jsite.project.Project; -import net.pterodactylus.jsite.project.ProjectManager; +import net.pterodactylus.jsite.core.project.Project; +import net.pterodactylus.jsite.core.project.ProjectManager; /** * The core of jSite. @@ -37,6 +39,9 @@ public class CoreImpl implements Core, NodeListener, RequestListener { /** The core listeners. */ private final List coreListeners = new ArrayList(); + /** Thread pool. */ + private Executor threadPool = Executors.newCachedThreadPool(); + /** The project manager. */ private ProjectManager projectManager; @@ -73,7 +78,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The directory the projects were loaded from */ private void fireLoadingProjectsDone(String directory) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.loadingProjectsDone(directory); } } @@ -88,7 +93,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The exception that occured when loading projects */ private void fireLoadingProjectsFailed(String directory, Throwable throwable) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.loadingProjectsFailed(directory, throwable); } } @@ -100,7 +105,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The directory the projects were saved to */ private void fireSavingProjectsDone(String directory) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.savingProjectsDone(directory); } } @@ -114,19 +119,57 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The exception that occured when saving the projects */ private void fireSavingProjectsFailed(String directory, Throwable throwable) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.savingProjectsFailed(directory, throwable); } } /** + * 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 * The directory the nodes were loaded from */ private void fireLoadingNodesDone(String directory) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.loadingNodesDone(directory); } } @@ -140,7 +183,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The exception that occured while loading the nodes */ private void fireLoadingNodesFailed(String directory, Throwable throwable) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.loadingNodesFailed(directory, throwable); } } @@ -152,7 +195,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The directory the nodes were saved to */ private void fireSavingNodesDone(String directory) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.savingNodesDone(directory); } } @@ -166,7 +209,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The exception that occured while saving the nodes */ private void fireSavingNodesFailed(String directory, Throwable throwable) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.savingProjectsFailed(directory, throwable); } } @@ -175,7 +218,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * Notifies all core listeners that the core has loaded and is ready to run. */ private void fireCoreLoaded() { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.coreLoaded(); } } @@ -184,7 +227,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * Notifies all listeners that the core was stopped. */ private void fireCoreStopped() { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.coreStopped(); } } @@ -196,7 +239,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The node that was added */ private void fireNodeAdded(Node node) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.nodeAdded(node); } } @@ -208,7 +251,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The node that was removed */ private void fireNodeRemoved(Node node) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.nodeRemoved(node); } } @@ -221,7 +264,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The node that is being connected to */ private void fireNodeConnecting(Node node) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.nodeConnecting(node); } } @@ -233,7 +276,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The node that is now connected */ private void fireNodeConnected(Node node) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.nodeConnected(node); } } @@ -247,7 +290,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * The cause of the failure */ private void fireNodeConnectionFailed(Node node, Throwable cause) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.nodeConnectionFailed(node, cause); } } @@ -262,7 +305,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * if there was no exception */ private void fireNodeDisconnected(Node node, Throwable throwable) { - for (CoreListener coreListener: coreListeners) { + for (CoreListener coreListener : coreListeners) { coreListener.nodeDisconnected(node, throwable); } } @@ -272,6 +315,13 @@ public class CoreImpl implements Core, NodeListener, RequestListener { // /** + * {@inheritDoc} + */ + public Executor getThreadPool() { + return threadPool; + } + + /** * Returns the project manager. * * @return The project manager @@ -414,8 +464,25 @@ public class CoreImpl implements Core, NodeListener, RequestListener { /** * {@inheritDoc} */ - public Project createProject() throws IOException, JSiteException { - return projectManager.createProject(); + 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); } //