ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/util/uk/org/iscream/cms/util/FormatName.java
Revision: 1.15
Committed: Wed Feb 5 14:27:59 2003 UTC (21 years, 3 months ago) by tdb
Branch: MAIN
Changes since 1.14: +2 -2 lines
Log Message:
Util package has been pulled out of the server. Next step will be to modify
the server and conient (and anything else?) to use this instead. New
package name is uk.org.iscream.cms.util. All the java files were moved with
a repo copy, so they retain their history.

File Contents

# User Rev Content
1 tdb 1.13 /*
2     * i-scream central monitoring system
3 tdb 1.14 * http://www.i-scream.org.uk
4 tdb 1.13 * Copyright (C) 2000-2002 i-scream
5     *
6     * This program is free software; you can redistribute it and/or
7     * modify it under the terms of the GNU General Public License
8     * as published by the Free Software Foundation; either version 2
9     * of the License, or (at your option) any later version.
10     *
11     * This program is distributed in the hope that it will be useful,
12     * but WITHOUT ANY WARRANTY; without even the implied warranty of
13     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     * GNU General Public License for more details.
15     *
16     * You should have received a copy of the GNU General Public License
17     * along with this program; if not, write to the Free Software
18     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19     */
20    
21 ajm 1.1 //---PACKAGE DECLARATION---
22 tdb 1.15 package uk.org.iscream.cms.util;
23 ajm 1.1
24     //---IMPORTS---
25 tdb 1.5 import java.util.Date;
26     import java.text.DateFormat;
27     import java.util.Locale;
28 ajm 1.1
29     /**
30     * This class provides static methods to format the
31     * name of a calling object. It's main use is by
32     * the various objects within the system to create
33     * a toString String to send to the logger.
34     *
35 tdb 1.13 * @author $Author: tdb $
36 tdb 1.15 * @version $Id: FormatName.java,v 1.14 2002/05/21 16:47:19 tdb Exp $
37 ajm 1.1 */
38 ajm 1.2 public class FormatName {
39 ajm 1.1
40     //---FINAL ATTRIBUTES---
41    
42 tdb 1.5 /**
43     * An array of names of verbosity levels.
44 tdb 1.6 * Thus logging messages are now "classed" by the level
45 tdb 1.5 */
46     private final static String[] VERBOSITY_NAMES = {"FATAL ", "ERROR ", "WARNING", "SYSMSG ", "SYSINIT", "DEBUG "};
47    
48 ajm 1.1 //---STATIC METHODS---
49    
50     /**
51     * This method takes a set of information about the calling
52     * class and constructs a tidy String name to be returned.
53     * This is of use to the override of the toString() as
54     * implemented by most of the iscream objects.
55     *
56 ajm 1.2 * @param friendlyName the configured name of the instance of the calling component the class is in (eg "filter1")
57 ajm 1.1 * @param className the class name of the calling class, as obtained by getClass().getName()
58     * @param revision the CVS Revision number for the calling class
59     *
60     * @return an iscream standard name to be used as a toString()
61     */
62 ajm 1.2 public static String getName(String friendlyName, String className, String revision) {
63 tdb 1.5 if (friendlyName == null && className == null) {
64     return "{static(v" + revision.substring(11, revision.length() - 2) + ")}";
65     } else if (friendlyName == null) {
66 ajm 1.4 return "{"+ tidyClassName(className) + "(v" + revision.substring(11, revision.length() - 2) + ")}";
67 ajm 1.3 } else if (className == null) {
68     return friendlyName + "{static(v" + revision.substring(11, revision.length() - 2) + ")}";
69     } else {
70 ajm 1.4 return friendlyName + "{"+ tidyClassName(className) + "(v" + revision.substring(11, revision.length() - 2) + ")}";
71 ajm 1.1 }
72 ajm 1.4 }
73 tdb 1.5
74     /**
75     * This method generates a nicely formatted line for the log,
76     * including the date/time and the source of the message. The date
77     * and time are formatted using the DateFormat class, and the source
78     * class is formatted using the toString() method found in every
79     * source file. This is then prepended to the message and returned.
80     *
81     * @param source A string representation of the calling object.
82     * @param verbosity The verbosity of the message.
83     * @param message The message to be logged.
84     * @return The string to be written to the log.
85     */
86     public static String formatLogLine(String source, int verbosity, String message){
87 tdb 1.11 String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).format(new Date());
88 tdb 1.5 return "[" + date + "] [" + VERBOSITY_NAMES[verbosity] + "] " + source + ": " + message;
89     }
90    
91 ajm 1.4 /**
92 tdb 1.12 * If the class name begins with uk.org.iscream.cms.server
93 ajm 1.4 * this method will trim it off, otherwise it
94     * leaves the string unchanged.
95     *
96     * @param className the name of a class
97     *
98     * @return the tidy version of it
99     */
100     private static String tidyClassName(String className) {
101 tdb 1.12 String prefix = "uk.org.iscream.cms.server";
102 tdb 1.9 if (className.startsWith(prefix)) {
103 tdb 1.10 return className.substring(prefix.length()+1);
104 ajm 1.4 }
105     return className;
106 ajm 1.1 }
107    
108     //---CONSTRUCTORS---
109    
110     /**
111     * A private constructor ensures an instance of this
112     * class CANNOT be created.
113     */
114 ajm 1.2 private FormatName() {
115 ajm 1.1 // do nothing on purpose!
116     }
117    
118     //---PUBLIC METHODS---
119    
120     //---PRIVATE METHODS---
121    
122     //---ACCESSOR/MUTATOR METHODS---
123    
124     //---ATTRIBUTES---
125    
126     //---STATIC ATTRIBUTES---
127    
128     }