Ignore:
Timestamp:
10/10/11 22:15:34 (13 years ago)
Author:
sherbold
Message:
  • various changed to de.ugoe.cs.util.Console:
    • changed instantiation method of the instance, i.e., how the Singleton property is guaranteed
    • added method reset() to remove all listeners at once
    • added functions to check is a given listener is registered
  • various changes to de.ugoe.cs.util.FileOutputListener?:
    • added null-checks for writer to improve behavior in case of improper usage
    • added method getFilename() to check to which file the listener writes.
  • added method setDebug() to de.ugoe.cs.util.TextConsole? to define whether trace stream is displayed or not.
Location:
trunk/JavaHelperLib/src/de/ugoe/cs/util/console
Files:
3 edited

Legend:

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

    r210 r250  
    7171         * </p> 
    7272         */ 
    73         private static Console theInstance = null; 
     73        private static Console theInstance = new Console(); 
    7474 
    7575        /** 
     
    8282         */ 
    8383        public static Console getInstance() { 
    84                 if (theInstance == null) { 
    85                         theInstance = new Console(); 
    86                 } 
    8784                return theInstance; 
    8885        } 
     
    9087        /** 
    9188         * <p> 
     89         * Resets the Console by creating a new instance that has no registered 
     90         * observers. 
     91         * </p> 
     92         */ 
     93        public static void reset() { 
     94                theInstance.init(); 
     95        } 
     96 
     97        /** 
     98         * <p> 
    9299         * Creates a new Console. Private to prevent multiple instances (Singleton). 
    93100         * </p> 
    94101         */ 
    95102        private Console() { 
     103                init(); 
     104        } 
     105 
     106        /** 
     107         * <p> 
     108         * Initializes the console. 
     109         * </p> 
     110         */ 
     111        private void init() { 
    96112                outputListener = new LinkedHashSet<IOutputListener>(); 
    97113                errorListener = new LinkedHashSet<IErrorListener>(); 
     
    257273        /** 
    258274         * <p> 
     275         * Checks if a listener is registered. 
     276         * </p> 
     277         *  
     278         * @param listener 
     279         *            listener that is checked 
     280         * @return true, is listener is registered; false, otherwise 
     281         */ 
     282        public boolean hasOutputListener(IOutputListener listener) { 
     283                return outputListener.contains(listener); 
     284        } 
     285 
     286        /** 
     287         * <p> 
     288         * Checks if a listener is registered. 
     289         * </p> 
     290         *  
     291         * @param listener 
     292         *            listener that is checked 
     293         * @return true, is listener is registered; false, otherwise 
     294         */ 
     295        public boolean hasErrorListener(IErrorListener listener) { 
     296                return errorListener.contains(listener); 
     297        } 
     298 
     299        /** 
     300         * <p> 
     301         * Checks if a listener is registered. 
     302         * </p> 
     303         *  
     304         * @param listener 
     305         *            listener that is checked 
     306         * @return true, is listener is registered; false, otherwise 
     307         */ 
     308        public boolean hasTraceListener(ITraceListener listener) { 
     309                return traceListener.contains(listener); 
     310        } 
     311 
     312        /** 
     313         * <p> 
     314         * Checks if a listener is registered. 
     315         * </p> 
     316         *  
     317         * @param listener 
     318         *            listener that is checked 
     319         * @return true, is listener is registered; false, otherwise 
     320         */ 
     321        public boolean hasCommandListener(ICommandListener listener) { 
     322                return commandListener.contains(listener); 
     323        } 
     324 
     325        /** 
     326         * <p> 
     327         * Checks if a listener is registered. 
     328         * </p> 
     329         *  
     330         * @param listener 
     331         *            listener that is checked 
     332         * @return true, is listener is registered; false, otherwise 
     333         */ 
     334        public boolean hasExceptionListener(IExceptionListener listener) { 
     335                return exceptionListener.contains(listener); 
     336        } 
     337 
     338        /** 
     339         * <p> 
    259340         * Sends a message to all observers containing the message that was passed 
    260341         * to this function. 
     
    265346         */ 
    266347        public static void print(String msg) { 
    267                 if (theInstance == null) { 
    268                         getInstance(); 
    269                 } 
    270348                for (IOutputListener observer : theInstance.outputListener) { 
    271349                        observer.outputMsg(msg); 
     
    283361         */ 
    284362        public static void println(String msg) { 
    285                 if (theInstance == null) { 
    286                         getInstance(); 
    287                 } 
    288363                for (IOutputListener observer : theInstance.outputListener) { 
    289364                        observer.outputMsg(msg + StringTools.ENDLINE); 
     
    301376         */ 
    302377        public static void printerr(String errMsg) { 
    303                 if (theInstance == null) { 
    304                         getInstance(); 
    305                 } 
    306378                for (IErrorListener observer : theInstance.errorListener) { 
    307379                        observer.errorMsg(errMsg); 
     
    319391         */ 
    320392        public static void printerrln(String errMsg) { 
    321                 if (theInstance == null) { 
    322                         getInstance(); 
    323                 } 
    324393                for (IErrorListener observer : theInstance.errorListener) { 
    325394                        observer.errorMsg(errMsg + StringTools.ENDLINE); 
     
    336405         */ 
    337406        public static void logException(Exception e) { 
    338                 if (theInstance == null) { 
    339                         getInstance(); 
    340                 } 
    341407                for (IExceptionListener observer : theInstance.exceptionListener) { 
    342408                        observer.logException(e); 
     
    354420         */ 
    355421        public static void trace(String traceMsg) { 
    356                 if (theInstance == null) { 
    357                         getInstance(); 
    358                 } 
    359422                for (ITraceListener observer : theInstance.traceListener) { 
    360423                        observer.traceMsg(traceMsg); 
     
    373436         */ 
    374437        public static void traceln(String traceMsg) { 
    375                 if (theInstance == null) { 
    376                         getInstance(); 
    377                 } 
    378438                for (ITraceListener observer : theInstance.traceListener) { 
    379439                        observer.traceMsg(traceMsg + StringTools.ENDLINE); 
     
    390450         */ 
    391451        static void commandNotification(String command) { 
    392                 if (theInstance == null) { 
    393                         getInstance(); 
    394                 } 
    395452                for (ICommandListener observer : theInstance.commandListener) { 
    396453                        observer.commandNotification(command); 
  • trunk/JavaHelperLib/src/de/ugoe/cs/util/console/FileOutputListener.java

    r243 r250  
    3939         * </p> 
    4040         */ 
    41         FileWriter writer; 
     41        FileWriter writer = null; 
    4242 
    4343        /** 
     
    7878        public void stop() { 
    7979                Console.getInstance().removeOutputListener(this); 
    80                 try { 
    81                         writer.close(); 
    82                 } catch (IOException e) { 
    83                         Console.printerrln("Failed to close file " + filename + ": " 
    84                                         + e.getMessage()); 
     80                if( writer!=null ) { 
     81                        try { 
     82                                writer.close(); 
     83                                writer = null; 
     84                        } catch (IOException e) { 
     85                                Console.printerrln("Failed to close file " + filename + ": " 
     86                                                + e.getMessage()); 
     87                        } 
    8588                } 
    8689        } 
     
    9598        @Override 
    9699        public void outputMsg(String newMessage) { 
    97                 try { 
    98                         writer.write(newMessage); 
    99                 } catch (IOException e) { 
    100                         if (!failureLogged) { 
    101                                 Console.printerrln("FileOutpustListener for file " + filename 
    102                                                 + " broken: " + e.getMessage()); 
    103                                 failureLogged = true; 
     100                if( writer!=null ) { 
     101                        try { 
     102                                writer.write(newMessage); 
     103                        } catch (IOException e) { 
     104                                if (!failureLogged) { 
     105                                        Console.printerrln("FileOutpustListener for file " + filename 
     106                                                        + " broken: " + e.getMessage()); 
     107                                        failureLogged = true; 
     108                                } 
    104109                        } 
    105110                } 
    106111        } 
    107112 
     113        /** 
     114         * <p> 
     115         * Returns the name of the log file used by this listener. 
     116         * </p> 
     117         *  
     118         * @return name of the log file 
     119         */ 
     120        public String getFilename() { 
     121                return filename; 
     122        } 
     123 
    108124} 
  • trunk/JavaHelperLib/src/de/ugoe/cs/util/console/TextConsole.java

    r210 r250  
    126126                return new String(buffer); 
    127127        } 
     128         
     129        /** 
     130         * <p> 
     131         * Configures if the debug mode of the text console is enabled. 
     132         * </p> 
     133         * @param debug if true, debug mode is enabled.  
     134         */ 
     135        public void setDebug(boolean debug) { 
     136                debugMode = debug; 
     137        } 
    128138 
    129139} 
Note: See TracChangeset for help on using the changeset viewer.