001/*
002 * BioJava development code
003 * 
004 * This code may be freely distributed and modified under the
005 * terms of the GNU Lesser General Public Licence.  This should
006 * be distributed with the code.  If you do not have a copy,
007 * see:
008 * 
009 * http://www.gnu.org/copyleft/lesser.html
010 * 
011 * Copyright for this code is held jointly by the individual
012 * authors.  These should be listed in @author doc comments.
013 * 
014 * For more information on the BioJava project and its aims,
015 * or to join the biojava-l mailing list, visit the home page
016 * at:
017 * 
018 * http://www.biojava.org
019 */
020
021package org.biojava.utils;
022
023/**
024 * Interface for object which monitor long-running activities.
025 * (may be subject to change before 1.2-final)
026 *
027 * @author Thomas Down
028 * @since 1.2
029 */
030
031public interface ActivityListener {
032    /**
033     * Notification that an activity has started.
034     */
035
036    public void startedActivity(Object source);
037
038    /**
039     * Notification that an activity is complete.
040     */
041
042    public void completedActivity(Object source);
043
044    /**
045     * Notification of errors behind the scenes.
046     */
047
048    public void activityFailed(Object source, Exception ex);
049
050    /**
051     * Estimated progress of an activity.  This indicated that
052     * <code>current</code> parts of the activity have been completed,
053     * out of a target <code>target</code>.
054     */
055
056    public void activityProgress(Object source, int current, int target);
057}