1 | /* |
2 | * jDTAUS Core Messages |
3 | * Copyright (C) 2005 Christian Schulte |
4 | * <cs@schulte.it> |
5 | * |
6 | * This library is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU Lesser General Public |
8 | * License as published by the Free Software Foundation; either |
9 | * version 2.1 of the License, or any later version. |
10 | * |
11 | * This library 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 GNU |
14 | * Lesser General Public License for more details. |
15 | * |
16 | * You should have received a copy of the GNU Lesser General Public |
17 | * License along with this library; if not, write to the Free Software |
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
19 | * |
20 | */ |
21 | package org.jdtaus.core.messages; |
22 | |
23 | import java.io.File; |
24 | import java.net.URL; |
25 | import java.util.Locale; |
26 | import org.jdtaus.core.container.ContainerFactory; |
27 | import org.jdtaus.core.text.Message; |
28 | |
29 | /** |
30 | * {@code Message} stating how to report a bug. |
31 | * |
32 | * @author <a href="mailto:cs@schulte.it">Christian Schulte</a> |
33 | * @version $JDTAUS: BugReportMessage.java 8641 2012-09-27 06:45:17Z schulte $ |
34 | */ |
35 | public final class BugReportMessage extends Message |
36 | { |
37 | //--Contstants-------------------------------------------------------------- |
38 | |
39 | /** Serial version UID for backwards compatibility with 1.0.x classes. */ |
40 | private static final long serialVersionUID = -6031830488657149254L; |
41 | |
42 | //---------------------------------------------------------------Constants-- |
43 | //--Message----------------------------------------------------------------- |
44 | |
45 | /** |
46 | * {@inheritDoc} |
47 | * |
48 | * @return Strings giving information for where to report bugs and where |
49 | * to find any data to attach to any bug reports. |
50 | * <ul> |
51 | * <li>[0]: the absolute path of the directory holding the application's |
52 | * logfiles.</li> |
53 | * <li>[1]: URL of the online bugtracking system.</li> |
54 | * <li>[2]: email address to alternatively send the bugreport to.</li> |
55 | * </ul> |
56 | */ |
57 | public Object[] getFormatArguments( final Locale locale ) |
58 | { |
59 | return new Object[] |
60 | { |
61 | this.logDirectory.getAbsolutePath(), |
62 | this.trackerUrl.toExternalForm(), |
63 | this.reportAddress |
64 | }; |
65 | } |
66 | |
67 | /** |
68 | * {@inheritDoc} |
69 | * |
70 | * @return The corresponding text from the message's {@code ResourceBundle}: |
71 | * <blockquote><pre> |
72 | * Please report this at {1} or send |
73 | * an email to {2} including a copy of the logfiles located in directory |
74 | * {0}. |
75 | * </pre></blockquote> |
76 | */ |
77 | public String getText( final Locale locale ) |
78 | { |
79 | return this.getBugReportMessage( locale, |
80 | this.logDirectory.getAbsolutePath(), |
81 | this.trackerUrl.toExternalForm(), |
82 | this.reportAddress ); |
83 | |
84 | } |
85 | |
86 | //-----------------------------------------------------------------Message-- |
87 | //--BugReportMessage-------------------------------------------------------- |
88 | |
89 | /** |
90 | * Directory holding the application's log files. |
91 | * @serial |
92 | */ |
93 | private File logDirectory; |
94 | |
95 | /** |
96 | * URL of the online bugtracking system. |
97 | * @serial |
98 | */ |
99 | private URL trackerUrl; |
100 | |
101 | /** |
102 | * Mail address to send the bugreport to. |
103 | * @serial |
104 | */ |
105 | private String reportAddress; |
106 | |
107 | /** |
108 | * Creates a new {@code BugReportMessage} taking the application's logfile |
109 | * directory, an URL to the application's online bugtracking system, and |
110 | * an email address where to send bugreports to alternatively. |
111 | * |
112 | * @param logDirectory the directory holding the application's logfiles. |
113 | * @param trackerUrl an URL to the application's online bugtracking system. |
114 | * @param reportAddress an email address to alternatively send bugreports |
115 | * to. |
116 | * |
117 | * @throws NullPointerException if either {@code logDirectory}, |
118 | * {@code trackerUrl} or {@code reportAddress} is {@code null}. |
119 | * @throws IllegalArgumentException if {@code logDirectory} is not a |
120 | * directory. |
121 | */ |
122 | public BugReportMessage( final File logDirectory, final URL trackerUrl, |
123 | final String reportAddress ) |
124 | { |
125 | if ( logDirectory == null ) |
126 | { |
127 | throw new NullPointerException( "logDirectory" ); |
128 | } |
129 | if ( !logDirectory.isDirectory() ) |
130 | { |
131 | throw new IllegalArgumentException( logDirectory.getAbsolutePath() ); |
132 | } |
133 | if ( trackerUrl == null ) |
134 | { |
135 | throw new NullPointerException( "trackerUrl" ); |
136 | } |
137 | if ( reportAddress == null ) |
138 | { |
139 | throw new NullPointerException( "reportAddress" ); |
140 | } |
141 | |
142 | this.logDirectory = logDirectory; |
143 | this.trackerUrl = trackerUrl; |
144 | this.reportAddress = reportAddress; |
145 | } |
146 | |
147 | //--------------------------------------------------------BugReportMessage-- |
148 | //--Messages---------------------------------------------------------------- |
149 | |
150 | // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausMessages |
151 | // This section is managed by jdtaus-container-mojo. |
152 | |
153 | /** |
154 | * Gets the text of message <code>bugReport</code>. |
155 | * <blockquote><pre>Bitte berichten Sie dieses Problem entweder unter {1} oder per eMail an {2}. Fügen Sie Ihrem Fehlerbericht bitte eine Kopie der aktuellen Protokolldateien der Anwendung aus Verzeichnis {0} bei.</pre></blockquote> |
156 | * <blockquote><pre>Please report this at {1} or send an email to {2} including a copy of the logfiles located in directory {0}.</pre></blockquote> |
157 | * |
158 | * @param locale The locale of the message instance to return. |
159 | * @param logDirectory Directory holding the application's logfiles. |
160 | * @param trackerUrl URL to the application's online bugtracking system. |
161 | * @param reportAddress Email address to alternatively send bugreports to. |
162 | * |
163 | * @return Information about how to report a bug. |
164 | */ |
165 | private String getBugReportMessage( final Locale locale, |
166 | final java.lang.String logDirectory, |
167 | final java.lang.String trackerUrl, |
168 | final java.lang.String reportAddress ) |
169 | { |
170 | return ContainerFactory.getContainer(). |
171 | getMessage( this, "bugReport", locale, |
172 | new Object[] |
173 | { |
174 | logDirectory, |
175 | trackerUrl, |
176 | reportAddress |
177 | }); |
178 | |
179 | } |
180 | |
181 | // </editor-fold>//GEN-END:jdtausMessages |
182 | |
183 | //----------------------------------------------------------------Messages-- |
184 | } |