Ignore:
Timestamp:
09/26/11 22:55:19 (13 years ago)
Author:
sherbold
Message:

Major change to the Console provided by this library. The interface de.ugoe.cs.console.ConsoleObserver? is deprecated and split into the five interface IOutputListener, IErrorListener, ITraceListener, IExceptionListener, and ICommandListener.

The rational for this change is to provide the possibility to listen to only parts of what is send to the console to provide better capabilities for target-oriented handling of the different streams, e.g., for exception logging.

Location:
trunk/JavaHelperLib/src/de/ugoe/cs/util/console
Files:
6 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaHelperLib/src/de/ugoe/cs/util/console/Console.java

    r186 r199  
    11package de.ugoe.cs.util.console; 
    22 
    3 import java.util.ArrayList; 
    4 import java.util.List; 
     3import java.util.Collection; 
     4import java.util.LinkedHashSet; 
    55 
    66import de.ugoe.cs.util.StringTools; 
     7import de.ugoe.cs.util.console.listener.ICommandListener; 
     8import de.ugoe.cs.util.console.listener.IErrorListener; 
     9import de.ugoe.cs.util.console.listener.IExceptionListener; 
     10import de.ugoe.cs.util.console.listener.IOutputListener; 
     11import de.ugoe.cs.util.console.listener.ITraceListener; 
    712 
    813/** 
     
    2631public final class Console { 
    2732 
    28         /** 
    29          * <p> 
    30          * List of observers. 
    31          * </p> 
    32          */ 
    33         private List<ConsoleObserver> observers; 
     33        private Collection<IOutputListener> outputListener; 
     34        private Collection<IErrorListener> errorListener; 
     35        private Collection<ITraceListener> traceListener; 
     36        private Collection<ICommandListener> commandListener; 
     37        private Collection<IExceptionListener> exceptionListener; 
    3438 
    3539        /** 
     
    6165         */ 
    6266        private Console() { 
    63                 observers = new ArrayList<ConsoleObserver>(); 
     67                outputListener = new LinkedHashSet<IOutputListener>(); 
     68                errorListener = new LinkedHashSet<IErrorListener>(); 
     69                traceListener = new LinkedHashSet<ITraceListener>(); 
     70                commandListener = new LinkedHashSet<ICommandListener>(); 
     71                exceptionListener = new LinkedHashSet<IExceptionListener>(); 
    6472        } 
    6573 
     
    6977         * </p> 
    7078         *  
     79         * @deprecated use registerXYZListener instead 
    7180         * @param observer 
    7281         *            observer to be added 
    7382         */ 
    7483        public void registerObserver(ConsoleObserver observer) { 
    75                 observers.add(observer); 
     84                registerOutputListener(observer); 
     85                registerErrorListener(observer); 
     86                registerTraceListener(observer); 
     87                registerCommandListener(observer); 
     88                registerExceptionListener(observer); 
     89        } 
     90 
     91        /** 
     92         * <p> 
     93         * Registers an output listener. 
     94         * </p> 
     95         *  
     96         * @param listener 
     97         *            listener that is registered 
     98         */ 
     99        public void registerOutputListener(IOutputListener listener) { 
     100                outputListener.add(listener); 
     101        } 
     102 
     103        /** 
     104         * <p> 
     105         * Registers an error listener. 
     106         * </p> 
     107         *  
     108         * @param listener 
     109         *            listener that is registered 
     110         */ 
     111        public void registerErrorListener(IErrorListener listener) { 
     112                errorListener.add(listener); 
     113        } 
     114 
     115        /** 
     116         * <p> 
     117         * Registers a trace listener. 
     118         * </p> 
     119         *  
     120         * @param listener 
     121         *            listener that is registered 
     122         */ 
     123        public void registerTraceListener(ITraceListener listener) { 
     124                traceListener.add(listener); 
     125        } 
     126 
     127        /** 
     128         * <p> 
     129         * Registers a command listener. 
     130         * </p> 
     131         *  
     132         * @param listener 
     133         *            listener that is registered 
     134         */ 
     135        public void registerCommandListener(ICommandListener listener) { 
     136                commandListener.add(listener); 
     137        } 
     138 
     139        /** 
     140         * <p> 
     141         * Registers an exception listener. 
     142         * </p> 
     143         *  
     144         * @param listener 
     145         *            listener that is registered 
     146         */ 
     147        public void registerExceptionListener(IExceptionListener listener) { 
     148                exceptionListener.add(listener); 
    76149        } 
    77150 
     
    81154         * </p> 
    82155         *  
     156         * @deprecated use removeXYZListener instead 
    83157         * @param observer 
    84158         *            observer to be removed 
    85159         */ 
    86160        public void deleteObserver(ConsoleObserver observer) { 
    87                 observers.remove(observer); 
     161                removeOutputListener(observer); 
     162                removeErrorListener(observer); 
     163                removeTraceListener(observer); 
     164                removeCommandListener(observer); 
     165                removeExceptionListener(observer); 
     166        } 
     167 
     168        /** 
     169         * <p> 
     170         * Removes an output listener. 
     171         * </p> 
     172         *  
     173         * @param listener 
     174         *            listener that is removed 
     175         */ 
     176        public void removeOutputListener(IOutputListener listener) { 
     177                outputListener.remove(listener); 
     178        } 
     179 
     180        /** 
     181         * <p> 
     182         * Removes an error listener. 
     183         * </p> 
     184         *  
     185         * @param listener 
     186         *            listener that is removed 
     187         */ 
     188        public void removeErrorListener(IErrorListener listener) { 
     189                errorListener.remove(listener); 
     190        } 
     191 
     192        /** 
     193         * <p> 
     194         * Removes an trace listener. 
     195         * </p> 
     196         *  
     197         * @param listener 
     198         *            listener that is removed 
     199         */ 
     200        public void removeTraceListener(ITraceListener listener) { 
     201                traceListener.remove(listener); 
     202        } 
     203 
     204        /** 
     205         * <p> 
     206         * Removes a command listener. 
     207         * </p> 
     208         *  
     209         * @param listener 
     210         *            listener that is removed 
     211         */ 
     212        public void removeCommandListener(ICommandListener listener) { 
     213                commandListener.remove(listener); 
     214        } 
     215 
     216        /** 
     217         * <p> 
     218         * Removes an exception listener. 
     219         * </p> 
     220         *  
     221         * @param listener 
     222         *            listener that is removed 
     223         */ 
     224        public void removeExceptionListener(IExceptionListener listener) { 
     225                exceptionListener.remove(listener); 
    88226        } 
    89227 
     
    101239                        getInstance(); 
    102240                } 
    103                 for (ConsoleObserver observer : theInstance.observers) { 
     241                for (IOutputListener observer : theInstance.outputListener) { 
    104242                        observer.updateText(msg); 
    105243                } 
     
    119257                        getInstance(); 
    120258                } 
    121                 for (ConsoleObserver observer : theInstance.observers) { 
     259                for (IOutputListener observer : theInstance.outputListener) { 
    122260                        observer.updateText(msg + StringTools.ENDLINE); 
    123261                } 
     
    137275                        getInstance(); 
    138276                } 
    139                 for (ConsoleObserver observer : theInstance.observers) { 
     277                for (IErrorListener observer : theInstance.errorListener) { 
    140278                        observer.errStream(errMsg); 
    141279                } 
     
    155293                        getInstance(); 
    156294                } 
    157                 for (ConsoleObserver observer : theInstance.observers) { 
     295                for (IErrorListener observer : theInstance.errorListener) { 
    158296                        observer.errStream(errMsg + StringTools.ENDLINE); 
    159297                } 
     
    172310                        getInstance(); 
    173311                } 
    174                 for (ConsoleObserver observer : theInstance.observers) { 
     312                for (IExceptionListener observer : theInstance.exceptionListener) { 
    175313                        observer.printStacktrace(e); 
    176314                } 
     
    190328                        getInstance(); 
    191329                } 
    192                 for (ConsoleObserver observer : theInstance.observers) { 
     330                for (ITraceListener observer : theInstance.traceListener) { 
    193331                        observer.trace(traceMsg); 
    194332                } 
     
    209347                        getInstance(); 
    210348                } 
    211                 for (ConsoleObserver observer : theInstance.observers) { 
     349                for (ITraceListener observer : theInstance.traceListener) { 
    212350                        observer.trace(traceMsg + StringTools.ENDLINE); 
    213351                } 
     
    226364                        getInstance(); 
    227365                } 
    228                 for (ConsoleObserver observer : theInstance.observers) { 
     366                for (ICommandListener observer : theInstance.commandListener) { 
    229367                        observer.commandNotification(command); 
    230368                } 
  • trunk/JavaHelperLib/src/de/ugoe/cs/util/console/ConsoleObserver.java

    r186 r199  
    11package de.ugoe.cs.util.console; 
     2 
     3import de.ugoe.cs.util.console.listener.ICommandListener; 
     4import de.ugoe.cs.util.console.listener.IErrorListener; 
     5import de.ugoe.cs.util.console.listener.IExceptionListener; 
     6import de.ugoe.cs.util.console.listener.IOutputListener; 
     7import de.ugoe.cs.util.console.listener.ITraceListener; 
    28 
    39/** 
     
    713 *  
    814 * @author Steffen Herbold 
    9  * @version 1.0 
     15 * @version 2.0 
     16 * @deprecated Use listeners defined in the package de.ugoe.cs.console.listeners instead. 
    1017 */ 
    11 public interface ConsoleObserver { 
    12  
    13         /** 
    14          * <p> 
    15          * If a new message is send to the console, all observers are updated using 
    16          * this method. 
    17          * </p> 
    18          *  
    19          * @param newMessage 
    20          *            message that was send to the console. 
    21          */ 
    22         public void updateText(String newMessage); 
    23  
    24         /** 
    25          * <p> 
    26          * Send messages to the error stream of all observers. 
    27          * </p> 
    28          *  
    29          * @param errMessage 
    30          *            error message 
    31          */ 
    32         public void errStream(String errMessage); 
    33  
    34         /** 
    35          * <p> 
    36          * Send messages to the trace stream of all observers. 
    37          * </p> 
    38          *  
    39          * @param traceMesssage 
    40          *            error message 
    41          */ 
    42         public void trace(String traceMessage); 
    43  
    44         /** 
    45          * <p> 
    46          * Prints the stack trace of an exception. 
    47          * </p> 
    48          *  
    49          * @param e 
    50          *            exception whose stack trace is to be printed 
    51          */ 
    52         public void printStacktrace(Exception e); 
    53  
    54         /** 
    55          * <p> 
    56          * Receives the command strings of all executed commands. 
    57          * </p> 
    58          *  
    59          * @param command 
    60          *            string of the command. 
    61          */ 
    62         public void commandNotification(String command); 
     18public interface ConsoleObserver extends ITraceListener, IOutputListener, IErrorListener, ICommandListener, IExceptionListener { 
    6319 
    6420} 
  • trunk/JavaHelperLib/src/de/ugoe/cs/util/console/TextConsole.java

    r186 r199  
    22 
    33import java.io.IOException; 
     4 
     5import de.ugoe.cs.util.console.listener.IErrorListener; 
     6import de.ugoe.cs.util.console.listener.IExceptionListener; 
     7import de.ugoe.cs.util.console.listener.IOutputListener; 
     8import de.ugoe.cs.util.console.listener.ITraceListener; 
    49 
    510/** 
     
    1217 * @version 1.0 
    1318 */ 
    14 public class TextConsole implements ConsoleObserver { 
     19public class TextConsole implements IOutputListener, IErrorListener, 
     20                ITraceListener, IExceptionListener { 
    1521 
    1622        /** 
     
    2733         */ 
    2834        public TextConsole() { 
    29                 Console.getInstance().registerObserver(this); 
     35                Console.getInstance().registerOutputListener(this); 
     36                Console.getInstance().registerErrorListener(this); 
     37                Console.getInstance().registerTraceListener(this); 
     38                Console.getInstance().registerExceptionListener(this); 
    3039        } 
    3140 
     
    118127        } 
    119128 
    120         /** 
    121          * <p> 
    122          * The {@link TextConsole} ignores this notification. 
    123          * </p> 
    124          *  
    125          * @see de.ugoe.cs.util.console.ConsoleObserver#commandNotification(java.lang.String) 
    126          */ 
    127         @Override 
    128         public void commandNotification(String command) { 
    129                 // ignores the notification 
    130         } 
    131129} 
Note: See TracChangeset for help on using the changeset viewer.