001package Torello.CSS;
002
003import java.util.Vector;
004
005/**
006 * CSS-Tokenizer Class for the <B>Comment-Delimiter Close</B> Token.
007 */
008@Torello.JavaDoc.JDHeaderBackgroundImg(EmbedTagFileID="CSS_TOK")
009public class CDC extends CSSToken
010    implements CharSequence, java.io.Serializable, Comparable<CharSequence>
011{
012    /** <EMBED CLASS='external-html' DATA-FILE-ID=SVUID> */
013    protected static final long serialVersionUID = 1;
014
015
016    // ********************************************************************************************
017    // ********************************************************************************************
018    // Private Constructor, API "is" and "if" Methods
019    // ********************************************************************************************
020    // ********************************************************************************************
021
022
023    static final CDC SINGLETON = new CDC();
024
025    private CDC() { super("-->"); }
026
027    @Override 
028    public final boolean isCDC() { return true; }
029
030    @Override
031    public final CDC ifCDC() { return this; }
032
033
034    // ********************************************************************************************
035    // ********************************************************************************************
036    // Tokenizer's "is" Method(s)
037    // ********************************************************************************************
038    // ********************************************************************************************
039
040
041    /**
042     * Checks whether or not the next three code-point / characters are {@code '-', '-'} and
043     * {@code '>'}.
044     * 
045     * <EMBED CLASS=defs DATA-TOK="Comment-Delimiter Open" DATA-URL=CDC-token-diagram
046     *      DATA-OP=Consume>
047     * <EMBED CLASS=external-html DATA-FILE-ID=COPIED_CSS_WG_RR>
048     * <EMBED CLASS=external-html DATA-FILE-ID=CDC_TOK_SVG>  
049     * @param css CSS-{@code String} as an array of code-points.
050     * @param sPos The array-index where the tokenizer is to consume its next token
051     * @return {@code TRUE} if and only if the next token in the array  is a {@code CDC}
052     */
053    public static boolean is(int[] css, int sPos)
054    {
055        final int c1 = ((sPos + 0) < css.length) ? css[sPos + 0] : 0;
056        final int c2 = ((sPos + 1) < css.length) ? css[sPos + 1] : 0;
057        final int c3 = ((sPos + 2) < css.length) ? css[sPos + 2] : 0;
058
059        return (c1 == '-') && (c2 == '-') && (c3 == '>');
060    }
061}