ReporterEvent.java |
1 /** 2 * Distribution License: 3 * JSword is free software; you can redistribute it and/or modify it under 4 * the terms of the GNU Lesser General Public License, version 2.1 or later 5 * as published by the Free Software Foundation. This program is distributed 6 * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even 7 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8 * See the GNU Lesser General Public License for more details. 9 * 10 * The License is available on the internet at: 11 * http://www.gnu.org/copyleft/lgpl.html 12 * or by writing to: 13 * Free Software Foundation, Inc. 14 * 59 Temple Place - Suite 330 15 * Boston, MA 02111-1307, USA 16 * 17 * © CrossWire Bible Society, 2005 - 2016 18 * 19 */ 20 package org.crosswire.common.util; 21 22 import java.util.EventObject; 23 24 import org.crosswire.common.icu.NumberShaper; 25 26 /** 27 * An event indicating that some bit of data needs capturing. 28 * 29 * @see gnu.lgpl.License The GNU Lesser General Public License for details. 30 * @author Joe Walker 31 */ 32 public class ReporterEvent extends EventObject { 33 /** 34 * Constructs an CaptureEvent object. 35 * 36 * @param source 37 * The event originator (typically <code>this</code>) 38 * @param ex 39 * An exception 40 */ 41 public ReporterEvent(Object source, Throwable ex) { 42 super(source); 43 44 this.ex = ex; 45 this.message = null; 46 } 47 48 /** 49 * Constructs an CaptureEvent object. 50 * 51 * @param source 52 * The event originator (typically <code>this</code>) 53 * @param message 54 * An message to log 55 */ 56 public ReporterEvent(Object source, String message) { 57 super(source); 58 59 this.ex = null; 60 this.message = new NumberShaper().shape(message); 61 } 62 63 /** 64 * Returns a string specifying the source of the message. 65 * 66 * @return The Source as a String 67 */ 68 public String getSourceName() { 69 Object src = getSource(); 70 71 Class<?> clazz; 72 if (src instanceof Class<?>) { 73 clazz = (Class<?>) src; 74 } else { 75 clazz = src.getClass(); 76 } 77 78 String full = clazz.getName(); 79 int lastDot = full.lastIndexOf('.'); 80 if (lastDot == -1) { 81 return full; 82 } 83 return full.substring(lastDot + 1); 84 } 85 86 /** 87 * Returns the exception. 88 * 89 * @return the Exception 90 */ 91 public Throwable getException() { 92 return ex; 93 } 94 95 /** 96 * Returns the message. 97 * 98 * @return the message 99 */ 100 public String getMessage() { 101 return message; 102 } 103 104 /** 105 * The thing that went wrong 106 */ 107 private Throwable ex; 108 109 /** 110 * The message that is being passed around 111 */ 112 private String message; 113 114 /** 115 * Serialization ID 116 */ 117 private static final long serialVersionUID = 4121978048640988213L; 118 } 119