java.lang.Object
org.jhotdraw8.css.converter.ListCssConverter<T>
- Type Parameters:
T- the element type
- All Implemented Interfaces:
Converter<ImmutableList<T>>,CssConverter<ImmutableList<T>>
Parses a list with items separated by configurable optional delimiters.
If the delimiter consists of multiple character tokens, then the parser accepts each of the character tokens and any combination of them.
The delimiters are optional when the list is parsed from a String. When the list is converted into a String, then the specified delimiters are used to separate the items.
Stops parsing at EOF, semicolon and closing bracket.
This parser is intentionally forgiving, so that lists can be output with nice delimiters, but the user does not need to type the delimiter.
In CSS list elements are separated by a comma character.
References:
- CSS Syntax Module Level 3, 5.3.11. Parse a comma-separated list of component values
- w3.org
-
Constructor Summary
ConstructorsConstructorDescriptionListCssConverter(@NonNull CssConverter<T> elementConverter) ListCssConverter(@NonNull CssConverter<T> elementConverter, @NonNull Iterable<CssToken> delimiter, @NonNull Iterable<CssToken> prefix, @NonNull Iterable<CssToken> suffix) Creates a new instance that does not sort the elements.ListCssConverter(@NonNull CssConverter<T> elementConverter, @NonNull Iterable<CssToken> delimiter, @NonNull Iterable<CssToken> prefix, @NonNull Iterable<CssToken> suffix, @Nullable Comparator<T> comparatorForSorting) Creates a new instance.ListCssConverter(@NonNull CssConverter<T> elementConverter, @Nullable String delimiter) ListCssConverter(@NonNull CssConverter<T> elementConverter, @Nullable String delimiter, @Nullable String prefix, @Nullable String suffix) ListCssConverter(@NonNull CssConverter<T> elementConverter, @Nullable String delimiter, @Nullable String prefix, @Nullable String suffix, @Nullable Comparator<T> comparatorForSorting) -
Method Summary
Modifier and TypeMethodDescriptionGets a help text.booleanbooleanparse(@NonNull CssTokenizer tt, @Nullable IdResolver idResolver) Parses from the given tokenizer and moves the tokenizer to the next token past the value.<TT extends ImmutableList<T>>
voidproduceTokens(@Nullable TT value, @Nullable IdSupplier idSupplier, @NonNull Consumer<CssToken> out) Produces tokens for the specified value.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.jhotdraw8.base.converter.Converter
fromString, fromString, toString, toStringMethods inherited from interface org.jhotdraw8.css.converter.CssConverter
fromString, fromString, getExamples, parseNonNull, toString, toString, toString, toTokens
-
Constructor Details
-
ListCssConverter
-
ListCssConverter
-
ListCssConverter
-
ListCssConverter
public ListCssConverter(@NonNull CssConverter<T> elementConverter, @Nullable String delimiter, @Nullable String prefix, @Nullable String suffix, @Nullable Comparator<T> comparatorForSorting) - Parameters:
elementConverter- the convert for a single elementdelimiter- a String which must be parsable into character tokens, each token and any combination of them is accepted as an optional delimiterprefix- the prefix of the list, for example a left bracketsuffix- the suffix of the list, for example a right bracketcomparatorForSorting- if this value is non-null, then it is used to sort the list
-
ListCssConverter
public ListCssConverter(@NonNull CssConverter<T> elementConverter, @NonNull Iterable<CssToken> delimiter, @NonNull Iterable<CssToken> prefix, @NonNull Iterable<CssToken> suffix) Creates a new instance that does not sort the elements.- Parameters:
elementConverter- converter for elementsdelimiter- optional delimiter for parsing; the delimiter is used for pretty printingprefix- white-space tokens for pretty printing that are used when producing tokens or a Stringsuffix- white-space tokens for pretty printing that are used when producing tokens or a String
-
ListCssConverter
public ListCssConverter(@NonNull CssConverter<T> elementConverter, @NonNull Iterable<CssToken> delimiter, @NonNull Iterable<CssToken> prefix, @NonNull Iterable<CssToken> suffix, @Nullable Comparator<T> comparatorForSorting) Creates a new instance.- Parameters:
elementConverter- converter for elementsdelimiter- optional delimiter for parsing; the delimiter is used for pretty printingprefix- white-space tokens for pretty printing that are used when producing tokens or a Stringsuffix- white-space tokens for pretty printing that are used when producing tokens or a StringcomparatorForSorting- optional comparator for sorting; null means no sorting
-
-
Method Details
-
parse
public ImmutableList<T> parse(@NonNull CssTokenizer tt, @Nullable IdResolver idResolver) throws ParseException, IOException Description copied from interface:CssConverterParses from the given tokenizer and moves the tokenizer to the next token past the value.- Specified by:
parsein interfaceCssConverter<T>- Parameters:
tt- tokenizer positioned on the tokenidResolver- the id factory- Returns:
- the parsed value
- Throws:
ParseException- on parse exceptionIOException- on io exception
-
needsIdResolver
public boolean needsIdResolver()- Specified by:
needsIdResolverin interfaceConverter<T>
-
produceTokens
public <TT extends ImmutableList<T>> void produceTokens(@Nullable TT value, @Nullable IdSupplier idSupplier, @NonNull Consumer<CssToken> out) throws IOException Description copied from interface:CssConverterProduces tokens for the specified value.- Specified by:
produceTokensin interfaceCssConverter<T>- Type Parameters:
TT- the value type- Parameters:
value- the valueidSupplier- the id factoryout- the consumer for the tokens- Throws:
IOException- on IO exception
-
getDefaultValue
- Specified by:
getDefaultValuein interfaceConverter<T>
-
isNullable
public boolean isNullable()- Specified by:
isNullablein interfaceCssConverter<T>
-
getHelpText
Description copied from interface:CssConverterGets a help text.- Specified by:
getHelpTextin interfaceConverter<T>- Specified by:
getHelpTextin interfaceCssConverter<T>- Returns:
- a help text.
-