KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gnu > text > SyntaxException


1 // Copyright (c) 2003 Per M.A. Bothner.
2
// This is free software; for terms and warranty disclaimer see ./COPYING.
3

4 package gnu.text;
5
6 /** Used to signal a non-recoverable (fatal) syntax error.
7  * Can also be used to signal a syntax error from embedded parsers,
8  * such as an <code>eval</code> or </code>execute</code> method,
9  * or well-formedness errors when reading an XML document.
10  */

11
12 public class SyntaxException extends Exception JavaDoc
13 {
14   /** If non-null, an extra one-line message printed before the messages.
15    * Can be used to provide extra context. */

16   String JavaDoc header;
17
18   /** One or more error messages that triggered this exception. */
19   SourceMessages messages;
20
21   public SyntaxException(SourceMessages messages)
22   {
23     this.messages = messages;
24   }
25
26   public SyntaxException(String JavaDoc header, SourceMessages messages)
27   {
28     this.header = header;
29     this.messages = messages;
30   }
31
32   /** If non-null, an extra one-line message printed before the messages.
33    * Can be used to provide extra context. */

34   public final String JavaDoc getHeader() { return header; }
35
36   /** Set the header returned by <code>getHeader</code>. */
37   public final void setHeader(String JavaDoc header) { this.header = header; }
38
39   public SourceMessages getMessages () { return messages; }
40
41   public void printAll(java.io.PrintWriter JavaDoc out, int max)
42   {
43     if (header != null)
44       out.println(header);
45     messages.printAll(out, max);
46   }
47
48   public void clear()
49   {
50     messages.clear();
51   }
52
53   public int maxToPrint = 10;
54
55   public String JavaDoc getMessage ()
56   {
57     StringBuffer JavaDoc buffer = new StringBuffer JavaDoc ();
58     if (header != null)
59       buffer.append(header);
60     int max = maxToPrint;
61     for (SourceError err = messages.firstError;
62      err != null && --max >= 0; err = err.next)
63       {
64     buffer.append('\n');
65     buffer.append(err);
66       }
67     return buffer.toString();
68   }
69 }
70
Popular Tags