2 * jSite - InsertListener.java - Copyright © 2006–2019 David Roden
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 package de.todesbaum.jsite.application;
21 import java.util.EventListener;
24 * Interface for objects that want to be notified abount insert events.
26 * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
28 public interface InsertListener extends EventListener {
31 * Enumeration for the different error situations.
33 * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
35 public static enum ErrorType {
37 /** The key does already exist. */
40 /** The route to the key was not found. */
43 /** The data was not found. */
46 /** Error in the FCP communication. */
49 /** General error in the communication. */
54 * Notifies a listener that an insert has started.
57 * The project that is now being inserted
59 public void projectInsertStarted(Project project);
62 * Notifies a listener that the upload of a project has finished and the
63 * inserting will start now.
66 * The project that has been uploaded
68 public void projectUploadFinished(Project project);
71 * Notifies a listener that a project insert has generated a URI.
74 * The project being inserted
78 public void projectURIGenerated(Project project, String uri);
81 * Notifies a listener that an insert has made some progress.
84 * The project being inserted
86 * The number of succeeded blocks
88 * The number of failed blocks
90 * The number of fatally failed blocks
92 * The total number of blocks
94 * <code>true</code> if the total number of blocks has been
95 * finalized, <code>false</code> otherwise
97 public void projectInsertProgress(Project project, int succeeded, int failed, int fatal, int total, boolean finalized);
100 * Notifies a listener that a project insert has finished.
103 * The project being inserted
105 * <code>true</code> if the insert succeeded, <code>false</code>
108 * The cause of a failure, if any (may be <code>null</code>)
110 public void projectInsertFinished(Project project, boolean success, Throwable cause);