View Javadoc

    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    // WARNING LEVELS
    23
    24      public static final int NONE            = 0;  // For querying, ignore all errors
    25      public static final int LIKELY_ERRORS   = 1;  // Warning indicates likely error
    26      public static final int POSSIBLE_ERRORS = 2;  // Warning indicates possible error
    27      public static final int PARANOIA        = 3;  // Warning indicates paranoia on the part of the compiler
    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    // CONSTRUCTION AND DATA ACCESS
    55
    56      private int importance;  // The warning level, for filtering
    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