# 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`, `DurationConverter.SequenceConverter`, `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