/ org.htmlparser / src / org / htmlparser / util / DefaultParserFeedback.java
DefaultParserFeedback.java
  1  // HTMLParser Library $Name: v1_6_20060319 $ - A java-based parser for HTML
  2  // http://sourceforge.org/projects/htmlparser
  3  // Copyright (C) 2004 Claude Duguay
  4  //
  5  // Revision Control Information
  6  //
  7  // $Source: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/util/DefaultParserFeedback.java,v $
  8  // $Author: derrickoswald $
  9  // $Date: 2004/01/02 16:24:58 $
 10  // $Revision: 1.31 $
 11  //
 12  // This library is free software; you can redistribute it and/or
 13  // modify it under the terms of the GNU Lesser General Public
 14  // License as published by the Free Software Foundation; either
 15  // version 2.1 of the License, or (at your option) any later version.
 16  //
 17  // This library is distributed in the hope that it will be useful,
 18  // but WITHOUT ANY WARRANTY; without even the implied warranty of
 19  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 20  // Lesser General Public License for more details.
 21  //
 22  // You should have received a copy of the GNU Lesser General Public
 23  // License along with this library; if not, write to the Free Software
 24  // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 25  //
 26  
 27  package org.htmlparser.util;
 28  
 29  import java.io.Serializable;
 30  
 31  /**
 32   * Default implementation of the HTMLParserFeedback interface.
 33   * This implementation prints output to the console but users
 34   * can implement their own classes to support alternate behavior.
 35   *
 36   * @see ParserFeedback
 37   * @see FeedbackManager
 38   */
 39  public class DefaultParserFeedback
 40      implements
 41          ParserFeedback,
 42          Serializable
 43  {
 44      /**
 45       * Constructor argument for a quiet feedback.
 46       */
 47      public static final int QUIET = 0;
 48  
 49      /**
 50       * Constructor argument for a normal feedback.
 51       */
 52      public static final int NORMAL = 1;
 53  
 54      /**
 55       * Constructor argument for a debugging feedback.
 56       */
 57      public static final int DEBUG = 2;
 58  
 59      /**
 60       * Verbosity level.
 61       * Corresponds to constructor arguments:
 62       * <pre>
 63       *   DEBUG = 2;
 64       *   NORMAL = 1;
 65       *   QUIET = 0;
 66       * </pre>
 67       */
 68      protected int mMode;
 69  
 70      /**
 71       * Construct a feedback object of the given type.
 72       * @param mode The type of feedback:
 73       * <pre>
 74       *   DEBUG - verbose debugging with stack traces
 75       *   NORMAL - normal messages
 76       *   QUIET - no messages
 77       * </pre>
 78       * @exception IllegalArgumentException if mode is not
 79       * QUIET, NORMAL or DEBUG.
 80       */
 81      public DefaultParserFeedback (int mode)
 82      {
 83          if (mode<QUIET||mode>DEBUG)
 84              throw new IllegalArgumentException (
 85                  "illegal mode ("
 86                  + mode
 87                  + "), must be one of: QUIET, NORMAL, DEBUG");
 88          mMode = mode;
 89      }
 90  
 91      /**
 92       * Construct a NORMAL feedback object.
 93       */
 94      public DefaultParserFeedback ()
 95      {
 96          this (NORMAL);
 97      }
 98  
 99      /**
100       * Print an info message.
101       * @param message The message to print.
102       */
103      public void info (String message)
104      {
105          if (QUIET != mMode)
106              System.out.println ("INFO: " + message);
107      }
108  
109      /**
110       * Print an warning message.
111       * @param message The message to print.
112       */
113      public void warning (String message)
114      {
115          if (QUIET != mMode)
116              System.out.println ("WARNING: " + message);
117      }
118  
119      /**
120       * Print an error message.
121       * @param message The message to print.
122       * @param exception The exception for stack tracing.
123       */
124      public void error (String message, ParserException exception)
125      {
126          if (QUIET != mMode)
127          {
128              System.out.println ("ERROR: " + message);
129              if (DEBUG == mMode && (null != exception))
130                  exception.printStackTrace ();
131          }
132      }
133  }
134