KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > tigris > scarab > util > build > l10nchecker > L10nIssue


1 package org.tigris.scarab.util.build.l10nchecker;
2
3 import java.text.MessageFormat JavaDoc;
4
5 /* ================================================================
6  * Copyright (c) 2005 CollabNet. All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are
10  * met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in the
17  * documentation and/or other materials provided with the distribution.
18  *
19  * 3. The end-user documentation included with the redistribution, if
20  * any, must include the following acknowlegement: "This product includes
21  * software developed by Collab.Net <http://www.Collab.Net/>."
22  * Alternately, this acknowlegement may appear in the software itself, if
23  * and wherever such third-party acknowlegements normally appear.
24  *
25  * 4. The hosted project names must not be used to endorse or promote
26  * products derived from this software without prior written
27  * permission. For written permission, please contact info@collab.net.
28  *
29  * 5. Products derived from this software may not use the "Tigris" or
30  * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without
31  * prior written permission of Collab.Net.
32  *
33  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
34  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
35  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
36  * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
37  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
39  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
40  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
41  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
42  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
43  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
44  *
45  * ====================================================================
46  *
47  * This software consists of voluntary contributions made by many
48  * individuals on behalf of Collab.Net.
49  */

50
51 /**
52  * Class that represents an issue template
53  */

54 public abstract class L10nIssue
55 {
56     /** ignore message (default) */
57     public final static int MESSAGE_IGNORE = -1;
58     
59     /** INFORMATIONAL message */
60     public final static int MESSAGE_INFO = 0;
61
62     /** ERROR message */
63     public final static int MESSAGE_ERROR = 1;
64
65     /** WARNING message */
66     public final static int MESSAGE_WARNING = 2;
67
68     /**
69      * Utility function to perform a message translation for a specific issue
70      * @return The formatted string. In case the string cannot be formatted
71      * (i.e. MessageFormat.format () throws an exception), null is returned.
72      */

73     public String JavaDoc formatMessage ()
74     {
75         try
76         {
77             String JavaDoc out = MessageFormat.format(getMessageTemplate(), getParameters());;
78             return out;
79         }
80         catch (IllegalArgumentException JavaDoc ex_iae)
81         {
82             System.err.println("Error processing " + getMessageTemplate() + ": " + ex_iae.getLocalizedMessage());
83         }
84         return null;
85     }
86
87     /**
88      * Return true in case the current issue is an error message
89      *
90      * @return true, if the underlying issue is an issue representing
91      * an error.
92      */

93     public final boolean isError()
94     {
95         return MESSAGE_ERROR == getMessageType();
96     }
97
98     /**
99      * Return true in case the current issue is a warning
100      *
101      * @return true, if the underlying issue is an issue representing
102      * a warning.
103      */

104     public final boolean isWarning()
105     {
106         return MESSAGE_WARNING == getMessageType();
107     }
108
109     /**
110      * Return true in case the current issue is an informational message
111      *
112      * @return true, if the underlying issue is an issue representing
113      * an information.
114      */

115     public final boolean isInfo()
116     {
117         return MESSAGE_INFO == getMessageType();
118     }
119     
120     /**
121      * Return the message template that is used to display the error text.
122      *
123      * @return Returns the messageTemplate.
124      */

125     abstract public String JavaDoc getMessageTemplate();
126
127     /**
128      * Get the parameters for a message
129      *
130      * @return the parameters. The parameters have to be an array
131      * representing objects.
132      */

133     abstract public Object JavaDoc[] getParameters();
134     
135     /**
136      * Return the message type for the current object. The message type
137      * is retrieved from the corresponding entry in
138      * {@link L10nIssueTemplates}
139      *
140      * @return Returns the messageType.
141      */

142     public final int getMessageType()
143     {
144         return L10nIssueTemplates.getMessageType(this.getClass());
145     }
146     
147     /**
148      * Set the severity of the current message
149      *
150      * @param messageType The messageType to set.
151      */

152     public final void setMessageType(int messageType)
153     {
154         L10nIssueTemplates.setMessageType(this.getClass(), messageType);
155     }
156 }
157
Popular Tags