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.SourceUnit;
7 import org.codehaus.groovy.syntax.CSTNode;
8
9
10
11 /***
12 * A class for warning messages.
13 *
14 * @author <a href="mailto:cpoirier@dreaming.org">Chris Poirier</a>
15 *
16 * @version $Id: WarningMessage.java,v 1.4 2005/06/10 09:55:30 cstein Exp $
17 */
18
19 public class WarningMessage extends LocatedMessage
20 {
21
22
23
24 public static final int NONE = 0;
25 public static final int LIKELY_ERRORS = 1;
26 public static final int POSSIBLE_ERRORS = 2;
27 public static final int PARANOIA = 3;
28
29
30 /***
31 * Returns true if a warning would be relevant to the specified level.
32 */
33
34 public static boolean isRelevant( int actual, int limit )
35 {
36 return actual <= limit;
37 }
38
39
40
41 /***
42 * Returns true if this message is as or more important than the
43 * specified importance level.
44 */
45
46 public boolean isRelevant( int importance )
47 {
48 return isRelevant( this.importance, importance );
49 }
50
51
52
53
54
55
56 private int importance;
57
58
59 /***
60 * Creates a new warning message.
61 *
62 * @param importance the warning level
63 * @param message the message text
64 * @param context context information for locating the offending source text
65 */
66
67 public WarningMessage( int importance, String message, CSTNode context, SourceUnit owner )
68 {
69 super( message, context, owner );
70 this.importance = importance;
71 }
72
73
74
75 /***
76 * Creates a new warning message.
77 *
78 * @param importance the warning level
79 * @param message the message text
80 * @param data additional data needed when generating the message
81 * @param context context information for locating the offending source text
82 */
83
84 public WarningMessage( int importance, String message, Object data, CSTNode context, SourceUnit owner )
85 {
86 super( message, data, context, owner );
87 this.importance = importance;
88 }
89
90
91 public void write( PrintWriter writer, Janitor janitor )
92 {
93 writer.print( "warning: " );
94 super.write( writer, janitor );
95 }
96
97
98
99 }
100
101
102