001/* 002 * $RCSfile: MsgLogger.java,v $ 003 * $Revision: 1.1 $ 004 * $Date: 2005/02/11 05:02:26 $ 005 * $State: Exp $ 006 * 007 * Class: MsgLogger 008 * 009 * Description: Facility to log messages (abstract) 010 * 011 * 012 * 013 * COPYRIGHT: 014 * 015 * This software module was originally developed by Raphaël Grosbois and 016 * Diego Santa Cruz (Swiss Federal Institute of Technology-EPFL); Joel 017 * Askelöf (Ericsson Radio Systems AB); and Bertrand Berthelot, David 018 * Bouchard, Félix Henry, Gerard Mozelle and Patrice Onno (Canon Research 019 * Centre France S.A) in the course of development of the JPEG2000 020 * standard as specified by ISO/IEC 15444 (JPEG 2000 Standard). This 021 * software module is an implementation of a part of the JPEG 2000 022 * Standard. Swiss Federal Institute of Technology-EPFL, Ericsson Radio 023 * Systems AB and Canon Research Centre France S.A (collectively JJ2000 024 * Partners) agree not to assert against ISO/IEC and users of the JPEG 025 * 2000 Standard (Users) any of their rights under the copyright, not 026 * including other intellectual property rights, for this software module 027 * with respect to the usage by ISO/IEC and Users of this software module 028 * or modifications thereof for use in hardware or software products 029 * claiming conformance to the JPEG 2000 Standard. Those intending to use 030 * this software module in hardware or software products are advised that 031 * their use may infringe existing patents. The original developers of 032 * this software module, JJ2000 Partners and ISO/IEC assume no liability 033 * for use of this software module or modifications thereof. No license 034 * or right to this software module is granted for non JPEG 2000 Standard 035 * conforming products. JJ2000 Partners have full right to use this 036 * software module for his/her own purpose, assign or donate this 037 * software module to any third party and to inhibit third parties from 038 * using this software module for non JPEG 2000 Standard conforming 039 * products. This copyright notice must be included in all copies or 040 * derivative works of this software module. 041 * 042 * Copyright (c) 1999/2000 JJ2000 Partners. 043 * 044 * 045 * 046 */ 047 048 049package jj2000.j2k.util; 050 051/** 052 * This class provides a simple common abstraction of a facility that logs 053 * and/or displays messages or simple strings. The underlying facility can be 054 * a terminal, text file, text area in a GUI display, dialog boxes in a GUI 055 * display, etc., or a combination of those. 056 * 057 * <P>Messages are short strings (a couple of lines) that indicate some state 058 * of the program, and that have a severity code associated with them (see 059 * below). Simple strings is text (can be long) that has no severity code 060 * associated with it. Typical use of simple strings is to display help texts. 061 * 062 * <P>Each message has a severity code, which can be one of the following: 063 * LOG, INFO, WARNING, ERROR. Each implementation should treat each severity 064 * code in a way which corresponds to the type of diplay used. 065 * 066 * <P>Messages are printed via the 'printmsg()' method. Simple strings are 067 * printed via the 'print()', 'println()' and 'flush()' methods, each simple 068 * string is considered to be terminated once the 'flush()' method has been 069 * called. The 'printmsg()' method should never be called before a previous 070 * simple string has been terminated. 071 * 072 * */ 073public interface MsgLogger { 074 075 /** Severity of message. LOG messages are just for bookkeeping and do not 076 * need to be displayed in the majority of cases */ 077 public static final int LOG = 0; 078 079 /** Severity of message. INFO messages should be displayed just for user 080 * feedback. */ 081 public static final int INFO = 1; 082 083 /** Severity of message. WARNING messages denote that an unexpected state 084 * has been reached and should be given as feedback to the user. */ 085 public static final int WARNING = 2; 086 087 /** Severity of message. ERROR messages denote that something has gone 088 * wrong and probably that execution has ended. They should be definetely 089 * displayed to the user. */ 090 public static final int ERROR = 3; 091 092 /** 093 * Prints the message 'msg' to the output device, appending a newline, 094 * with severity 'sev'. Some implementations where the appended newline is 095 * irrelevant may not append the newline. Depending on the implementation 096 * the severity of the message may be added to it. The message is 097 * reformatted as appropriate for the output devic, but any newline 098 * characters are respected. 099 * 100 * @param sev The message severity (LOG, INFO, etc.) 101 * 102 * @param msg The message to display 103 * 104 * 105 * */ 106 public void printmsg(int sev, String msg); 107 108 /** 109 * Prints the string 'str' to the output device, appending a line 110 * return. The message is reformatted as appropriate to the particular 111 * diplaying device, where 'flind' and 'ind' are used as hints for 112 * performing that operation. However, any newlines appearing in 'str' are 113 * respected. The output device may not display the string until flush() 114 * is called. Some implementations may automatically flush when this 115 * method is called. This method just prints the string, the string does 116 * not make part of a "message" in the sense that no severity is 117 * associated to it. 118 * 119 * @param str The string to print 120 * 121 * @param flind Indentation of the first line 122 * 123 * @param ind Indentation of any other lines. 124 * 125 * 126 * */ 127 public void println(String str, int flind, int ind); 128 129 /** 130 * Writes any buffered data from the println() method to the device. 131 * 132 * 133 * */ 134 public void flush(); 135}