X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FCoreImpl.java;h=bc62a0bbe0ddc056322cd4bf1bc1416bdea9ac04;hb=2fcb1508592451a972b45bef42f86db998d9be6f;hp=cff97c6aa333c144a42aceb21a20f69ff0a1d370;hpb=c63257e8cc0ba1a5aca9364b22171abe7279d479;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/core/CoreImpl.java b/src/net/pterodactylus/jsite/core/CoreImpl.java index cff97c6..bc62a0b 100644 --- a/src/net/pterodactylus/jsite/core/CoreImpl.java +++ b/src/net/pterodactylus/jsite/core/CoreImpl.java @@ -21,7 +21,6 @@ package net.pterodactylus.jsite.core; 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; @@ -35,13 +34,13 @@ import net.pterodactylus.util.logging.Logging; * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> */ -public class CoreImpl implements Core, NodeListener, RequestListener { +public class CoreImpl implements Core, NodeListener, RequestListener, InsertListener { /** The logger. */ private static final Logger logger = Logging.getLogger(CoreImpl.class.getName()); - /** The core listeners. */ - private final List coreListeners = new ArrayList(); + /** The core listener support. */ + private final CoreListenerSupport coreListenerSupport = new CoreListenerSupport(); /** Thread pool. */ private Executor threadPool = Executors.newCachedThreadPool(); @@ -57,6 +56,9 @@ public class CoreImpl implements Core, NodeListener, RequestListener { @SuppressWarnings("unused") private RequestManager requestManager; + /** The insert manager. */ + private InsertManager insertManager; + // // LISTENER MANAGEMENT // @@ -66,7 +68,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { */ public void addCoreListener(CoreListener coreListener) { logger.log(Level.FINEST, "adding core listener: " + coreListener); - coreListeners.add(coreListener); + coreListenerSupport.addListener(coreListener); } /** @@ -74,265 +76,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { */ public void removeCoreListener(CoreListener coreListener) { logger.log(Level.FINEST, "removing core listener: " + coreListener); - coreListeners.remove(coreListener); - } - - /** - * Notifies all listeners that the projects were loaded successfully. - * - * @param directory - * The directory the projects were loaded from - */ - private void fireLoadingProjectsDone(String directory) { - logger.log(Level.FINEST, "firing loadingProjectsDone event with [directory=" + directory + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.loadingProjectsDone(directory); - } - } - - /** - * Notifies all core listeners that loading the projects from the given - * directory has failed. - * - * @param directory - * The directory the projects were tried to load from - * @param throwable - * The exception that occured when loading projects - */ - private void fireLoadingProjectsFailed(String directory, Throwable throwable) { - logger.log(Level.FINEST, "firing loadingProjectsFailed event with [directory=" + directory + ",throwable=" + throwable + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.loadingProjectsFailed(directory, throwable); - } - } - - /** - * Notifies all listeners that the projects were successfully saved. - * - * @param directory - * The directory the projects were saved to - */ - private void fireSavingProjectsDone(String directory) { - logger.log(Level.FINEST, "firing savingProjectsDone event with [directory=" + directory + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.savingProjectsDone(directory); - } - } - - /** - * Notifies all listeners that the projects could not be saved. - * - * @param directory - * The directory the projects were to be saved to - * @param throwable - * The exception that occured when saving the projects - */ - private void fireSavingProjectsFailed(String directory, Throwable throwable) { - logger.log(Level.FINEST, "firing savingProjectsFailed event with [directory=" + directory + ",throwable=" + throwable + "]"); - 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) { - logger.log(Level.FINEST, "firing projectAdded event with [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) { - logger.log(Level.FINEST, "firing projectCloned event with [clonedProject=" + clonedProject + ",projectClone=" + 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) { - logger.log(Level.FINEST, "firing projectRemoved event with [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) { - logger.log(Level.FINEST, "firing loadingNodesDone event with [directory=" + directory + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.loadingNodesDone(directory); - } - } - - /** - * Notifies all listeners that loading the nodes has failed. - * - * @param directory - * The directory the nodes were loaded from - * @param throwable - * The exception that occured while loading the nodes - */ - private void fireLoadingNodesFailed(String directory, Throwable throwable) { - logger.log(Level.FINEST, "firing loadingNodesFailed event with [directory=" + directory + ",throwable=" + throwable + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.loadingNodesFailed(directory, throwable); - } - } - - /** - * Notifies all listeners that the nodes were saved successfully. - * - * @param directory - * The directory the nodes were saved to - */ - private void fireSavingNodesDone(String directory) { - logger.log(Level.FINEST, "firing savingNodesDone event with [directory=" + directory + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.savingNodesDone(directory); - } - } - - /** - * Notifies all listeners that saving the nodes has failed. - * - * @param directory - * The directory the nodes were saved to - * @param throwable - * The exception that occured while saving the nodes - */ - private void fireSavingNodesFailed(String directory, Throwable throwable) { - logger.log(Level.FINEST, "firing savingNodesFailed event with [directory=" + directory + ",throwable=" + throwable + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.savingProjectsFailed(directory, throwable); - } - } - - /** - * Notifies all core listeners that the core has loaded and is ready to run. - */ - private void fireCoreLoaded() { - logger.log(Level.FINEST, "firing coreLoaded event"); - for (CoreListener coreListener : coreListeners) { - coreListener.coreLoaded(); - } - } - - /** - * Notifies all listeners that the core was stopped. - */ - private void fireCoreStopped() { - logger.log(Level.FINEST, "firing coreStopped event"); - for (CoreListener coreListener : coreListeners) { - coreListener.coreStopped(); - } - } - - /** - * Notifies all listeners that a node was added to the core. - * - * @param node - * The node that was added - */ - private void fireNodeAdded(Node node) { - logger.log(Level.FINEST, "firing nodeAdded event with [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) { - logger.log(Level.FINEST, "firing nodeRemoved event with [node=" + node + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.nodeRemoved(node); - } - } - - /** - * Notifies all listeners that a connection to the given node is now being - * established. - * - * @param node - * The node that is being connected to - */ - private void fireNodeConnecting(Node node) { - logger.log(Level.FINEST, "firing nodeConnecting event with [node=" + node + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.nodeConnecting(node); - } - } - - /** - * Notifies all listeners that the given node is now connected. - * - * @param node - * The node that is now connected - */ - private void fireNodeConnected(Node node) { - logger.log(Level.FINEST, "firing nodeConnected event with [node=" + node + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.nodeConnected(node); - } - } - - /** - * 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) { - logger.log(Level.FINEST, "firing nodeConnectionFailed event with [node=" + node + ",cause=" + cause + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.nodeConnectionFailed(node, cause); - } - } - - /** - * Notifies all listeners that the given node was disconnected. - * - * @param node - * The node that is now disconnected - * @param throwable - * The exception that caused the disconnect, or null - * if there was no exception - */ - private void fireNodeDisconnected(Node node, Throwable throwable) { - logger.log(Level.FINEST, "firing nodeDisconnected event with [node=" + node + ",throwable=" + throwable + "]"); - for (CoreListener coreListener : coreListeners) { - coreListener.nodeDisconnected(node, throwable); - } + coreListenerSupport.removeListener(coreListener); } // @@ -395,6 +139,16 @@ public class CoreImpl implements Core, NodeListener, RequestListener { } /** + * Sets the insert manager to use. + * + * @param insertManager + * The insert manager to use + */ + public void setInsertManager(InsertManager insertManager) { + this.insertManager = insertManager; + } + + /** * {@inheritDoc} */ public List getNodes() { @@ -405,7 +159,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * {@inheritDoc} */ public boolean isNodeConnected(Node node) { - return nodeManager.hasNode(node); + return nodeManager.isNodeConnected(node); } /** @@ -426,17 +180,17 @@ public class CoreImpl implements Core, NodeListener, RequestListener { logger.log(Level.INFO, "starting core…"); try { nodeManager.load(); - fireLoadingNodesDone(nodeManager.getDirectory()); + coreListenerSupport.fireLoadingNodesDone(nodeManager.getDirectory()); } catch (IOException ioe1) { - fireLoadingNodesFailed(nodeManager.getDirectory(), ioe1); + coreListenerSupport.fireLoadingNodesFailed(nodeManager.getDirectory(), ioe1); } try { projectManager.load(); - fireLoadingProjectsDone(projectManager.getDirectory()); + coreListenerSupport.fireLoadingProjectsDone(projectManager.getDirectory()); } catch (IOException ioe1) { - fireLoadingProjectsFailed(projectManager.getDirectory(), ioe1); + coreListenerSupport.fireLoadingProjectsFailed(projectManager.getDirectory(), ioe1); } - fireCoreLoaded(); + coreListenerSupport.fireCoreLoaded(); } /** @@ -446,17 +200,17 @@ public class CoreImpl implements Core, NodeListener, RequestListener { logger.log(Level.INFO, "stopping core…"); try { projectManager.save(); - fireSavingProjectsDone(projectManager.getDirectory()); + coreListenerSupport.fireSavingProjectsDone(projectManager.getDirectory()); } catch (IOException ioe1) { - fireSavingProjectsFailed(projectManager.getDirectory(), ioe1); + coreListenerSupport.fireSavingProjectsFailed(projectManager.getDirectory(), ioe1); } try { nodeManager.save(); - fireSavingNodesDone(nodeManager.getDirectory()); + coreListenerSupport.fireSavingNodesDone(nodeManager.getDirectory()); } catch (IOException ioe1) { - fireSavingNodesFailed(nodeManager.getDirectory(), ioe1); + coreListenerSupport.fireSavingNodesFailed(nodeManager.getDirectory(), ioe1); } - fireCoreStopped(); + coreListenerSupport.fireCoreStopped(); } /** @@ -480,7 +234,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { */ public void connectToNode(Node node) { logger.log(Level.FINEST, "connectToNode(node=" + node + ")"); - fireNodeConnecting(node); + coreListenerSupport.fireNodeConnecting(node); nodeManager.connect(node); } @@ -498,7 +252,15 @@ public class CoreImpl implements Core, NodeListener, RequestListener { public void createProject() throws IOException, JSiteException { logger.log(Level.FINEST, "createProject()"); Project newProject = projectManager.createProject(); - fireProjectAdded(newProject); + coreListenerSupport.fireProjectAdded(newProject); + } + + /** + * {@inheritDoc} + */ + public void insertProject(Node node, Project project) { + logger.log(Level.FINEST, "insertProject(node=" + node + ", project=" + project + ")"); + insertManager.insertProject(project, node); } /** @@ -507,7 +269,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { public void cloneProject(Project project) { logger.log(Level.FINEST, "cloneProject(project=" + project + ")"); Project projectClone = projectManager.cloneProject(project); - fireProjectCloned(project, projectClone); + coreListenerSupport.fireProjectCloned(project, projectClone); } /** @@ -516,7 +278,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener { public void removeProject(Project project) { logger.log(Level.FINEST, "removeProject(project=" + project + ")"); projectManager.removeProject(project); - fireProjectRemoved(project); + coreListenerSupport.fireProjectRemoved(project); } // @@ -549,35 +311,35 @@ public class CoreImpl implements Core, NodeListener, RequestListener { * {@inheritDoc} */ public void nodeAdded(Node node) { - fireNodeAdded(node); + coreListenerSupport.fireNodeAdded(node); } /** * {@inheritDoc} */ public void nodeRemoved(Node node) { - fireNodeRemoved(node); + coreListenerSupport.fireNodeRemoved(node); } /** * {@inheritDoc} */ public void nodeConnected(Node node) { - fireNodeConnected(node); + coreListenerSupport.fireNodeConnected(node); } /** * {@inheritDoc} */ public void nodeConnectionFailed(Node node, Throwable cause) { - fireNodeConnectionFailed(node, cause); + coreListenerSupport.fireNodeConnectionFailed(node, cause); } /** * {@inheritDoc} */ public void nodeDisconnected(Node node, Throwable throwable) { - fireNodeDisconnected(node, throwable); + coreListenerSupport.fireNodeDisconnected(node, throwable); } // @@ -620,4 +382,50 @@ public class CoreImpl implements Core, NodeListener, RequestListener { /* TODO - find project and process request */ } + // + // INTERFACE InsertListener + // + + /** + * {@inheritDoc} + */ + public void insertAdded(Insert insert) { + /* TODO */ + } + + /** + * {@inheritDoc} + */ + public void insertRemoved(Insert insert) { + /* TODO */ + } + + /** + * {@inheritDoc} + */ + public void insertStarted(Insert insert) { + /* TODO */ + } + + /** + * {@inheritDoc} + */ + public void insertProgressed(Insert insert) { + /* TODO */ + } + + /** + * {@inheritDoc} + */ + public void insertGeneratedURI(Insert insert, String uri) { + /* TODO */ + } + + /** + * {@inheritDoc} + */ + public void insertFinished(Insert insert) { + /* TODO */ + } + }