1 /* 2 * jDTAUS Banking API 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.banking.dtaus; 22 23 import java.util.Locale; 24 import org.jdtaus.core.container.ContainerFactory; 25 import org.jdtaus.core.text.Message; 26 27 /** 28 * Gets thrown by methods prepared to handle invalid files. 29 * 30 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a> 31 * @version $JDTAUS: PhysicalFileException.java 8865 2014-01-10 17:13:42Z schulte $ 32 */ 33 public class PhysicalFileException extends Exception 34 { 35 36 /** Serial version UID for backwards compatibility with 1.0.x classes. */ 37 private static final long serialVersionUID = -8624765386920924529L; 38 39 /** Empty {@code Message} array. */ 40 private static final Message[] NO_MESSAGES = 41 { 42 }; 43 44 /** 45 * Messages describing the exception. 46 * @serial 47 */ 48 private final Message[] messages; 49 50 /** 51 * Creates a new {@code PhysicalFileException} instance taking an array of messages describing the exception. 52 * 53 * @param messages array of messages describing the exception or {@code null} if no information is available. 54 */ 55 public PhysicalFileException( final Message[] messages ) 56 { 57 super(); 58 this.messages = messages == null ? NO_MESSAGES : messages; 59 } 60 61 /** 62 * Getter for property {@code messages}. 63 * 64 * @return Messages describing the exception or an empty array if no information is available. 65 */ 66 public final Message[] getMessages() 67 { 68 final Message[] copy = new Message[ this.messages.length ]; 69 70 for ( int i = 0, l0 = this.messages.length; i < l0; i++ ) 71 { 72 copy[i] = this.messages[i]; 73 } 74 75 return copy; 76 } 77 78 /** 79 * Returns the message of the exception. 80 * 81 * @return The message of the exception. 82 */ 83 public String getMessage() 84 { 85 return this.getPhysicalFileExceptionMessage( this.getLocale() ); 86 } 87 88 /** 89 * Returns a string representation of the object. 90 * 91 * @return A string representation of the object. 92 */ 93 public String toString() 94 { 95 return super.toString() + this.internalString(); 96 } 97 98 /** 99 * Creates a string representing the properties of the instance. 100 * 101 * @return A string representing the properties of the instance. 102 */ 103 private String internalString() 104 { 105 final StringBuffer buf = new StringBuffer( 200 ).append( '{' ); 106 final Message[] msgs = this.getMessages(); 107 for ( int i = 0; i < msgs.length; i++ ) 108 { 109 buf.append( "[" ).append( i ).append( "]=" ).append( msgs[i].getText( Locale.getDefault() ) ); 110 if ( i + 1 < msgs.length ) 111 { 112 buf.append( ", " ); 113 } 114 } 115 116 return buf.append( '}' ).toString(); 117 } 118 119 //--Dependencies------------------------------------------------------------ 120 121 // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausDependencies 122 // This section is managed by jdtaus-container-mojo. 123 124 /** 125 * Gets the configured <code>Locale</code> implementation. 126 * 127 * @return The configured <code>Locale</code> implementation. 128 */ 129 private Locale getLocale() 130 { 131 return (Locale) ContainerFactory.getContainer(). 132 getDependency( this, "Locale" ); 133 134 } 135 136 // </editor-fold>//GEN-END:jdtausDependencies 137 138 //------------------------------------------------------------Dependencies-- 139 //--Messages---------------------------------------------------------------- 140 141 // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausMessages 142 // This section is managed by jdtaus-container-mojo. 143 144 /** 145 * Gets the text of message <code>physicalFileException</code>. 146 * <blockquote><pre>Datei-Fehler.</pre></blockquote> 147 * <blockquote><pre>File error.</pre></blockquote> 148 * 149 * @param locale The locale of the message instance to return. 150 * 151 * @return the text of message <code>physicalFileException</code>. 152 */ 153 private String getPhysicalFileExceptionMessage( final Locale locale ) 154 { 155 return ContainerFactory.getContainer(). 156 getMessage( this, "physicalFileException", locale, null ); 157 158 } 159 160 // </editor-fold>//GEN-END:jdtausMessages 161 162 //----------------------------------------------------------------Messages-- 163 }