001: /*BEGIN_COPYRIGHT_BLOCK
002: *
003: * Copyright (c) 2001-2007, JavaPLT group at Rice University (javaplt@rice.edu)
004: * All rights reserved.
005: *
006: * Redistribution and use in source and binary forms, with or without
007: * modification, are permitted provided that the following conditions are met:
008: * * Redistributions of source code must retain the above copyright
009: * notice, this list of conditions and the following disclaimer.
010: * * Redistributions in binary form must reproduce the above copyright
011: * notice, this list of conditions and the following disclaimer in the
012: * documentation and/or other materials provided with the distribution.
013: * * Neither the names of DrJava, the JavaPLT group, Rice University, nor the
014: * names of its contributors may be used to endorse or promote products
015: * derived from this software without specific prior written permission.
016: *
017: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
018: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
019: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
020: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
021: * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
022: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
023: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
024: * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
025: * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
026: * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
027: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
028: *
029: * This software is Open Source Initiative approved Open Source Software.
030: * Open Source Initative Approved is a trademark of the Open Source Initiative.
031: *
032: * This file is part of DrJava. Download the current version of this project
033: * from http://www.drjava.org/ or http://sourceforge.net/projects/drjava/
034: *
035: * END_COPYRIGHT_BLOCK*/
036:
037: package edu.rice.cs.drjava.model.junit;
038:
039: import edu.rice.cs.drjava.model.compiler.CompilerError;
040:
041: import java.io.File;
042: import java.io.Serializable;
043:
044: /**
045: * A class to represent JUnit errors. Having this class allows DrJava
046: * to make the errors as legible as possible.
047: * @version $Id: JUnitError.java 4255 2007-08-28 19:17:37Z mgricken $
048: */
049: public class JUnitError extends CompilerError implements Comparable,
050: Serializable {
051: private String _test;
052: private String _className;
053: private String _stackTrace;
054:
055: /**
056: * Constructor.
057: * @param file the file where the error occurred
058: * @param lineNumber the line number of the error
059: * @param startColumn the starting column of the error
060: * @param message the error message
061: * @param isWarning true if the error is a warning
062: * @param test the name of the test that failed
063: */
064: public JUnitError(File file, int lineNumber, int startColumn,
065: String message, boolean isWarning, String test,
066: String className, String stackTrace) {
067: super (file, lineNumber, startColumn, message, isWarning);
068: _test = test;
069: _className = className;
070: _stackTrace = stackTrace;
071: }
072:
073: /**
074: * Constructor for an error with no associated location. This constructor also
075: * provides a default stackTrace.
076: * @param message the error message
077: * @param isWarning true if the error is a warning
078: * @param test the name of the test that failed
079: */
080: public JUnitError(String message, boolean isWarning, String test) {
081: this (null, -1, -1, message, isWarning, test, "",
082: "No associated stack trace");
083: }
084:
085: /**
086: * Gets the test name
087: * @return the test name
088: */
089: public String testName() {
090: return _test;
091: }
092:
093: /**
094: * Gets the class name
095: * @return the class name
096: */
097: public String className() {
098: return _className;
099: }
100:
101: /**
102: * All JUnit errors are Throwables that have been thrown, so all have
103: * a stack trace
104: * @return the stack trace associated with the error
105: */
106: public String stackTrace() {
107: return _stackTrace;
108: }
109:
110: }
|