1 package org.codehaus.groovy.control.messages;
2
3 import java.io.PrintWriter;
4
5 import org.codehaus.groovy.control.Janitor;
6 import org.codehaus.groovy.control.ProcessingUnit;
7 import org.codehaus.groovy.syntax.SyntaxException;
8
9
10
11 /***
12 * A base class for compilation messages.
13 *
14 * @author <a href="mailto:cpoirier@dreaming.org">Chris Poirier</a>
15 *
16 * @version $Id: Message.java,v 1.1 2004/04/19 07:29:45 cpoirier Exp $
17 */
18
19 public abstract class Message
20 {
21
22
23 /***
24 * Writes the message to the specified PrintWriter. The supplied
25 * ProcessingUnit is the unit that holds this Message.
26 */
27
28 public abstract void write( PrintWriter writer, ProcessingUnit owner, Janitor janitor );
29
30
31 /***
32 * A synonyn for write( writer, owner, null ).
33 */
34
35 public final void write( PrintWriter writer, ProcessingUnit owner )
36 {
37 write( writer, owner, null );
38 }
39
40
41
42
43
44
45
46 /***
47 * Creates a new Message from the specified text.
48 */
49
50 public static Message create( String text )
51 {
52 return new SimpleMessage( text );
53 }
54
55
56
57 /***
58 * Creates a new Message from the specified text.
59 */
60
61 public static Message create( String text, Object data )
62 {
63 return new SimpleMessage( text, data );
64 }
65
66
67
68 /***
69 * Creates a new Message from the specified SyntaxException.
70 */
71
72 public static Message create( SyntaxException error )
73 {
74 return new SyntaxErrorMessage( error );
75 }
76
77
78
79
80 }
81
82
83
84