001package Torello.CSS; 002 003import java.util.Vector; 004import java.util.function.Consumer; 005 006import Torello.CSS.TokenizeException; 007 008@Torello.JavaDoc.JDHeaderBackgroundImg(EmbedTagFileID="CSS_TOK") 009public class Delimiter 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 // Public & Final Fields 019 // ******************************************************************************************** 020 // ******************************************************************************************** 021 022 023 /** The Character represented by this {@code Delimiter}-Token */ 024 public final char c; 025 026 027 // ******************************************************************************************** 028 // ******************************************************************************************** 029 // Private Constructor, API "is" and "if" Methods 030 // ******************************************************************************************** 031 // ******************************************************************************************** 032 033 034 Delimiter(final int[] css, final int sPos) 035 { 036 super(css, sPos, sPos + 1); 037 038 final int codePoint = css[sPos]; 039 final char codePointCh = (char) codePoint; 040 041 this.c = (codePoint == codePointCh) ? codePointCh : 0; 042 } 043 044 @Override 045 public final boolean isDelimiter() { return true; } 046 047 @Override 048 public final Delimiter ifDelimiter() { return this; } 049 050 051 // ******************************************************************************************** 052 // ******************************************************************************************** 053 // User's Constructor: An actual constructor :) 054 // ******************************************************************************************** 055 // ******************************************************************************************** 056 057 058 /** 059 * 060 * @param c Any Java Character. 061 */ 062 public Delimiter(char c) 063 { 064 super("" + c); 065 066 if (! Whitespace.is(c)) throw new TokenizeException 067 ("Character passed is whitespace (ASCII #" + ((int) c) + ")"); 068 069 this.c = c; 070 } 071}