move project directory
[jSite2.git] / src / net / pterodactylus / jsite / core / CoreListener.java
index 04b063e..3dbc55e 100644 (file)
 
 package net.pterodactylus.jsite.core;
 
+import net.pterodactylus.jsite.core.project.Project;
+
 /**
  * Interface definition for user interfaces.
  * 
  * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
  */
 public interface CoreListener {
 
@@ -68,6 +69,32 @@ public interface CoreListener {
         */
        public void savingProjectsFailed(String directory, Throwable throwable);
 
+       /**
+        * Notifies a listener that the given project was added.
+        * 
+        * @param project
+        *            The project that was added.
+        */
+       public void projectAdded(Project project);
+
+       /**
+        * Notifies a listener that a project was cloned.
+        * 
+        * @param clonedProject
+        *            The clones project
+        * @param projectClone
+        *            The clone of the project
+        */
+       public void projectCloned(Project clonedProject, Project projectClone);
+
+       /**
+        * Notifies a listener that the given project was removed.
+        * 
+        * @param project
+        *            The project that was removed.
+        */
+       public void projectRemoved(Project project);
+
        //
        // node configuration
        //
@@ -184,38 +211,58 @@ public interface CoreListener {
        public void nodeDisconnected(Node node, Throwable throwable);
 
        //
-       // request stuff
+       // project insertion stuff
        //
 
        /**
-        * Notifies a listener that a request was added to a node.
+        * Notifies a listener that a project insert started.
         * 
-        * @param node
-        *            The node the request was added to
-        * @param request
-        *            The request that was added
+        * @param project
+        *            The project that is now inserting
         */
-       public void requestAdded(Node node, Request request);
+       public void projectInsertStarted(Project project);
 
        /**
-        * Notifies a listener that a request made some progress.
+        * Notifies a listener that a project insert made progress.
         * 
-        * @param request
-        *            The request that made the progress
+        * @param project
+        *            The project that made progress
         * @param totalBlocks
-        *            The total number of blocks
+        *            The number of total blocks
         * @param requiredBlocks
         *            The number of required blocks
         * @param successfulBlocks
-        *            The number of successful blocks
+        *            The number of successfully inserted blocks
         * @param failedBlocks
-        *            The number of failed blocks
+        *            The number of blocks that could not be inserted
         * @param fatallyFailedBlocks
-        *            The number of fatally failed blocks
+        *            The number of blocks that can not be inserted even with
+        *            retries
         * @param finalizedTotal
-        *            <code>true</code> if the number of total blocks is
-        *            finalized, <code>false</code> if it is not
+        *            <code>true</code> if the number of total blocks is already
+        *            finalized, <code>false</code> otherwise
+        */
+       public void projectInsertProgressed(Project project, int totalBlocks, int requiredBlocks, int successfulBlocks, int failedBlocks, int fatallyFailedBlocks, boolean finalizedTotal);
+
+       /**
+        * Notifies a listener that a project insert has generated a URI.
+        * 
+        * @param project
+        *            The project that generated a URI
+        * @param uri
+        *            The URI that was generated
+        */
+       public void projectInsertGeneratedURI(Project project, String uri);
+
+       /**
+        * Notifies a listener that a project insert has finished.
+        * 
+        * @param project
+        *            The project that has finished
+        * @param success
+        *            <code>true</code> if the project was inserted successfully,
+        *            <code>false</code> otherwise
         */
-       public void requestProgressed(Request request, int totalBlocks, int requiredBlocks, int successfulBlocks, int failedBlocks, int fatallyFailedBlocks, boolean finalizedTotal);
+       public void projectInsertFinished(Project project, boolean success);
 
 }