Module javafx.graphics
Package javafx.css

# Class StyleConverter<F,​T>

java.lang.Object
javafx.css.StyleConverter<F,​T>

Type Parameters:
  `F` - the type of the parsed value
  `T` - the converted type of the ParsedValueImpl

Direct Known Subclasses:
  `BooleanConverter`, `ColorConverter`, `CursorConverter`, `DeriveColorConverter`, `DeriveSizeConverter`, `DurationConverter`, `EffectConverter`, `EnumConverter`, `FontConverter`, `FontConverter.FontSizeConverter`, `FontConverter.FontStyleConverter`, `FontConverter.FontWeightConverter`, `InsetsConverter`, `InsetsConverter.SequenceConverter`, `LadderConverter`, `PaintConverter`, `PaintConverter.ImagePatternConverter`, `PaintConverter.LinearGradientConverter`, `PaintConverter.RadialGradientConverter`, `PaintConverter.RepeatingImagePatternConverter`, `PaintConverter.SequenceConverter`, `ShapeConverter`, `SizeConverter`, `SizeConverter.SequenceConverter`, `StopConverter`, `StringConverter`, `StringConverter.SequenceConverter`, `URLConverter`, `URLConverter.SequenceConverter`

    public class StyleConverter<F,​T>
    extends Object

StyleConverter converts `ParsedValue<F,T>` from type `F` to type `T`. The `CssMetaData` API requires a `StyleConverter` which is used when computing a value for the `StyleableProperty`. There are a number of predefined converters which are accessible by the static methods of this class. `F` is the type of the parsed value and `T` is the converted type of the ParsedValueImpl. For example, a converter from String to Color would be declared

`public Color convert(ParsedValueImpl<String,Color> value, Font font)`

Since:
  JavaFX 8.0
See Also:
  `ParsedValue`, `StyleableProperty`

- ## Nested Class Summary

  Nested Classes
  Modifier and Type | Class | Description
  --- | --- | ---
  `static class` | `StyleConverter.StringStore` | The StringStore class.

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `StyleConverter()` | Creates a `StyleConverter`.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `protected void` | `cacheValue​(ParsedValue key, Object value)` | Cache the value for the specified key.
  `static void` | `clearCache()` | Clear the cache.
  `T` | `convert​(Map<CssMetaData<? extends Styleable,​?>,​Object> convertedValues)` | Convert from the constituent values to the target property type.
  `T` | `convert​(ParsedValue<F,​T> value, Font font)` | Convert from the parsed CSS value to the target property type.
  `static StyleConverter<String,​Boolean>` | `getBooleanConverter()` | Return a `StyleConverter` that converts "true" or "false" to `Boolean`.
  `protected T` | `getCachedValue​(ParsedValue key)` | Get the cached value for the specified key.
  `static StyleConverter<String,​Color>` | `getColorConverter()` | Return a `StyleConverter` that converts a String representation of a web color to a `Color`.
  `static StyleConverter<?,​Duration>` | `getDurationConverter()` | Return a `StyleConverter` that converts a String representation of a duration to a `Duration`.
  `static StyleConverter<ParsedValue[],​Effect>` | `getEffectConverter()` | Return a `StyleConverter` that converts a parsed representation of an `Effect` to an `Effect`
  `static <E extends Enum<E>> StyleConverter<String,​E>` | `getEnumConverter​(Class<E> enumClass)` | Return a `StyleConverter` that converts a String representation of an `Enum` to an `Enum`.
  `static StyleConverter<ParsedValue[],​Font>` | `getFontConverter()` | Return a `StyleConverter` that converts a parsed representation of a `Font` to an `Font`.
  `static StyleConverter<ParsedValue[],​Insets>` | `getInsetsConverter()` | Return a `StyleConverter` that converts a [<length> | <percentage>]{1,4} to an `Insets`.
  `static StyleConverter<ParsedValue<?,​Paint>,​Paint>` | `getPaintConverter()` | Return a `StyleConverter` that converts a parsed representation of a `Paint` to a `Paint`.
  `static StyleConverter<?,​Number>` | `getSizeConverter()` | CSS length and number values are parsed into a Size object that is converted to a Number before the value is applied.
  `static StyleConverter<String,​String>` | `getStringConverter()` | A converter for quoted strings which may have embedded unicode characters.
  `static StyleConverter<ParsedValue[],​String>` | `getUrlConverter()` | A converter for URL strings.
  `static StyleConverter<?,​?>` | `readBinary​(DataInputStream is, String[] strings)` | Read binary data stream.
  `void` | `writeBinary​(DataOutputStream os, StyleConverter.StringStore sstore)` | Write binary data.

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### StyleConverter

    public StyleConverter()
    Creates a `StyleConverter`.

