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()` |

  - ### 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 inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### StyleConverter

          public StyleConverter()

  - ### Method Detail

    - #### 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