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.16
Committed: Sun Aug 1 10:41:08 2004 UTC (19 years, 8 months ago) by tdb
Branch: MAIN
CVS Tags: HEAD
Changes since 1.15: +2 -2 lines
Log Message:
Catch a lot of old URL's and update them. Also remove a couple of old files
that aren't used.

File Contents

# Content
1 /*
2 * i-scream central monitoring system
3 * http://www.i-scream.org
4 * 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 //---PACKAGE DECLARATION---
22 package uk.org.iscream.cms.util;
23
24 //---IMPORTS---
25 import java.util.Date;
26 import java.text.DateFormat;
27 import java.util.Locale;
28
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 * @author $Author: tdb $
36 * @version $Id: FormatName.java,v 1.15 2003/02/05 14:27:59 tdb Exp $
37 */
38 public class FormatName {
39
40 //---FINAL ATTRIBUTES---
41
42 /**
43 * An array of names of verbosity levels.
44 * Thus logging messages are now "classed" by the level
45 */
46 private final static String[] VERBOSITY_NAMES = {"FATAL ", "ERROR ", "WARNING", "SYSMSG ", "SYSINIT", "DEBUG "};
47
48 //---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 * @param friendlyName the configured name of the instance of the calling component the class is in (eg "filter1")
57 * @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 public static String getName(String friendlyName, String className, String revision) {
63 if (friendlyName == null && className == null) {
64 return "{static(v" + revision.substring(11, revision.length() - 2) + ")}";
65 } else if (friendlyName == null) {
66 return "{"+ tidyClassName(className) + "(v" + revision.substring(11, revision.length() - 2) + ")}";
67 } else if (className == null) {
68 return friendlyName + "{static(v" + revision.substring(11, revision.length() - 2) + ")}";
69 } else {
70 return friendlyName + "{"+ tidyClassName(className) + "(v" + revision.substring(11, revision.length() - 2) + ")}";
71 }
72 }
73
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 String date = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM).format(new Date());
88 return "[" + date + "] [" + VERBOSITY_NAMES[verbosity] + "] " + source + ": " + message;
89 }
90
91 /**
92 * If the class name begins with uk.org.iscream.cms.server
93 * 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 String prefix = "uk.org.iscream.cms.server";
102 if (className.startsWith(prefix)) {
103 return className.substring(prefix.length()+1);
104 }
105 return className;
106 }
107
108 //---CONSTRUCTORS---
109
110 /**
111 * A private constructor ensures an instance of this
112 * class CANNOT be created.
113 */
114 private FormatName() {
115 // 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 }