- ## Method Details

  - ### convert

    public T convert​(ParsedValue<F,​T> value, Font font)
    Convert from the parsed CSS value to the target property type.
    Parameters:
      `value` - The `ParsedValue` to convert
      `font` - The `Font` to use when converting a relative value.
    Returns:
      the converted target property type

  - ### getBooleanConverter

    public static StyleConverter<String,​Boolean> getBooleanConverter()
    Return a `StyleConverter` that converts "true" or "false" to `Boolean`.
    Returns:
      A `StyleConverter` that converts "true" or "false" to `Boolean`
    See Also:
      `Boolean.valueOf(java.lang.String)`

  - ### getDurationConverter

    public static StyleConverter<?,​Duration> getDurationConverter()
    Return a `StyleConverter` that converts a String representation of a duration to a `Duration`.
    Returns:
      A `StyleConverter` that converts a String representation of a duration to a `Duration`
    Since:
      JavaFX 8u40

  - ### getColorConverter

    public static StyleConverter<String,​Color> getColorConverter()
    Return a `StyleConverter` that converts a String representation of a web color to a `Color`.
    Returns:
      A `StyleConverter` that converts a String representation of a web color to a `Color`
    See Also:
      `Color.web(java.lang.String)`

  - ### getEffectConverter

    public static StyleConverter<ParsedValue[],​Effect> getEffectConverter()
    Return a `StyleConverter` that converts a parsed representation of an `Effect` to an `Effect`
    Returns:
      A `StyleConverter` that converts a parsed representation of an `Effect` to an `Effect`
    See Also:
      `Effect`

  - ### getEnumConverter

    public static <E extends Enum<E>> StyleConverter<String,​E> getEnumConverter​(Class<E> enumClass)
    Return a `StyleConverter` that converts a String representation of an `Enum` to an `Enum`.
    Type Parameters:
      `E` - the type of the `Enum`
    Parameters:
      `enumClass` - the enum Class
    Returns:
      A `StyleConverter` that converts a String representation of an `Enum` to an `Enum`
    See Also:
      `Enum.valueOf(java.lang.Class, java.lang.String)`

  - ### getFontConverter

    public static StyleConverter<ParsedValue[],​Font> getFontConverter()
    Return a `StyleConverter` that converts a parsed representation of a `Font` to an `Font`.
    Returns:
      A `StyleConverter` that converts a parsed representation of a `Font` to an `Font`
    See Also:
      `Font.font(java.lang.String, javafx.scene.text.FontWeight, javafx.scene.text.FontPosture, double)`

  - ### getInsetsConverter

    public static StyleConverter<ParsedValue[],​Insets> getInsetsConverter()
    Return a `StyleConverter` that converts a [<length> | <percentage>]{1,4} to an `Insets`.
    Returns:
      A `StyleConverter` that converts a [<length> | <percentage>]{1,4} to an `Insets`

  - ### getPaintConverter

    public static StyleConverter<ParsedValue<?,​Paint>,​Paint> getPaintConverter()
    Return a `StyleConverter` that converts a parsed representation of a `Paint` to a `Paint`.
    Returns:
      A `StyleConverter` that converts a parsed representation of a `Paint` to a `Paint`

  - ### getSizeConverter

    public static StyleConverter<?,​Number> getSizeConverter()
    CSS length and number values are parsed into a Size object that is converted to a Number before the value is applied. If the property is a `Number` type other than `Double`, the set method of (`CssMetaData` can be overridden to convert the `Number` to the correct type. For example, if the property is an `IntegerProperty`:

             @Override public void set(MyNode node, Number value, Origin origin) {
                 if (value != null) {
                     super.set(node, value.intValue(), origin);
                 } else {
                     super.set(node, value, origin);
                 }
             }

    Returns:
      A `StyleConverter` that converts a parsed representation of a CSS length or number value to a `Number` that is an instance of `Double`

  - ### getStringConverter

    public static StyleConverter<String,​String> getStringConverter()
    A converter for quoted strings which may have embedded unicode characters.
    Returns:
      A `StyleConverter` that converts a representation of a CSS string value to a `String`

  - ### getUrlConverter

    public static StyleConverter<ParsedValue[],​String> getUrlConverter()
    A converter for URL strings.
    Returns:
      A `StyleConverter` that converts a representation of a CSS URL value to a `String`

  - ### convert

    public T convert​(Map<CssMetaData<? extends Styleable,​?>,​Object> convertedValues)
    Convert from the constituent values to the target property type. Implemented by Types that have Keys with subKeys.
    Parameters:
      `convertedValues` - the constituent values
    Returns:
      the target property type
    Since:
      9

  - ### writeBinary

    public void writeBinary​(DataOutputStream os, StyleConverter.StringStore sstore) throws IOException
    Write binary data.
    Parameters:
      `os` - the data output stream
      `sstore` - the string store
    Throws:
      `IOException` - the exception
    Since:
      9

  - ### clearCache

    public static void clearCache()
    Clear the cache.
    Since:
      9

  - ### getCachedValue

    protected T getCachedValue​(ParsedValue key)
    Get the cached value for the specified key.
    Parameters:
      `key` - the key
    Returns:
      the cached value
    Since:
      9

  - ### cacheValue

    protected void cacheValue​(ParsedValue key, Object value)
    Cache the value for the specified key.
    Parameters:
      `key` - the key
      `value` - the value
    Since:
      9

  - ### readBinary

    public static StyleConverter<?,​?> readBinary​(DataInputStream is, String[] strings) throws IOException
    Read binary data stream.
    Parameters:
      `is` - the data input stream
      `strings` - the strings
    Returns:
      the style converter
    Throws:
      `IOException` - the exception
    Since:
      9