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
package Torello.HTML;

// These are only needed for the Java Doc {@link ...} taglets.
import Torello.HTML.NodeSearch.InnerTagPeekInclusive;
import Torello.HTML.NodeSearch.TagNodePeekInclusive;

/**
 * In order for a <CODE>Vector&lt;{@link SubSection}&gt;</CODE> to properly work, its contents
 * need to be sorted, and they may not overlap - so this exception is thrown if a
 * {@code SubSection-Vector} does not obey these specifications.
 * 
 * <BR /><BR /><B STYLE='color:red;'>NOTE:</B> The class {@link InnerTagPeekInclusive} and
 * {@link TagNodePeekInclusive} will generate properly ordered / sorted {@code Vector's}, which
 * means that if a {@code Vector} was created using those two classes, it is likely to adhere to
 * at least the first of those two requirements.
 * 
 * <BR /><BR />Generally, such {@code Vector's} are useful when replacing the rows in a table,
 * or the items in an ordered or unodered list, and naturally, these items will not be overlapping
 * unless the user has submitted invalid HTML in the first place.
 * 
 * <BR /><BR />The class {@link ReplaceNodes} offers a tremendous efficiency-improvement over using
 * the HTML Iterators when updated a long list of HTML sections like rows, columns, list items, or
 * any type of element, for that matter.  The {@code Iterator 'set'} method invariable involve 
 * shifting the entire list of nodes in an HTML-{@code Vector} each and every time that an
 * {@code 'insert'} or {@code 'set'} method is invoked.  While using a variant of the {@code Peek}
 * search classes to obtain a list of {@link SubSection}, modifying those sections individually,
 * and then rebuilding this can save quite a bit of time wasted on shifting lists.
 */
public class SubSectionVectorException extends RuntimeException
{
    /** <EMBED CLASS="external-html" DATA-FILE-ID="SVUIDEX"> */
    public static final long serialVersionUID = 1;

    /** Constructs a {@code SubSectionVectorException} with no detail message. */
    public SubSectionVectorException()
    { super(); }

    /**
     * Constructs a {@code SubSectionVectorException} with the specified detail message.
     * @param message the detail message.
     */
    public SubSectionVectorException(String message)
    { super(message); }
}