001: // Debug.java - Print debug messages
002:
003: /*
004: * Copyright 2001-2004 The Apache Software Foundation or its licensors,
005: * as applicable.
006: *
007: * Licensed under the Apache License, Version 2.0 (the "License");
008: * you may not use this file except in compliance with the License.
009: * You may obtain a copy of the License at
010: *
011: * http://www.apache.org/licenses/LICENSE-2.0
012: *
013: * Unless required by applicable law or agreed to in writing, software
014: * distributed under the License is distributed on an "AS IS" BASIS,
015: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016: * See the License for the specific language governing permissions and
017: * limitations under the License.
018: */
019:
020: package com.sun.org.apache.xml.internal.resolver.helpers;
021:
022: /**
023: * Static debugging/messaging class for Catalogs.
024: *
025: * <p>This class defines a set of static methods that can be called
026: * to produce debugging messages. Messages have an associated "debug
027: * level" and messages below the current setting are not displayed.</p>
028: *
029: * @author Norman Walsh
030: * <a href="mailto:Norman.Walsh@Sun.COM">Norman.Walsh@Sun.COM</a>
031: *
032: * @version 1.0
033: */
034: public class Debug {
035: /** The internal debug level. */
036: protected int debug = 0;
037:
038: /** Constructor */
039: public Debug() {
040: // nop
041: }
042:
043: /** Set the debug level for future messages. */
044: public void setDebug(int newDebug) {
045: debug = newDebug;
046: }
047:
048: /** Get the current debug level. */
049: public int getDebug() {
050: return debug;
051: }
052:
053: /**
054: * Print debug message (if the debug level is high enough).
055: *
056: * <p>Prints "the message"</p>
057: *
058: * @param level The debug level of this message. This message
059: * will only be
060: * displayed if the current debug level is at least equal to this
061: * value.
062: * @param message The text of the message.
063: */
064: public void message(int level, String message) {
065: if (debug >= level) {
066: System.out.println(message);
067: }
068: }
069:
070: /**
071: * Print debug message (if the debug level is high enough).
072: *
073: * <p>Prints "the message: spec"</p>
074: *
075: * @param level The debug level of this message. This message
076: * will only be
077: * displayed if the current debug level is at least equal to this
078: * value.
079: * @param message The text of the message.
080: * @param spec An argument to the message.
081: */
082: public void message(int level, String message, String spec) {
083: if (debug >= level) {
084: System.out.println(message + ": " + spec);
085: }
086: }
087:
088: /**
089: * Print debug message (if the debug level is high enough).
090: *
091: * <p>Prints "the message: spec1" and "spec2" indented on the next line.</p>
092: *
093: * @param level The debug level of this message. This message
094: * will only be
095: * displayed if the current debug level is at least equal to this
096: * value.
097: * @param message The text of the message.
098: * @param spec1 An argument to the message.
099: * @param spec2 Another argument to the message.
100: */
101: public void message(int level, String message, String spec1,
102: String spec2) {
103: if (debug >= level) {
104: System.out.println(message + ": " + spec1);
105: System.out.println("\t" + spec2);
106: }
107: }
108: }
|