X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FCore.java;h=f617717868dd04faaf36b71b70e11c9f9fe4ac21;hb=a238aa37f5716eb715f18a37a436d3ca792e33b0;hp=3f0067868b286c0b15ef64a2ef19508229ebe108;hpb=b735dd79e051542c424419474798a006039b2cfc;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/core/Core.java b/src/net/pterodactylus/jsite/core/Core.java index 3f00678..f617717 100644 --- a/src/net/pterodactylus/jsite/core/Core.java +++ b/src/net/pterodactylus/jsite/core/Core.java @@ -19,6 +19,7 @@ package net.pterodactylus.jsite.core; +import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -33,8 +34,14 @@ public class Core { /** The core listeners. */ private final List coreListeners = new ArrayList(); + /** The project manager. */ + private ProjectManager projectManager; + /** The node list. */ - private List nodeList = new ArrayList(); + private List configuredNodes = new ArrayList(); + + /** List of currently connected nodes. */ + private List connectedNodes = new ArrayList(); /** * Creates a new core. @@ -67,6 +74,19 @@ public class Core { } /** + * 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 + */ + private void fireLoadingProjectsFailed(String directory) { + for (CoreListener coreListener: coreListeners) { + coreListener.loadingProjectsFailed(directory); + } + } + + /** * Notifies all core listeners that the core has loaded and is ready to run. */ private void fireCoreLoaded() { @@ -80,12 +100,43 @@ public class Core { // /** + * Returns the project manager. + * + * @return The project manager + */ + public ProjectManager getProjectManager() { + return projectManager; + } + + /** + * Sets the project manager to use. + * + * @param projectManager + * The project manager to use + */ + public void setProjectManager(ProjectManager projectManager) { + this.projectManager = projectManager; + } + + /** * Returns the list of all configured nodes. * * @return All configured nodes */ - public List getNodeList() { - return nodeList; + public List getNodes() { + return configuredNodes; + } + + /** + * Returns whether the core is currently connected to the given node. + * + * @param node + * The node to check + * @return true if the core is currently connected to the + * node, false otherwise + */ + public boolean isNodeConnected(Node node) { + return connectedNodes.contains(node); } // @@ -96,6 +147,11 @@ public class Core { * Starts the core. */ public void start() { + try { + projectManager.load(); + } catch (IOException ioe1) { + fireLoadingProjectsFailed(projectManager.getDirectory()); + } fireCoreLoaded(); }