1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.millscript.commons.alert.alerts;
22
23 import org.millscript.commons.alert.Alert;
24
25 import java.io.File;
26 import java.net.URI;
27
28 /**
29 * This class implements an Alert for use in situations like where a
30 * <code>IOException</code> has been thrown.
31 */
32 public class IOAlert extends Alert {
33
34 /**
35 * This is the ID from the first release for future compatibility.
36 */
37 private static final long serialVersionUID = 3689916154252505399L;
38
39 /**
40 * Constructs a new I/O alert with no explanation.
41 */
42 public IOAlert() {
43 this( null );
44 }
45
46 /**
47 * Constructs a new I/O alert with the specified explanation.
48 *
49 * @param exp the explanation for the alert
50 */
51 public IOAlert( final String exp ) {
52 this( "Input/Output error", exp );
53 }
54
55 /**
56 * Constructs a new alert with the specified complaint and explanation.
57 * This constructor is for private use, to allow us to provide an exception
58 * hierarchy.
59 *
60 * @param comp the complaint
61 * @param exp the complaints explanation
62 */
63 protected IOAlert( final String comp, final String exp ) {
64 super( comp, exp );
65 }
66
67 public IOAlert culpritFile( final File file ) {
68 return (IOAlert) this.culprit( "file", file );
69 }
70
71 public IOAlert culpritURI( final URI uri ) {
72 return (IOAlert) this.culprit( "uri", uri );
73 }
74
75 public static IOAlert unexpectedEndOfFile() {
76 return new IOAlert( "Unexpected end of file" );
77 }
78
79 }