001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.modules.uml.util;
043:
044: /**
045: *
046: * @author Craig Conover, craig.conover@sun.com
047: */
048: public interface ITaskSupervisor {
049: // message output levels
050: public final static int SUMMARY = 0; // very high level messages
051: public final static int TERSE = 1; // somewhat detailed messages
052: public final static int VERBOSE = 2; // very detailed messages
053: public final static int DEBUG = 3; // debug level information only
054:
055: public boolean start(int itemTotal);
056:
057: public boolean start(int contributor, int itemTotal);
058:
059: /**
060: * Increment the item counter by one.
061: *
062: * @return the current count after incrementing by one
063: */
064: public int increment();
065:
066: /**
067: * Increment the item counter by the amount of the step parameter.
068: *
069: * @param step the amount to increment the counter.
070: *
071: * @return the current count after incrementing by the amount
072: * of the step parameter.
073: */
074: public int increment(int step);
075:
076: /**
077: * Called by task subclass to check confirm that the task hasn't been
078: * cancelled or failed. If there is a cancellation or failure, finish()
079: * is called.
080: *
081: * @return true if the process hasn't failed or been canceled
082: */
083: public boolean proceed();
084:
085: /**
086: * Called by task subclass to check confirm that the task hasn't been
087: * cancelled or failed. If there is a cancellation or failure, finish()
088: * is called.
089: *
090: * @param step the amount to increment the counter by.
091: *
092: * @return true if the process hasn't failed or been canceled
093: */
094: public boolean proceed(int step);
095:
096: /**
097: * Outputs a blank line
098: */
099: public void log();
100:
101: public void log(int level);
102:
103: /**
104: * Outputs a message with and appends newline by default
105: *
106: * @param msg the message to be output
107: */
108: public void log(String msg);
109:
110: public void log(int level, String msg);
111:
112: /**
113: * Outputs a message
114: *
115: * @param msg the message to be output
116: * @param newline if true, appends newline
117: */
118: public void log(String msg, boolean newline);
119:
120: public void log(int level, String msg, boolean newline);
121:
122: /**
123: * Call this method when a the task is instructed to be canceled and it
124: * will set the cancelled flag to false. The next time proceed() is
125: * called, it will invoke finish() return false.
126: */
127: public boolean cancel();
128:
129: /**
130: * Call this method when a failure in your task is detected and it will
131: * set the success flag to false. The next time proceed() is called,
132: * it will invoke finish() return false.
133: */
134: public void fail();
135:
136: }
|