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 }