1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package Torello.HTML.Tools.NewsSite;

/**
 * Thrown by the <CODE><B>'ScrapedArticleReceiver'</B></CODE> interface, if any of the methods
 * inside an implementation of interface <CODE>'ScrapedArticleReceiver'</CODE> need to throw an
 * exception - then that exception <B>must be wraped</B> by this  <I>(unchecked, runtime)</I>
 * exception.
 * 
 * <BR /><BR />
 * <EMBED CLASS='external-html' DATA-FILE-ID=RECEIVE_EX>
 * <EMBED CLASS='external-html' DATA-FILE-ID=EXPM>
 */
public class ReceiveException extends java.io.IOException
{
    /** <EMBED CLASS='external-html' DATA-FILE-ID=SVUIDEX> */
    public static final long serialVersionUID = 1;

    /**
     * This is the News Web-Site "Section" that was being processed when this
     * {@code ReceiveException} was thrown.
     */
    public final int sectionURLNum;

    /**
     * This is the {@code Vector}-index into the News Web-Site "Newspaper Article" {@code Vector}
     * for the {@code Article} that was being processed by  {@code ScrapedArticleReceiver} when the 
     * {@code ReceiveException} was thrown.
     */
    public final int articleNum;

    /**
     * Constructs a new exception with the specified detail message, and two {@code public, final}
     * integer parameters: {@code sectionURLNum} and {@code articleNum}.
     * 
     * @param message the detail message.
     * 
     * @param sectionURLNum This is a {@code Vector}-index pointer.  It points to the News-Website
     * 'Section {@code URL}' that was provided to the {@code class ScrapeURL's get(...)} method.
     * Since the output/return {@code Vector} to that class is <B>parallel</B> to the input
     * {@code Vector<URL> sectionURLs}, this integer also (identically) points to the output
     * {@code return-Vector} location that holds the News-Paper Section that was being processed
     * when this {@code ReceiveException} was thrown.
     * 
     * @param articleNum This is also a {@code Vector}-index pointer.  It points to the particular
     * {@code Article} whose processing ultimately resulted in {@code ReceiveException} being
     * thrown.  The {@code Vector} to which this index points <I>may or may not be obvious - <B>but
     * it is the {@code return-Vector} produced by the {@code class ScrapeURLs' get(...)} 
     * method.</I></B>
     * 
     * @see #sectionURLNum
     * @see #articleNum
     */
    public ReceiveException(String message, int sectionURLNum, int articleNum)
    {
        super(message);

        this.sectionURLNum  = sectionURLNum;
        this.articleNum     = articleNum;
    }

    /**
     * Constructs a new exception with the specified detail message, cause-chain throwable, and two 
     * {@code public, final} integer parameters: {@code sectionURLNum} and {@code articleNum}.
     * 
     * @param message The detail message (which is saved for later retrieval by the
     * {@code Throwable.getMessage()} method).
     * 
     * @param cause the cause (which is saved for later retrieval by the
     * {@code Throwable.getCause()} method).  (A null value is permitted, and indicates that the
     * cause is nonexistent or unknown.)
     * 
     * @param sectionURLNum This is a {@code Vector}-index pointer.  It points to the News-Website
     * 'Section {@code URL}' that was provided to the {@code class ScrapeURL's get(...)} method.
     * Since the output/return {@code Vector} to that class is <B>parallel</B> to the input
     * {@code Vector<URL> sectionURLs}, this integer also (identically) points to the output
     * {@code return-Vector} location that holds the News-Paper Section that was being processed
     * when this {@code ReceiveException} was thrown.
     * 
     * @param articleNum This is a {@code Vector}-index pointer.  It points to the particular
     * {@code Article} whose processing ultimately resulted in {@code ReceiveException} being
     * thrown.  The {@code Vector} to which this index points <I>may or may not be obvious - <B>but
     * it is the {@code return-Vector} produced by the {@code class ScrapeURLs' get(...)} 
     * method.</I></B>
     * 
     * @see #sectionURLNum
     * @see #articleNum
     */
    public ReceiveException(String message, Throwable cause, int sectionURLNum, int articleNum)
    {
        super(message, cause);

        this.sectionURLNum  = sectionURLNum;
        this.articleNum     = articleNum;
    }
}