You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ar...@apache.org on 2001/02/21 02:09:30 UTC
cvs commit: xml-fop/src/org/apache/fop/messaging MessageHandler.java
arved 01/02/20 17:09:30
Modified: src/org/apache/fop/messaging MessageHandler.java
Log:
Updated command line support
Revision Changes Path
1.4 +242 -267 xml-fop/src/org/apache/fop/messaging/MessageHandler.java
Index: MessageHandler.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/messaging/MessageHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MessageHandler.java 2000/10/26 14:33:35 1.3
+++ MessageHandler.java 2001/02/21 01:09:29 1.4
@@ -1,58 +1,15 @@
/*
- ============================================================================
- The Apache Software License, Version 1.1
- ============================================================================
-
- Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modifica-
- tion, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- 3. The end-user documentation included with the redistribution, if any, must
- include the following acknowledgment: "This product includes software
- developed by the Apache Software Foundation (http://www.apache.org/)."
- Alternately, this acknowledgment may appear in the software itself, if
- and wherever such third-party acknowledgments normally appear.
-
- 4. The names "Fop" and "Apache Software Foundation" must not be used to
- endorse or promote products derived from this software without prior
- written permission. For written permission, please contact
- apache@apache.org.
-
- 5. Products derived from this software may not be called "Apache", nor may
- "Apache" appear in their name, without prior written permission of the
- Apache Software Foundation.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
- DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many individuals
- on behalf of the Apache Software Foundation and was originally created by
- James Tauber <jt...@jtauber.com>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
+ * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
+ * For details on use and redistribution please refer to the
+ * LICENSE file included with these sources."
*/
+
package org.apache.fop.messaging;
import java.io.*;
import java.util.*;
-//import javax.swing.*;
+
/** The class MessageHandler contains the static methods log and error which
* should be used for any end user information instead of System.out.print() or
@@ -61,20 +18,20 @@
* output. If you don't want to change the default behaviour, you should be
* happy with MessageHandler.log(message) and MessageHandler.error(message)<br>
* The class MessageHandler also supports the setting of an id. If set every message
- * has as a prefix an identifying string. That way Fop probably can also be used in
- * environments, where more than one Fop instance are running in same JVM.<br>
- * If Fop is embedded in a gui application or for any reasons the existing
+ * has as a prefix an identifying string. That way Fop probably can also be used in
+ * environments, where more than one Fop instance are running in same JVM.<br>
+ * If Fop is embedded in a gui application or for any reasons the existing
* messaging system doesn't meet the programmer's requirements, one can add
- * a MessageEvent listener to MessageHandler and handle the incoming messages
- * in an appropriate way. See the class DefaultMessageListener, which is a trivial
- * implementation of the MessageListener.
+ * a MessageEvent listener to MessageHandler and handle the incoming messages
+ * in an appropriate way. See the class DefaultMessageListener, which is a trivial
+ * implementation of the MessageListener.
* Here is an example how to configure MessageHandler for the DefaultMessageListener (anybody
* can provide his own listener by extending MessageListener<br>
* <code>
* MessageHandler.setOutputMethod(MessageHandler.EVENT);
* MessageHandler.addListener(new DefaultMessageListener());
* </code><br>
- * This examples shows, how to redirect the messages to a log file called fop.log.
+ * This examples shows, how to redirect the messages to a log file called fop.log.
* All messages are appended to this file.
* <code>
* MessageHandler.setOutputMethod(MessageHandler.FILE);
@@ -83,220 +40,238 @@
*/
public class MessageHandler {
- public static final int SCREEN = 0;
- public static final int FILE = 1;
- public static final int EVENT = 2;
- public static final int NONE = 3; //this should always be the last method
-
- private static String logfileName = "fop.log";
- private static PrintWriter writer;
- private static int outputMethod = SCREEN;
- private static boolean fileOpened = false;
- private static boolean appendToFile = true;
- private static String message = "";
- private static String prefix ="";
- private static Vector listeners = new Vector();
- private static boolean IDisSet = false;
- /**
- * helper class to access the message
- * @return a string containing the message
- */
-
- private static String getMessage () {
- return message;
- }
-
- /**
- * helper class which sets the message
- * and adds a prefix which can contain
- * the id of the thread which uses this messagehandler
- */
- private static void setMessage (String m) {
- if (IDisSet) {
- message = getID() + ":" + m;
- } else {
- message = m;
- }
- }
-
- /**
- * informs the user of the message
- * @param message the message for the user
- */
- public static void log (String message) {
- setMessage(message);
- switch (outputMethod) {
- case SCREEN:
- System.out.print(getMessage ());
- break;
- case FILE:
- if (fileOpened) {
- writer.print(getMessage ());
- writer.flush();
+ public static final int SCREEN = 0;
+ public static final int FILE = 1;
+ public static final int EVENT = 2;
+ public static final int NONE = 3; //this should always be the last method
+
+ private static String logfileName = "fop.log";
+ private static PrintWriter writer;
+ private static int outputMethod = SCREEN;
+ private static boolean fileOpened = false;
+ private static boolean appendToFile = true;
+ private static String message = "";
+ private static String prefix = "";
+ private static Vector listeners = new Vector();
+ private static boolean IDisSet = false;
+ private static boolean quiet = false;
+
+ /**
+ * helper class to access the message
+ * @return a string containing the message
+ */
+
+ private static String getMessage () {
+ return message;
+ }
+
+ /**
+ * helper class which sets the message
+ * and adds a prefix which can contain
+ * the id of the thread which uses this messagehandler
+ */
+ private static void setMessage (String m) {
+ if (IDisSet) {
+ message = getID() + ":" + m;
} else {
- openFile();
- writer.print(getMessage ());
- writer.flush();
+ message = m;
}
- break;
- case EVENT:
- setMessage(message);
- Enumeration enum = listeners.elements();
- while (enum.hasMoreElements()) {
- ((MessageListener) enum.nextElement()).processMessage(new MessageEvent(getMessage()));
+ }
+
+ /**
+ * informs the user of the message
+ * @param message the message for the user
+ */
+ public static void log (String message) {
+ if (!quiet) {
+ setMessage(message);
+ switch (outputMethod) {
+ case SCREEN:
+ System.out.print(getMessage ());
+ break;
+ case FILE:
+ if (fileOpened) {
+ writer.print(getMessage ());
+ writer.flush();
+ } else {
+ openFile();
+ writer.print(getMessage ());
+ writer.flush();
+ }
+ break;
+ case EVENT:
+ setMessage(message);
+ Enumeration enum = listeners.elements();
+ while (enum.hasMoreElements()) {
+ ((MessageListener) enum.nextElement()).
+ processMessage(
+ new MessageEvent(getMessage()));
+ }
+ break;
+ case NONE:
+ //do nothing
+ break;
+ default:
+ System.out.print(message);
+ }
}
- break;
- case NONE:
- //do nothing
- break;
- default:
- System.out.print(message);
- }
- }
-
- /**
- * convenience method which adds a return to the message
- * @param message the message for the user
- */
- public static void logln (String message) {
- log (message+"\n");
- }
-
- /**
- * error warning for the user
- * @param errorMessage contains the warning string
- */
-
- public static void error (String errorMessage) {
- setMessage(errorMessage);
- switch (outputMethod) {
- case SCREEN:
- System.err.print(getMessage());
- break;
- case FILE:
- if (fileOpened) {
- writer.print(getMessage());
- writer.flush();
- } else {
- openFile();
- writer.print(getMessage());
- writer.flush();
- }
- break;
- case EVENT:
- setMessage(message);
- Enumeration enum = listeners.elements();
- while (enum.hasMoreElements()) {
- MessageEvent messEv = new MessageEvent(getMessage());
- messEv.setMessageType(MessageEvent.ERROR);
- ((MessageListener) enum.nextElement()).processMessage(messEv);
+ }
+
+ /**
+ * convenience method which adds a return to the message
+ * @param message the message for the user
+ */
+ public static void logln (String message) {
+ log (message + "\n");
+ }
+
+ /**
+ * error warning for the user
+ * @param errorMessage contains the warning string
+ */
+
+ public static void error (String errorMessage) {
+ setMessage(errorMessage);
+ switch (outputMethod) {
+ case SCREEN:
+ System.err.print(getMessage());
+ break;
+ case FILE:
+ if (fileOpened) {
+ writer.print(getMessage());
+ writer.flush();
+ } else {
+ openFile();
+ writer.print(getMessage());
+ writer.flush();
+ }
+ break;
+ case EVENT:
+ setMessage(message);
+ Enumeration enum = listeners.elements();
+ while (enum.hasMoreElements()) {
+ MessageEvent messEv = new MessageEvent(getMessage());
+ messEv.setMessageType(MessageEvent.ERROR);
+ ((MessageListener) enum.nextElement()).
+ processMessage(messEv);
+ }
+ break;
+ case NONE:
+ //do nothing
+ break;
+ default:
+ System.err.print(errorMessage);
}
- break;
- case NONE:
- //do nothing
- break;
- default:
- System.err.print(errorMessage);
- }
- }
-
- /**
- * convenience method which adds a return to the error message
- * @param errorMessage the message for the user
- */
- public static void errorln (String errorMessage) {
- error (errorMessage+"\n");
- }
-
- /**
- * adds a MessageListener which listens for MessageEvents
- * @param MessageListener the listener to add
- */
- public static void addListener(MessageListener listener) {
- listeners.addElement(listener);
- }
-
- /**
- * removes a MessageListener
- * @param MessageListener the listener to remove
- */
- public static void removeListener(MessageListener listener) {
- listeners.removeElement(listener);
- }
-
- /**
- * sets the output method
- * @param method the output method to use, allowed values are<br>
- * MessageHandler.SCREEN, MessageHandler.FILE, MessageHandler.EVENT
- * MessageHandler.NONE
- */
- public static void setOutputMethod (int method) {
- if (method > NONE) {
- MessageHandler.error("Error: Unknown output method");
- } else {
- outputMethod = method;
- }
- }
-
- /**
- * informs what output method is set
- * @return the output method
- */
- public static int getOutputMethod () {
- return outputMethod;
- }
-
- /**
- * sets the logfile name
- * @param filename name of the logfile
- * @param append if true, the logfile is appended
- */
- public static void setLogfileName (String filename, boolean append) {
- logfileName = filename;
- appendToFile = append;
- }
-
- /**
- * returns the logfile name
- * @return String containing the logfile name
- */
- public static String getLogfileName () {
- return logfileName;
- }
-
- /**
- * helper file which opens the file for output method FILE
- */
- private static void openFile () {
- try {
- writer = new PrintWriter (new FileWriter (logfileName,appendToFile),true);
- writer.println("\n==============================================");
- fileOpened = true;
- } catch (IOException ioe) {
- System.err.println("Error: " + ioe);
- }
- }
-
- /**
- * if set to true an id string is prefixed to every message
- * uses the thread info as an id for the message producer. Should be used if
- * more than one instance of Fop is running in the same JVM
- * this id becomes a prefix to every message
- */
- private static String getID () {
- return Thread.currentThread().toString() ;
- }
-
- /**
- * if set to true an id string is prefixed to every message
- * uses the thread info as an id for the message producer. Should be used if
- * more than one instance of Fop is running in the same JVM
- * this id becomes a prefix to every message
- *
- * @param id boolean (default is false)
- */
-
- public static void setID (boolean id) {
- IDisSet = id;
- }
+ }
+
+ /**
+ * convenience method which adds a return to the error message
+ * @param errorMessage the message for the user
+ */
+ public static void errorln (String errorMessage) {
+ error (errorMessage + "\n");
+ }
+
+ /**
+ * adds a MessageListener which listens for MessageEvents
+ * @param MessageListener the listener to add
+ */
+ public static void addListener(MessageListener listener) {
+ listeners.addElement(listener);
+ }
+
+ /**
+ * removes a MessageListener
+ * @param MessageListener the listener to remove
+ */
+ public static void removeListener(MessageListener listener) {
+ listeners.removeElement(listener);
+ }
+
+ /**
+ * sets the output method
+ * @param method the output method to use, allowed values are<br>
+ * MessageHandler.SCREEN, MessageHandler.FILE, MessageHandler.EVENT
+ * MessageHandler.NONE
+ */
+ public static void setOutputMethod (int method) {
+ if (method > NONE) {
+ MessageHandler.error("Error: Unknown output method");
+ } else {
+ outputMethod = method;
+ }
+ }
+
+ /**
+ * informs what output method is set
+ * @return the output method
+ */
+ public static int getOutputMethod () {
+ return outputMethod;
+ }
+
+ /**
+ * sets the logfile name
+ * @param filename name of the logfile
+ * @param append if true, the logfile is appended
+ */
+ public static void setLogfileName (String filename, boolean append) {
+ logfileName = filename;
+ appendToFile = append;
+ }
+
+ /**
+ * returns the logfile name
+ * @return String containing the logfile name
+ */
+ public static String getLogfileName () {
+ return logfileName;
+ }
+
+ /**
+ * helper file which opens the file for output method FILE
+ */
+ private static void openFile () {
+ try {
+ writer = new PrintWriter (
+ new FileWriter (logfileName, appendToFile), true);
+ writer.println("\n==============================================");
+ fileOpened = true;
+ } catch (IOException ioe) {
+ System.err.println("Error: " + ioe);
+ }
+ }
+
+ /**
+ * if set to true an id string is prefixed to every message
+ * uses the thread info as an id for the message producer. Should be used if
+ * more than one instance of Fop is running in the same JVM
+ * this id becomes a prefix to every message
+ */
+ private static String getID () {
+ return Thread.currentThread().toString();
+ }
+
+ /**
+ * if set to true an id string is prefixed to every message
+ * uses the thread info as an id for the message producer. Should be used if
+ * more than one instance of Fop is running in the same JVM
+ * this id becomes a prefix to every message
+ *
+ * @param id boolean (default is false)
+ */
+
+ public static void setID (boolean id) {
+ IDisSet = id;
+ }
+
+ /**
+ * if set to true all normal messages are suppressed.
+ * error messages are displayed allthesame
+ *
+ * @param quietMode boolean (default is false)
+ */
+ public static void setQuiet(boolean quietMode) {
+ quiet = quietMode;
+ }
}