X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FInsertManager.java;h=bdd02a10618b87d98600ac0730dc4bfbeac32a2a;hb=c63257e8cc0ba1a5aca9364b22171abe7279d479;hp=be8cc5ec135b9eaaa8ad900523b85542929ca2fe;hpb=51a5b3dbcfa9ffd520195e112e818ca88b8538ce;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/core/InsertManager.java b/src/net/pterodactylus/jsite/core/InsertManager.java index be8cc5e..bdd02a1 100644 --- a/src/net/pterodactylus/jsite/core/InsertManager.java +++ b/src/net/pterodactylus/jsite/core/InsertManager.java @@ -1,25 +1,27 @@ /* * jSite2 - InsertManager.java - Copyright © 2008 David Roden - * + * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. - * + * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. - * + * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., 59 Temple * Place - Suite 330, Boston, MA 02111-1307, USA. */ + package net.pterodactylus.jsite.core; import java.util.ArrayList; -import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; @@ -27,7 +29,7 @@ import net.pterodactylus.util.logging.Logging; /** * Manages all currently running and past inserts. - * + * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> */ public class InsertManager { @@ -38,13 +40,16 @@ public class InsertManager { /** The insert listeners. */ private final List insertListeners = new ArrayList(); + /** Mapping from insert IDs to inserts. */ + private final Map inserts = new HashMap(); + // // EVENT MANAGEMENT // /** * Adds an insert listener to the list of insert listeners. - * + * * @param insertListener * The insert listener to add */ @@ -57,7 +62,7 @@ public class InsertManager { /** * Removes an insert listener from the list of insert listeners. - * + * * @param insertListener * The insert listener to remove */ @@ -70,7 +75,7 @@ public class InsertManager { /** * Notifies all listeners that an insert was added. - * + * * @param insert * The insert that was added */ @@ -84,10 +89,11 @@ public class InsertManager { /** * Notifies all listeners that an insert was removed. - * + * * @param insert * The insert that was removes */ + @SuppressWarnings("unused") private void fireInsertRemoved(Insert insert) { synchronized (insertListeners) { for (InsertListener insertListener : insertListeners) { @@ -98,10 +104,11 @@ public class InsertManager { /** * Notifies all listeners that an insert was started. - * + * * @param insert * The insert that was started */ + @SuppressWarnings("unused") private void fireInsertStarted(Insert insert) { synchronized (insertListeners) { for (InsertListener insertListener : insertListeners) { @@ -112,10 +119,11 @@ public class InsertManager { /** * Notifies all listeners that an insert made some progress - * + * * @param insert * The insert that made some progress */ + @SuppressWarnings("unused") private void fireInsertProgressed(Insert insert) { synchronized (insertListeners) { for (InsertListener insertListener : insertListeners) { @@ -126,10 +134,13 @@ public class InsertManager { /** * Notifies all listeners that an insert generated a URI. - * + * * @param insert * The insert that generated a URI + * @param uri + * The generated URI */ + @SuppressWarnings("unused") private void fireInsertGeneratedURI(Insert insert, String uri) { synchronized (insertListeners) { for (InsertListener insertListener : insertListeners) { @@ -140,10 +151,11 @@ public class InsertManager { /** * Notifies all listeners that an insert has finished. - * + * * @param insert * The insert that has finished */ + @SuppressWarnings("unused") private void fireInsertFinished(Insert insert) { synchronized (insertListeners) { for (InsertListener insertListener : insertListeners) { @@ -157,6 +169,34 @@ public class InsertManager { // /** + * Starts to insert the given project. The insert will be made to the node + * stored in the project, and if no node is specified in the project, the + * given node will be used. + * + * @param project + * The project to insert + * @param node + * The node to insert the project to if the project does not + * specify a node + */ + public void insertProject(Project project, Node node) { + logger.log(Level.FINEST, "insertProject(project=" + project + ",node=" + node + ")"); + Node insertNode = project.getNode(); + if (insertNode == null) { + insertNode = node; + if (insertNode == null) { + throw new NullPointerException("node must not be null"); + } + } + String insertId = "insert-" + project.getId(); + Insert newInsert = new Insert(project, insertNode, insertId); + inserts.put(insertId, newInsert); + saveConfiguration(); + fireInsertAdded(newInsert); + /* TODO - start insert */ + } + + /** * Starts the insert manager. */ public void start() { @@ -175,4 +215,11 @@ public class InsertManager { logger.log(Level.FINEST, "loadConfiguration()"); } + /** + * Saves the configuration. + */ + private void saveConfiguration() { + logger.log(Level.FINEST, "saveConfiguration()"); + } + }