001: /*
002: * @(#)IErrors.java
003: *
004: * Copyright (C) 2002-2003 Matt Albrecht
005: * groboclown@users.sourceforge.net
006: * http://groboutils.sourceforge.net
007: *
008: * Part of the GroboUtils package at:
009: * http://groboutils.sourceforge.net
010: *
011: * Permission is hereby granted, free of charge, to any person obtaining a
012: * copy of this software and associated documentation files (the "Software"),
013: * to deal in the Software without restriction, including without limitation
014: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
015: * and/or sell copies of the Software, and to permit persons to whom the
016: * Software is furnished to do so, subject to the following conditions:
017: *
018: * The above copyright notice and this permission notice shall be included in
019: * all copies or substantial portions of the Software.
020: *
021: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
022: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
023: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
024: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
025: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
026: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
027: * DEALINGS IN THE SOFTWARE.
028: */
029: package net.sourceforge.groboutils.mbtf.v1;
030:
031: /**
032: * A container for registering errors or warnings caused by invalid
033: * validation of a state or transition.
034: *
035: * @author Matt Albrecht <a href="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a>
036: * @version $Date: 2003/02/10 22:52:24 $
037: * @since June 12, 2002
038: */
039: public interface IErrors {
040:
041: /**
042: * Immediately stop the path processing, and do not continue other paths
043: * for processing. This will throw a <tt>RuntimeException</tt>.
044: * <P>
045: * Halts should be a last-recourse to indicate that the system cannot be
046: * used for further testing.
047: *
048: * @param msg a human-readable error message.
049: * @exception TestHaltRuntimeException will always be generated.
050: */
051: public void halt(String msg) throws TestHaltRuntimeException;
052:
053: /**
054: * Add a failure to the list of current errors. Validation methods that
055: * register failures will halt the current path's testing. This method
056: * will not throw an exception, so validation processing must leave the
057: * method on its own.
058: * <P>
059: * Failures should be registered when a non-recoverable error occurs in the
060: * system. The framework may still process other paths, though.
061: *
062: * @param msg a human-readable error message.
063: */
064: public void addFailure(String msg);
065:
066: /**
067: * Add a failure associated with a Throwable to the list of current errors.
068: * Validation methods that register failures will halt the current path's
069: * testing. This method will not throw an exception, so validation
070: * processing must leave the method on its own.
071: * <P>
072: * Failures should be registered when a non-recoverable error occurs in the
073: * system. The framework may still process other paths, though.
074: *
075: * @param msg a human-readable error message.
076: * @param t the exception associated with the error.
077: */
078: public void addFailure(String msg, Throwable t);
079:
080: /**
081: * Add a failure to the list of current errors. Validation methods that
082: * register failures will halt the current path's testing. This method
083: * will not throw a <tt>TestFailRuntimeException</tt>, so validation
084: * processing must leave the method on its own.
085: * <P>
086: * Failures should be registered when a non-recoverable error occurs in the
087: * system. The framework may still process other paths, though.
088: *
089: * @param msg a human-readable error message.
090: * @exception TestFailRuntimeException allows for easy exiting of a
091: * burried method call stack.
092: */
093: public void fail(String msg) throws TestFailRuntimeException;
094:
095: /**
096: * Add a failure associated with a Throwable to the list of current errors.
097: * Validation methods that register failures will halt the current path's
098: * testing. This method will throw a <tt>TestFailRuntimeException</tt> to
099: * allow for an easy exit from a burried method call stack.
100: * <P>
101: * Failures should be registered when a non-recoverable error occurs in the
102: * system. The framework may still process other paths, though.
103: *
104: * @param msg a human-readable error message.
105: * @param t the exception associated with the error.
106: * @exception TestFailRuntimeException allows for easy exiting of a
107: * burried method call stack.
108: */
109: public void fail(String msg, Throwable t)
110: throws TestFailRuntimeException;
111:
112: /**
113: * Add an error to the list of current errors. Validation methods that
114: * register errors will not halt the current path's testing, but the error
115: * will be listed in the report with the associated path where the error
116: * condition occured.
117: * <P>
118: * Errors should be registered when an error occurs in the system, but
119: * the system can continue processing the path.
120: *
121: * @param msg a human-readable error message.
122: */
123: public void addError(String msg);
124:
125: /**
126: * Add an error associated with a Throwable to the list of current errors.
127: * Validation methods that register errors will halt the current path's
128: * testing.
129: * <P>
130: * Errors should be registered when an error occurs in the system, but
131: * the system can continue processing the path.
132: *
133: * @param msg a human-readable error message.
134: * @param t the exception associated with the error.
135: */
136: public void addError(String msg, Throwable t);
137:
138: /**
139: * Add a warning to the list of current warnings. Warnings will not
140: * halt the testing process, and will not register an error.
141: * <P>
142: * Warnings should be used when a questionable system state occurs, or if
143: * the tester wants to perform debugging.
144: *
145: * @param msg a human-readable message.
146: */
147: public void addWarning(String msg);
148:
149: /**
150: * Retrieve all registered errors.
151: */
152: public IError[] getErrors();
153: }
|