summaryrefslogtreecommitdiff
path: root/sources/scala/tools/nsc/reporters/AbstractReporter.scala
diff options
context:
space:
mode:
authorSean McDirmid <sean.mcdirmid@gmail.com>2005-12-02 15:34:31 +0000
committerSean McDirmid <sean.mcdirmid@gmail.com>2005-12-02 15:34:31 +0000
commitd4a7e14e41a918cd6de0a5efc1002c9d87fb7708 (patch)
treed284894da803392db21b910ab1518c5be2153976 /sources/scala/tools/nsc/reporters/AbstractReporter.scala
parent4720d45a832b3a8c818ae81cb0a15353fd16e372 (diff)
downloadscala-d4a7e14e41a918cd6de0a5efc1002c9d87fb7708.tar.gz
scala-d4a7e14e41a918cd6de0a5efc1002c9d87fb7708.tar.bz2
scala-d4a7e14e41a918cd6de0a5efc1002c9d87fb7708.zip
Revamped reporter classes to make them more fri...
Revamped reporter classes to make them more friendly with the plugin.
Diffstat (limited to 'sources/scala/tools/nsc/reporters/AbstractReporter.scala')
-rw-r--r--sources/scala/tools/nsc/reporters/AbstractReporter.scala45
1 files changed, 22 insertions, 23 deletions
diff --git a/sources/scala/tools/nsc/reporters/AbstractReporter.scala b/sources/scala/tools/nsc/reporters/AbstractReporter.scala
index b85fde78ca..c2953e0a5c 100644
--- a/sources/scala/tools/nsc/reporters/AbstractReporter.scala
+++ b/sources/scala/tools/nsc/reporters/AbstractReporter.scala
@@ -7,37 +7,36 @@
// $Id$
package scala.tools.nsc.reporters;
-import java.util.HashSet;
+import scala.collection.mutable.HashSet;
import scala.tools.nsc.util.Position;
/**
- * This abstract class implements most aspects of a Reporter, only how
- * things are displayed has to be implemented in subclasses.
+ * This reporter implements filtering.
*/
abstract class AbstractReporter extends Reporter {
- private val positions = new HashSet();
+ private val positions = new HashSet[Position]();
- def displayInfo (pos : Position, msg : String) : Unit;
- def displayWarning(pos : Position, msg : String) : Unit;
- def displayError (pos : Position, msg : String) : Unit;
+ def display(pos : Position, msg : String, severity : Severity) : Unit;
+ var prompt : Boolean = false;
+ var verbose : Boolean = false;
+ var nowarn : Boolean = false;
def displayPrompt : Unit;
// XXX: while is pos ignored?
- def info(pos : Position, msg : String, force : Boolean) : Unit =
- if (force || verbose) displayInfo(pos, msg);
-
- def warning(pos : Position, msg : String) : Unit = {
- val hidden = testAndLog(pos);
- if (nowarn) return;
- if (!hidden || prompt) displayWarning(pos, msg);
- if (!hidden) warningsx = warningsx + 1;
- if (prompt) displayPrompt;
- }
- def error(pos : Position, msg : String) : Unit = {
- val hidden = testAndLog(pos);
- if (!hidden || prompt) displayError(pos, msg);
- if (!hidden) errorsx = errorsx + 1;
- if (prompt) displayPrompt;
+ protected def info0(pos : Position, msg : String, severity : Severity, force : Boolean) : Unit = severity match {
+ case INFO => if (force || verbose) display(pos, msg, severity);
+ case WARNING => {
+ val hidden = testAndLog(pos);
+ if (!nowarn) {
+ if (!hidden || prompt) display(pos, msg, severity);
+ if (prompt) displayPrompt;
+ }
+ }
+ case ERROR => {
+ val hidden = testAndLog(pos);
+ if (!hidden || prompt) display(pos, msg, severity);
+ if (prompt) displayPrompt;
+ }
}
//########################################################################
@@ -48,7 +47,7 @@ abstract class AbstractReporter extends Reporter {
if (pos == null) return false;
if (pos.column == 0) return false;
if (positions.contains(pos)) return true;
- positions.add(pos);
+ positions += (pos);
return false;
}