package com.google.dart.engine.services.refactoring; /** * Interface for monitoring the progress of an activity; the methods in this interface are invoked * by code that performs the activity. */ public interface ProgressMonitor { /** * Notifies that the main task is beginning. This must only be called once on a given progress * monitor instance. */ void beginTask(String name, int totalWork); /** * Notifies that the main task is completed. This must only be called once on a given progress * monitor instance. */ void done(); /** * Internal method to handle scaling correctly. This method must not be called by a client. * Clients should always use the method {@link #worked(int)}. * * @param work the amount of work done */ void internalWorked(double work); /** * Returns whether cancelation of current operation has been requested. Long-running operations * should poll to see if cancelation has been requested. */ boolean isCanceled(); /** * Sets the cancel state to the given value. */ void setCanceled(); /** * Notifies that a subtask of the main task is beginning. Subtasks are optional; the main task * might not have subtasks. * * @param name the name (or description) of the subtask */ void subTask(String name); /** * Notifies that a given number of work unit of the main task has been completed. Note that this * amount represents an installment, as opposed to a cumulative amount of work done to date. * * @param work a non-negative number of work units just completed */ void worked(int work); }