Module javafx.graphics
Package javafx.css

## Class StyleablePropertyFactory<S extends Styleable>

- java.lang.Object
- - javafx.css.StyleablePropertyFactory<S>

- Type Parameters:
    `S` - The type of Styleable

      public class StyleablePropertyFactory<S extends Styleable>
      extends Object

  Methods for creating instances of StyleableProperty with corresponding CssMetaData created behind the scenes. These methods greatly reduce the amount of boiler-plate code needed to implement the StyleableProperty and CssMetaData. These methods take a Function<? extends Styleable, StyleableProperty<?>> which returns a reference to the property itself. See the example below. Note that for efficient use of memory and for better CSS performance, creating the `StyleablePropertyFactory` as a static member, as shown below, is recommended.

       public final class MyButton extends Button {

           private static final StyleablePropertyFactory<MyButton> FACTORY = new StyleablePropertyFactory<>(Button.getClassCssMetaData());

           MyButton(String labelText) {
               super(labelText);
               getStyleClass().add("my-button");
           }

           // Typical JavaFX property implementation
           public ObservableValue<Boolean> selectedProperty() { return (ObservableValue<Boolean>)selected; }
           public final boolean isSelected() { return selected.getValue(); }
           public final void setSelected(boolean isSelected) { selected.setValue(isSelected); }

           // StyleableProperty implementation reduced to one line
           private final StyleableProperty<Boolean> selected =
               FACTORY.createStyleableBooleanProperty(this, "selected", "-my-selected", s -> s.selected);

           @Override
           public List<CssMetaData<? extends Styleable, ?>> getControlCssMetaData() {
               return FACTORY.getCssMetaData();
           }

       }

  The example above is the simplest use of `StyleablePropertyFactory`. But, this use does not provide the static CssMetaData that is useful for `getClassCssMetaData()`, which is described in the javadoc for `CssMetaData`. Static CssMetaData can, however, be created via `StyleablePropertyFactory` methods and will be returned by the methods which create StyleableProperty instances, as the example below illustrates. Note that the static method `getClassCssMetaData()` is a convention used throughout the JavaFX code base but the `getClassCssMetaData()` method itself is not used at runtime.

       public final class MyButton extends Button {

           private static final StyleablePropertyFactory<MyButton> FACTORY =
               new StyleablePropertyFactory<>(Button.getClassCssMetaData());

           private static final CssMetaData<MyButton, Boolean> SELECTED =
               FACTORY.createBooleanCssMetaData("-my-selected", s -> s.selected, false, false);

           MyButton(String labelText) {
               super(labelText);
               getStyleClass().add("my-button");
           }

           // Typical JavaFX property implementation
           public ObservableValue<Boolean> selectedProperty() { return (ObservableValue<Boolean>)selected; }
           public final boolean isSelected() { return selected.getValue(); }
           public final void setSelected(boolean isSelected) { selected.setValue(isSelected); }

           // StyleableProperty implementation reduced to one line
           private final StyleableProperty<Boolean> selected =
               new SimpleStyleableBooleanProperty(SELECTED, this, "selected");

           public static List<CssMetaData<? extends Styleable, ?>> getClassCssMetaData() {
               return FACTORY.getCssMetaData();
           }

           @Override
           public List<CssMetaData<? extends Styleable, ?>> getControlCssMetaData() {
               return FACTORY.getCssMetaData();
           }
       }

  The same can be accomplished with an inner-class. The previous example called `new SimpleStyleableBooleanProperty` to create the `selected` property. This example uses the factory to access the `CssMetaData` that was created along with the anonymous inner-class. For all intents and purposes, the two examples are the same.

       public final class MyButton extends Button {

           private static final StyleablePropertyFactory<MyButton> FACTORY =
               new StyleablePropertyFactory<>(Button.getClassCssMetaData()) {
               {
                   createBooleanCssMetaData("-my-selected", s -> s.selected, false, false);
               }
           }

           MyButton(String labelText) {
               super(labelText);
               getStyleClass().add("my-button");
           }

           // Typical JavaFX property implementation
           public ObservableValue<Boolean> selectedProperty() { return (ObservableValue<Boolean>)selected; }
           public final boolean isSelected() { return selected.getValue(); }
           public final void setSelected(boolean isSelected) { selected.setValue(isSelected); }

           // StyleableProperty implementation reduced to one line
           private final StyleableProperty<Boolean> selected =
               new SimpleStyleableBooleanProperty(this, "selected", "my-selected");

           public static List<CssMetaData<? extends Styleable, ?>> getClassCssMetaData() {
               return FACTORY.getCssMetaData();
           }

           @Override
           public List<CssMetaData<? extends Styleable, ?>> getControlCssMetaData() {
               return FACTORY.getCssMetaData();
           }
       }

  Caveats:

  The only option for creating a StyleableProperty with a number value is to create a StyleableProperty<Number>. The return value from the `getValue()` method of the StyleableProperty is a Number. Therefore, the `get` method of the JavaFX property needs to call the correct `value` method for the return type. For example,

           public ObservableValue<Double> offsetProperty() { return (ObservableValue<Double>)offset; }
           public Double getOffset() { return offset.getValue().doubleValue(); }
           public void setOffset(Double value) { offset.setValue(value); }
           private final StyleableProperty<Number> offset = FACTORY.createStyleableNumberProperty(this, "offset", "-my-offset", s -> ((MyButton)s).offset);

  Since:
    JavaFX 8u40

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `StyleablePropertyFactory​(List<CssMetaData<? extends Styleable,​?>> parentCssMetaData)` | The constructor is passed the CssMetaData of the parent class of <S>, typically by calling the static `getClassCssMetaData()` method of the parent.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `CssMetaData<S,​Boolean>` | `createBooleanCssMetaData​(String property, Function<S,​StyleableProperty<Boolean>> function)` | Create a CssMetaData<S, Boolean> with initial value and inherit flag both defaulting to false.
    `CssMetaData<S,​Boolean>` | `createBooleanCssMetaData​(String property, Function<S,​StyleableProperty<Boolean>> function, boolean initialValue)` | Create a CssMetaData<S, Boolean> with initial value, and inherit flag defaulting to false.
    `CssMetaData<S,​Boolean>` | `createBooleanCssMetaData​(String property, Function<S,​StyleableProperty<Boolean>> function, boolean initialValue, boolean inherits)` | Create a CssMetaData<S, Boolean> with initial value, and inherit flag.
    `CssMetaData<S,​Color>` | `createColorCssMetaData​(String property, Function<S,​StyleableProperty<Color>> function)` | Create a CssMetaData<S, Color> with initial value of Color.BLACK, and inherit flag defaulting to false.
    `CssMetaData<S,​Color>` | `createColorCssMetaData​(String property, Function<S,​StyleableProperty<Color>> function, Color initialValue)` | Create a CssMetaData<S, Color> with initial value, and inherit flag defaulting to false.
    `CssMetaData<S,​Color>` | `createColorCssMetaData​(String property, Function<S,​StyleableProperty<Color>> function, Color initialValue, boolean inherits)` | Create a CssMetaData<S, Color> with initial value, and inherit flag.
    `CssMetaData<S,​Duration>` | `createDurationCssMetaData​(String property, Function<S,​StyleableProperty<Duration>> function)` | Create a CssMetaData<S, Duration> with initial value of Duration.BLACK, and inherit flag defaulting to false.
    `CssMetaData<S,​Duration>` | `createDurationCssMetaData​(String property, Function<S,​StyleableProperty<Duration>> function, Duration initialValue)` | Create a CssMetaData<S, Duration> with initial value, and inherit flag defaulting to false.
    `CssMetaData<S,​Duration>` | `createDurationCssMetaData​(String property, Function<S,​StyleableProperty<Duration>> function, Duration initialValue, boolean inherits)` | Create a CssMetaData<S, Duration> with initial value, and inherit flag.
    `<E extends Effect> CssMetaData<S,​E>` | `createEffectCssMetaData​(String property, Function<S,​StyleableProperty<E>> function)` | Create a CssMetaData<S, Effect> with initial value of null, and inherit flag defaulting to false.
    `<E extends Effect> CssMetaData<S,​E>` | `createEffectCssMetaData​(String property, Function<S,​StyleableProperty<E>> function, E initialValue)` | Create a CssMetaData<S, Effect> with initial value, and inherit flag defaulting to false.
    `<E extends Effect> CssMetaData<S,​E>` | `createEffectCssMetaData​(String property, Function<S,​StyleableProperty<E>> function, E initialValue, boolean inherits)` | Create a CssMetaData<S, Effect> with initial value, and inherit flag.
    `<E extends Enum<E>> CssMetaData<S,​E>` | `createEnumCssMetaData​(Class<? extends Enum> enumClass, String property, Function<S,​StyleableProperty<E>> function)` | Create a CssMetaData<S, Enum> with initial value of null, and inherit flag defaulting to false.
    `<E extends Enum<E>> CssMetaData<S,​E>` | `createEnumCssMetaData​(Class<? extends Enum> enumClass, String property, Function<S,​StyleableProperty<E>> function, E initialValue)` | Create a CssMetaData<S, Enum> with initial value, and inherit flag defaulting to false.
    `<E extends Enum<E>> CssMetaData<S,​E>` | `createEnumCssMetaData​(Class<? extends Enum> enumClass, String property, Function<S,​StyleableProperty<E>> function, E initialValue, boolean inherits)` | Create a CssMetaData<S, Enum> with initial value, and inherit flag.
    `CssMetaData<S,​Font>` | `createFontCssMetaData​(String property, Function<S,​StyleableProperty<Font>> function)` | Create a CssMetaData<S, Font> with initial value of `Font.getDefault()`, and inherit flag defaulting to true.
    `CssMetaData<S,​Font>` | `createFontCssMetaData​(String property, Function<S,​StyleableProperty<Font>> function, Font initialValue)` | Create a CssMetaData<S, Font> with initial value, and inherit flag defaulting to true.
    `CssMetaData<S,​Font>` | `createFontCssMetaData​(String property, Function<S,​StyleableProperty<Font>> function, Font initialValue, boolean inherits)` | Create a CssMetaData<S, Font> with initial value, and inherit flag.
    `CssMetaData<S,​Insets>` | `createInsetsCssMetaData​(String property, Function<S,​StyleableProperty<Insets>> function)` | Create a CssMetaData<S, Insets> with initial value of `Insets.EMPTY`, and inherit flag defaulting to false.
    `CssMetaData<S,​Insets>` | `createInsetsCssMetaData​(String property, Function<S,​StyleableProperty<Insets>> function, Insets initialValue)` | Create a CssMetaData<S, Insets> with initial value, and inherit flag defaulting to false.
    `CssMetaData<S,​Insets>` | `createInsetsCssMetaData​(String property, Function<S,​StyleableProperty<Insets>> function, Insets initialValue, boolean inherits)` | Create a CssMetaData<S, Insets> with initial value, and inherit flag.
    `CssMetaData<S,​Paint>` | `createPaintCssMetaData​(String property, Function<S,​StyleableProperty<Paint>> function)` | Create a CssMetaData<S, Paint> with initial value of Color.BLACK, and inherit flag defaulting to false.
    `CssMetaData<S,​Paint>` | `createPaintCssMetaData​(String property, Function<S,​StyleableProperty<Paint>> function, Paint initialValue)` | Create a CssMetaData<S, Paint> with initial value, and inherit flag defaulting to false.
    `CssMetaData<S,​Paint>` | `createPaintCssMetaData​(String property, Function<S,​StyleableProperty<Paint>> function, Paint initialValue, boolean inherits)` | Create a CssMetaData<S, Paint> with initial value, and inherit flag.
    `CssMetaData<S,​Number>` | `createSizeCssMetaData​(String property, Function<S,​StyleableProperty<Number>> function)` | Create a CssMetaData<S, Number> with initial value of `0d`, and inherit flag defaulting to false.
    `CssMetaData<S,​Number>` | `createSizeCssMetaData​(String property, Function<S,​StyleableProperty<Number>> function, Number initialValue)` | Create a CssMetaData<S, Number> with initial value, and inherit flag defaulting to false.
    `CssMetaData<S,​Number>` | `createSizeCssMetaData​(String property, Function<S,​StyleableProperty<Number>> function, Number initialValue, boolean inherits)` | Create a CssMetaData<S, Number> with initial value, and inherit flag.
    `CssMetaData<S,​String>` | `createStringCssMetaData​(String property, Function<S,​StyleableProperty<String>> function)` | Create a CssMetaData<S, String> with initial value of null, and inherit flag defaulting to false.
    `CssMetaData<S,​String>` | `createStringCssMetaData​(String property, Function<S,​StyleableProperty<String>> function, String initialValue)` | Create a CssMetaData<S, String> with initial value, and inherit flag defaulting to false.
    `CssMetaData<S,​String>` | `createStringCssMetaData​(String property, Function<S,​StyleableProperty<String>> function, String initialValue, boolean inherits)` | Create a CssMetaData<S, String> with initial value, and inherit flag.
    `StyleableProperty<Boolean>` | `createStyleableBooleanProperty​(S styleable, String propertyName, String cssProperty)` | Create a StyleableProperty<Boolean> using previously created CssMetaData for the given `cssProperty`.
    `StyleableProperty<Boolean>` | `createStyleableBooleanProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Boolean>> function)` | Create a StyleableProperty<Boolean>.
    `StyleableProperty<Boolean>` | `createStyleableBooleanProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Boolean>> function, boolean initialValue)` | Create a StyleableProperty<Boolean> with initial value.
    `StyleableProperty<Boolean>` | `createStyleableBooleanProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Boolean>> function, boolean initialValue, boolean inherits)` | Create a StyleableProperty<Boolean> with initial value and inherit flag.
    `StyleableProperty<Color>` | `createStyleableColorProperty​(S styleable, String propertyName, String cssProperty)` | Create a StyleableProperty<Color> using previously created CssMetaData for the given `cssProperty`.
    `StyleableProperty<Color>` | `createStyleableColorProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Color>> function)` | Create a StyleableProperty<Color>.
    `StyleableProperty<Color>` | `createStyleableColorProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Color>> function, Color initialValue)` | Create a StyleableProperty<Color> with initial value.
    `StyleableProperty<Color>` | `createStyleableColorProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Color>> function, Color initialValue, boolean inherits)` | Create a StyleableProperty<Color> with initial value and inherit flag.
    `StyleableProperty<Duration>` | `createStyleableDurationProperty​(S styleable, String propertyName, String cssProperty)` | Create a StyleableProperty<Duration> using previously created CssMetaData for the given `cssProperty`.
    `StyleableProperty<Duration>` | `createStyleableDurationProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Duration>> function)` | Create a StyleableProperty<Duration>.
    `StyleableProperty<Duration>` | `createStyleableDurationProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Duration>> function, Duration initialValue)` | Create a StyleableProperty<Duration> with initial value.
    `StyleableProperty<Duration>` | `createStyleableDurationProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Duration>> function, Duration initialValue, boolean inherits)` | Create a StyleableProperty<Duration> with initial value and inherit flag.
    `StyleableProperty<Effect>` | `createStyleableEffectProperty​(S styleable, String propertyName, String cssProperty)` | Create a StyleableProperty<Effect> using previously created CssMetaData for the given `cssProperty`.
    `<E extends Enum<E>> StyleableProperty<E>` | `createStyleableEffectProperty​(S styleable, String propertyName, String cssProperty, Class<E> enumClass)` | Create a StyleableProperty<E extends Enum<E>> using previously created CssMetaData for the given `cssProperty`.
    `<E extends Effect> StyleableProperty<E>` | `createStyleableEffectProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<E>> function)` | Create a StyleableProperty<Effect>.
    `<E extends Effect> StyleableProperty<E>` | `createStyleableEffectProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<E>> function, E initialValue)` | Create a StyleableProperty<Effect> with initial value.
    `<E extends Effect> StyleableProperty<E>` | `createStyleableEffectProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<E>> function, E initialValue, boolean inherits)` | Create a StyleableProperty<Effect> with initial value and inherit flag.
    `<E extends Enum<E>> StyleableProperty<E>` | `createStyleableEnumProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<E>> function, Class<E> enumClass)` | Create a StyleableProperty<E extends Enum<E>>.
    `<E extends Enum<E>> StyleableProperty<E>` | `createStyleableEnumProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<E>> function, Class<E> enumClass, E initialValue)` | Create a StyleableProperty<E extends Enum<E>> with initial value.
    `<E extends Enum<E>> StyleableProperty<E>` | `createStyleableEnumProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<E>> function, Class<E> enumClass, E initialValue, boolean inherits)` | Create a StyleableProperty<E extends Enum<E>> with initial value and inherit flag.
    `StyleableProperty<Font>` | `createStyleableFontProperty​(S styleable, String propertyName, String cssProperty)` | Create a StyleableProperty<Font> using previously created CssMetaData for the given `cssProperty`.
    `StyleableProperty<Font>` | `createStyleableFontProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Font>> function)` | Create a StyleableProperty<Font>.
    `StyleableProperty<Font>` | `createStyleableFontProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Font>> function, Font initialValue)` | Create a StyleableProperty<Font> with initial value.
    `StyleableProperty<Font>` | `createStyleableFontProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Font>> function, Font initialValue, boolean inherits)` | Create a StyleableProperty<Font> with initial value and inherit flag.
    `StyleableProperty<Insets>` | `createStyleableInsetsProperty​(S styleable, String propertyName, String cssProperty)` | Create a StyleableProperty<Insets> using previously created CssMetaData for the given `cssProperty`.
    `StyleableProperty<Insets>` | `createStyleableInsetsProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Insets>> function)` | Create a StyleableProperty<Inset>.
    `StyleableProperty<Insets>` | `createStyleableInsetsProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Insets>> function, Insets initialValue)` | Create a StyleableProperty<Inset> with initial value.
    `StyleableProperty<Insets>` | `createStyleableInsetsProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Insets>> function, Insets initialValue, boolean inherits)` | Create a StyleableProperty<Inset> with initial value and inherit flag.
    `StyleableProperty<Number>` | `createStyleableNumberProperty​(S styleable, String propertyName, String cssProperty)` | Create a StyleableProperty<Number> using previously created CssMetaData for the given `cssProperty`.
    `StyleableProperty<Number>` | `createStyleableNumberProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Number>> function)` | Create a StyleableProperty<Number>.
    `StyleableProperty<Number>` | `createStyleableNumberProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Number>> function, Number initialValue)` | Create a StyleableProperty<Number> with initial value.
    `StyleableProperty<Number>` | `createStyleableNumberProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Number>> function, Number initialValue, boolean inherits)` | Create a StyleableProperty<Number> with initial value and inherit flag.
    `StyleableProperty<Paint>` | `createStyleablePaintProperty​(S styleable, String propertyName, String cssProperty)` | Create a StyleableProperty<Paint> using previously created CssMetaData for the given `cssProperty`.
    `StyleableProperty<Paint>` | `createStyleablePaintProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Paint>> function)` | Create a StyleableProperty<Paint>.
    `StyleableProperty<Paint>` | `createStyleablePaintProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Paint>> function, Paint initialValue)` | Create a StyleableProperty<Paint> with initial value.
    `StyleableProperty<Paint>` | `createStyleablePaintProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<Paint>> function, Paint initialValue, boolean inherits)` | Create a StyleableProperty<Paint> with initial value and inherit flag.
    `StyleableProperty<String>` | `createStyleableStringProperty​(S styleable, String propertyName, String cssProperty)` | Create a StyleableProperty<String> using previously created CssMetaData for the given `cssProperty`.
    `StyleableProperty<String>` | `createStyleableStringProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<String>> function)` | Create a StyleableProperty<String>.
    `StyleableProperty<String>` | `createStyleableStringProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<String>> function, String initialValue)` | Create a StyleableProperty<String> with initial value.
    `StyleableProperty<String>` | `createStyleableStringProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<String>> function, String initialValue, boolean inherits)` | Create a StyleableProperty<String> with initial value and inherit flag.
    `StyleableProperty<String>` | `createStyleableUrlProperty​(S styleable, String propertyName, String cssProperty)` | Create a StyleableProperty<String> using previously created CssMetaData for the given `cssProperty`.
    `StyleableProperty<String>` | `createStyleableUrlProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<String>> function)` | Create a StyleableProperty<String> with initial value.
    `StyleableProperty<String>` | `createStyleableUrlProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<String>> function, String initialValue)` | Create a StyleableProperty<String> with initial value.
    `StyleableProperty<String>` | `createStyleableUrlProperty​(S styleable, String propertyName, String cssProperty, Function<S,​StyleableProperty<String>> function, String initialValue, boolean inherits)` | Create a StyleableProperty<String> with initial value and inherit flag.
    `CssMetaData<S,​String>` | `createUrlCssMetaData​(String property, Function<S,​StyleableProperty<String>> function)` | Create a CssMetaData<S, String> with initial value of null, and inherit flag defaulting to false.
    `CssMetaData<S,​String>` | `createUrlCssMetaData​(String property, Function<S,​StyleableProperty<String>> function, String initialValue)` | Create a CssMetaData<S, String> with initial value, and inherit flag defaulting to false.
    `CssMetaData<S,​String>` | `createUrlCssMetaData​(String property, Function<S,​StyleableProperty<String>> function, String initialValue, boolean inherits)` | Create a CssMetaData<S, String> with initial value, and inherit flag.
    `List<CssMetaData<? extends Styleable,​?>>` | `getCssMetaData()` | Get the CssMetaData for the given Styleable.

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### StyleablePropertyFactory

          public StyleablePropertyFactory​(List<CssMetaData<? extends Styleable,​?>> parentCssMetaData)

      The constructor is passed the CssMetaData of the parent class of <S>, typically by calling the static `getClassCssMetaData()` method of the parent.
      Parameters:
        `parentCssMetaData` - The CssMetaData of the parent class of <S>, or null.

  - ### Method Detail

    - #### getCssMetaData

          public final List<CssMetaData<? extends Styleable,​?>> getCssMetaData()

      Get the CssMetaData for the given Styleable. For a Node other than a Control, this method should be called from the `Styleable.getCssMetaData()` method. For a Control, this method should be called from the `Control.getControlCssMetaData()` method.
      Returns:
        the CssMetaData for the given Styleable

    - #### createStyleableBooleanProperty

          public final StyleableProperty<Boolean> createStyleableBooleanProperty​(S styleable,
                                                                                 String propertyName,
                                                                                 String cssProperty,
                                                                                 Function<S,​StyleableProperty<Boolean>> function,
                                                                                 boolean initialValue,
                                                                                 boolean inherits)

      Create a StyleableProperty<Boolean> with initial value and inherit flag.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Boolean>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Boolean> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleableBooleanProperty

          public final StyleableProperty<Boolean> createStyleableBooleanProperty​(S styleable,
                                                                                 String propertyName,
                                                                                 String cssProperty,
                                                                                 Function<S,​StyleableProperty<Boolean>> function,
                                                                                 boolean initialValue)

      Create a StyleableProperty<Boolean> with initial value. The inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Boolean>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Boolean> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value

    - #### createStyleableBooleanProperty

          public final StyleableProperty<Boolean> createStyleableBooleanProperty​(S styleable,
                                                                                 String propertyName,
                                                                                 String cssProperty,
                                                                                 Function<S,​StyleableProperty<Boolean>> function)

      Create a StyleableProperty<Boolean>. The initialValue and inherit flag default to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Boolean>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Boolean> that was created by this method call.
      Returns:
        a StyleableProperty created with default initialValue and inherit flag

    - #### createStyleableBooleanProperty

          public final StyleableProperty<Boolean> createStyleableBooleanProperty​(S styleable,
                                                                                 String propertyName,
                                                                                 String cssProperty)

      Create a StyleableProperty<Boolean> using previously created CssMetaData for the given `cssProperty`.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Boolean>
        `cssProperty` - The CSS property name
      Returns:
        a StyleableProperty created using previously created CssMetaData
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createStyleableColorProperty

          public final StyleableProperty<Color> createStyleableColorProperty​(S styleable,
                                                                             String propertyName,
                                                                             String cssProperty,
                                                                             Function<S,​StyleableProperty<Color>> function,
                                                                             Color initialValue,
                                                                             boolean inherits)

      Create a StyleableProperty<Color> with initial value and inherit flag.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Color>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Color> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleableColorProperty

          public final StyleableProperty<Color> createStyleableColorProperty​(S styleable,
                                                                             String propertyName,
                                                                             String cssProperty,
                                                                             Function<S,​StyleableProperty<Color>> function,
                                                                             Color initialValue)

      Create a StyleableProperty<Color> with initial value. The inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Color>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Color> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value

    - #### createStyleableColorProperty

          public final StyleableProperty<Color> createStyleableColorProperty​(S styleable,
                                                                             String propertyName,
                                                                             String cssProperty,
                                                                             Function<S,​StyleableProperty<Color>> function)

      Create a StyleableProperty<Color>. The initial value defaults to Color.BLACK and the inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Color>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Color> that was created by this method call.
      Returns:
        a StyleableProperty created with default initial value and inherit flag

    - #### createStyleableColorProperty

          public final StyleableProperty<Color> createStyleableColorProperty​(S styleable,
                                                                             String propertyName,
                                                                             String cssProperty)

      Create a StyleableProperty<Color> using previously created CssMetaData for the given `cssProperty`.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Color>
        `cssProperty` - The CSS property name
      Returns:
        a StyleableProperty created using previously created CssMetaData
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createStyleableDurationProperty

          public final StyleableProperty<Duration> createStyleableDurationProperty​(S styleable,
                                                                                   String propertyName,
                                                                                   String cssProperty,
                                                                                   Function<S,​StyleableProperty<Duration>> function,
                                                                                   Duration initialValue,
                                                                                   boolean inherits)

      Create a StyleableProperty<Duration> with initial value and inherit flag.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Duration>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Duration> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleableDurationProperty

          public final StyleableProperty<Duration> createStyleableDurationProperty​(S styleable,
                                                                                   String propertyName,
                                                                                   String cssProperty,
                                                                                   Function<S,​StyleableProperty<Duration>> function,
                                                                                   Duration initialValue)

      Create a StyleableProperty<Duration> with initial value. The inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Duration>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Duration> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleableDurationProperty

          public final StyleableProperty<Duration> createStyleableDurationProperty​(S styleable,
                                                                                   String propertyName,
                                                                                   String cssProperty,
                                                                                   Function<S,​StyleableProperty<Duration>> function)

      Create a StyleableProperty<Duration>. The initial value defaults to Duration.BLACK and the inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Duration>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Duration> that was created by this method call.
      Returns:
        a StyleableProperty created with default initial value and false inherit flag

    - #### createStyleableDurationProperty

          public final StyleableProperty<Duration> createStyleableDurationProperty​(S styleable,
                                                                                   String propertyName,
                                                                                   String cssProperty)

      Create a StyleableProperty<Duration> using previously created CssMetaData for the given `cssProperty`.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Duration>
        `cssProperty` - The CSS property name
      Returns:
        a StyleableProperty created using previously created CssMetaData
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createStyleableEffectProperty

          public final <E extends Effect> StyleableProperty<E> createStyleableEffectProperty​(S styleable,
                                                                                             String propertyName,
                                                                                             String cssProperty,
                                                                                             Function<S,​StyleableProperty<E>> function,
                                                                                             E initialValue,
                                                                                             boolean inherits)

      Create a StyleableProperty<Effect> with initial value and inherit flag.
      Type Parameters:
        `E` - The type of StyleableProperty
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Effect>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Effect> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleableEffectProperty

          public final <E extends Effect> StyleableProperty<E> createStyleableEffectProperty​(S styleable,
                                                                                             String propertyName,
                                                                                             String cssProperty,
                                                                                             Function<S,​StyleableProperty<E>> function,
                                                                                             E initialValue)

      Create a StyleableProperty<Effect> with initial value. The inherit flag defaults to false.
      Type Parameters:
        `E` - The StyleableProperty created with initial value and false inherit flag
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Effect>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Effect> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleableEffectProperty

          public final <E extends Effect> StyleableProperty<E> createStyleableEffectProperty​(S styleable,
                                                                                             String propertyName,
                                                                                             String cssProperty,
                                                                                             Function<S,​StyleableProperty<E>> function)

      Create a StyleableProperty<Effect>. The initial value is null and the inherit flag defaults to false.
      Type Parameters:
        `E` - The StyleableProperty created with null initial value and false inherit flag
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Effect>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Effect> that was created by this method call.
      Returns:
        a StyleableProperty created with null initial value and false inherit flag

    - #### createStyleableEffectProperty

          public final StyleableProperty<Effect> createStyleableEffectProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty)

      Create a StyleableProperty<Effect> using previously created CssMetaData for the given `cssProperty`.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Effect>
        `cssProperty` - The CSS property name
      Returns:
        StyleableProperty created using previously created CssMetaData for the given `cssProperty`
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createStyleableEnumProperty

          public final <E extends Enum<E>> StyleableProperty<E> createStyleableEnumProperty​(S styleable,
                                                                                            String propertyName,
                                                                                            String cssProperty,
                                                                                            Function<S,​StyleableProperty<E>> function,
                                                                                            Class<E> enumClass,
                                                                                            E initialValue,
                                                                                            boolean inherits)

      Create a StyleableProperty<E extends Enum<E>> with initial value and inherit flag. The `enumClass` parameter is the Class of the Enum that is the value of the property. For example,

               private static final StyleablePropertyFactory<MyControl> FACTORY = new StyleablePropertyFactory<>();
               StyleableProperty<Orientation> orientation =
                   FACTORY.createStyleableEnumProperty(
                       this,
                       "orientation",
                       "-my-orientation",
                       s -> ((MyControl)s).orientation,
                       Orientation.class,
                       Orientation.HORIZONTAL,
                       false);

      Type Parameters:
        `E` - The StyleableProperty created with initial value and inherit flag
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<E extends Enum<E>>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<E extends Enum<E>> that was created by this method call.
        `enumClass` - The Enum class that is the type of the StyleableProperty<E extends Enum<E>>.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleableEnumProperty

          public final <E extends Enum<E>> StyleableProperty<E> createStyleableEnumProperty​(S styleable,
                                                                                            String propertyName,
                                                                                            String cssProperty,
                                                                                            Function<S,​StyleableProperty<E>> function,
                                                                                            Class<E> enumClass,
                                                                                            E initialValue)

      Create a StyleableProperty<E extends Enum<E>> with initial value. The inherit flag defaults to false. The `enumClass` parameter is the Class of the Enum that is the value of the property. For example,

               private static final StyleablePropertyFactory<MyControl> FACTORY = new StyleablePropertyFactory<>();
               StyleableProperty<Orientation> orientation =
                   FACTORY.createStyleableEnumProperty(
                       this,
                       "orientation",
                       "-my-orientation",
                       s -> ((MyControl)s).orientation,
                       Orientation.class,
                       Orientation.HORIZONTAL);

      Type Parameters:
        `E` - The StyleableProperty created with initial value and false inherit flag
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<E extends Enum<E>>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<E extends Enum<E>> that was created by this method call.
        `enumClass` - The Enum class that is the type of the StyleableProperty<E extends Enum<E>>.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleableEnumProperty

          public final <E extends Enum<E>> StyleableProperty<E> createStyleableEnumProperty​(S styleable,
                                                                                            String propertyName,
                                                                                            String cssProperty,
                                                                                            Function<S,​StyleableProperty<E>> function,
                                                                                            Class<E> enumClass)

      Create a StyleableProperty<E extends Enum<E>>. The initial value is null and inherit flag defaults to false. The `enumClass` parameter is the Class of the Enum that is the value of the property. For example,

               private static final StyleablePropertyFactory<MyControl> FACTORY = new StyleablePropertyFactory<>();
               StyleableProperty<Orientation> orientation =
                   FACTORY.createStyleableEnumProperty(
                       this,
                       "orientation",
                       "-my-orientation",
                       s -> ((MyControl)s).orientation,
                       Orientation.class);

      Type Parameters:
        `E` - The StyleableProperty created with null initial value and false inherit flag
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<E extends Enum<E>>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<E extends Enum<E>> that was created by this method call.
        `enumClass` - The Enum class that is the type of the StyleableProperty<E extends Enum<E>>.
      Returns:
        a StyleableProperty created with null initial value and false inherit flag

    - #### createStyleableEffectProperty

          public final <E extends Enum<E>> StyleableProperty<E> createStyleableEffectProperty​(S styleable,
                                                                                              String propertyName,
                                                                                              String cssProperty,
                                                                                              Class<E> enumClass)

      Create a StyleableProperty<E extends Enum<E>> using previously created CssMetaData for the given `cssProperty`.
      Type Parameters:
        `E` - The StyleableProperty created using previously created CssMetaData
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<E extends Enum<E>>
        `cssProperty` - The CSS property name
        `enumClass` - The Enum class that is the type of the StyleableProperty<E extends Enum<E>>.
      Returns:
        a StyleableProperty created using previously created CssMetaData
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createStyleableFontProperty

          public final StyleableProperty<Font> createStyleableFontProperty​(S styleable,
                                                                           String propertyName,
                                                                           String cssProperty,
                                                                           Function<S,​StyleableProperty<Font>> function,
                                                                           Font initialValue,
                                                                           boolean inherits)

      Create a StyleableProperty<Font> with initial value and inherit flag.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Font>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Font> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleableFontProperty

          public final StyleableProperty<Font> createStyleableFontProperty​(S styleable,
                                                                           String propertyName,
                                                                           String cssProperty,
                                                                           Function<S,​StyleableProperty<Font>> function,
                                                                           Font initialValue)

      Create a StyleableProperty<Font> with initial value. The inherit flag defaults to true.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Font>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Font> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value and true inherit flag

    - #### createStyleableFontProperty

          public final StyleableProperty<Font> createStyleableFontProperty​(S styleable,
                                                                           String propertyName,
                                                                           String cssProperty,
                                                                           Function<S,​StyleableProperty<Font>> function)

      Create a StyleableProperty<Font>. The initial value defaults to `Font.getDefault()` and the inherit flag defaults to true.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Font>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Font> that was created by this method call.
      Returns:
        a StyleableProperty created with default font initial value and true inherit flag

    - #### createStyleableFontProperty

          public final StyleableProperty<Font> createStyleableFontProperty​(S styleable,
                                                                           String propertyName,
                                                                           String cssProperty)

      Create a StyleableProperty<Font> using previously created CssMetaData for the given `cssProperty`.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Font>
        `cssProperty` - The CSS property name
      Returns:
        a StyleableProperty created using previously created CssMetaData
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createStyleableInsetsProperty

          public final StyleableProperty<Insets> createStyleableInsetsProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty,
                                                                               Function<S,​StyleableProperty<Insets>> function,
                                                                               Insets initialValue,
                                                                               boolean inherits)

      Create a StyleableProperty<Inset> with initial value and inherit flag.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Inset>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Inset> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleableInsetsProperty

          public final StyleableProperty<Insets> createStyleableInsetsProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty,
                                                                               Function<S,​StyleableProperty<Insets>> function,
                                                                               Insets initialValue)

      Create a StyleableProperty<Inset> with initial value. The inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Inset>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Inset> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleableInsetsProperty

          public final StyleableProperty<Insets> createStyleableInsetsProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty,
                                                                               Function<S,​StyleableProperty<Insets>> function)

      Create a StyleableProperty<Inset>. The initial value is `Insets.EMPTY` and the inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Inset>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Inset> that was created by this method call.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleableInsetsProperty

          public final StyleableProperty<Insets> createStyleableInsetsProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty)

      Create a StyleableProperty<Insets> using previously created CssMetaData for the given `cssProperty`.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Insets>
        `cssProperty` - The CSS property name
      Returns:
        a StyleableProperty created using previously created CssMetaData
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createStyleablePaintProperty

          public final StyleableProperty<Paint> createStyleablePaintProperty​(S styleable,
                                                                             String propertyName,
                                                                             String cssProperty,
                                                                             Function<S,​StyleableProperty<Paint>> function,
                                                                             Paint initialValue,
                                                                             boolean inherits)

      Create a StyleableProperty<Paint> with initial value and inherit flag.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Paint>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Paint> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleablePaintProperty

          public final StyleableProperty<Paint> createStyleablePaintProperty​(S styleable,
                                                                             String propertyName,
                                                                             String cssProperty,
                                                                             Function<S,​StyleableProperty<Paint>> function,
                                                                             Paint initialValue)

      Create a StyleableProperty<Paint> with initial value. The inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Paint>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Paint> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleablePaintProperty

          public final StyleableProperty<Paint> createStyleablePaintProperty​(S styleable,
                                                                             String propertyName,
                                                                             String cssProperty,
                                                                             Function<S,​StyleableProperty<Paint>> function)

      Create a StyleableProperty<Paint>. The initial value defautls to Color.BLACK and the inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Paint>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Paint> that was created by this method call.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleablePaintProperty

          public final StyleableProperty<Paint> createStyleablePaintProperty​(S styleable,
                                                                             String propertyName,
                                                                             String cssProperty)

      Create a StyleableProperty<Paint> using previously created CssMetaData for the given `cssProperty`.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Paint>
        `cssProperty` - The CSS property name
      Returns:
        a StyleableProperty created using previously created CssMetaData
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createStyleableNumberProperty

          public final StyleableProperty<Number> createStyleableNumberProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty,
                                                                               Function<S,​StyleableProperty<Number>> function,
                                                                               Number initialValue,
                                                                               boolean inherits)

      Create a StyleableProperty<Number> with initial value and inherit flag.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Number>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Number> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleableNumberProperty

          public final StyleableProperty<Number> createStyleableNumberProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty,
                                                                               Function<S,​StyleableProperty<Number>> function,
                                                                               Number initialValue)

      Create a StyleableProperty<Number> with initial value. The inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Number>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Number> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleableNumberProperty

          public final StyleableProperty<Number> createStyleableNumberProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty,
                                                                               Function<S,​StyleableProperty<Number>> function)

      Create a StyleableProperty<Number>. The initial value defaults to zero. The inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Number>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<Number> that was created by this method call.
      Returns:
        a StyleableProperty created with zero initial value and false inherit flag

    - #### createStyleableNumberProperty

          public final StyleableProperty<Number> createStyleableNumberProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty)

      Create a StyleableProperty<Number> using previously created CssMetaData for the given `cssProperty`.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<Number>
        `cssProperty` - The CSS property name
      Returns:
        a StyleableProperty created using previously created CssMetaData
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createStyleableStringProperty

          public final StyleableProperty<String> createStyleableStringProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty,
                                                                               Function<S,​StyleableProperty<String>> function,
                                                                               String initialValue,
                                                                               boolean inherits)

      Create a StyleableProperty<String> with initial value and inherit flag.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<String>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<String> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleableStringProperty

          public final StyleableProperty<String> createStyleableStringProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty,
                                                                               Function<S,​StyleableProperty<String>> function,
                                                                               String initialValue)

      Create a StyleableProperty<String> with initial value. The inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<String>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<String> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleableStringProperty

          public final StyleableProperty<String> createStyleableStringProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty,
                                                                               Function<S,​StyleableProperty<String>> function)

      Create a StyleableProperty<String>. The initial value defaults to null and the inherit flag defaults to false.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<String>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<String> that was created by this method call.
      Returns:
        a StyleableProperty created with null initial value and false inherit flag

    - #### createStyleableStringProperty

          public final StyleableProperty<String> createStyleableStringProperty​(S styleable,
                                                                               String propertyName,
                                                                               String cssProperty)

      Create a StyleableProperty<String> using previously created CssMetaData for the given `cssProperty`.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<String>
        `cssProperty` - The CSS property name
      Returns:
        a StyleableProperty created using previously created CssMetaData
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createStyleableUrlProperty

          public final StyleableProperty<String> createStyleableUrlProperty​(S styleable,
                                                                            String propertyName,
                                                                            String cssProperty,
                                                                            Function<S,​StyleableProperty<String>> function,
                                                                            String initialValue,
                                                                            boolean inherits)

      Create a StyleableProperty<String> with initial value and inherit flag. Here, the String value represents a URL converted from a CSS url("<path>").
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<String>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<String> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a StyleableProperty created with initial value and inherit flag

    - #### createStyleableUrlProperty

          public final StyleableProperty<String> createStyleableUrlProperty​(S styleable,
                                                                            String propertyName,
                                                                            String cssProperty,
                                                                            Function<S,​StyleableProperty<String>> function,
                                                                            String initialValue)

      Create a StyleableProperty<String> with initial value. The inherit flag defaults to false. Here, the String value represents a URL converted from a CSS url("<path>").
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<String>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<String> that was created by this method call.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleableUrlProperty

          public final StyleableProperty<String> createStyleableUrlProperty​(S styleable,
                                                                            String propertyName,
                                                                            String cssProperty,
                                                                            Function<S,​StyleableProperty<String>> function)

      Create a StyleableProperty<String> with initial value. The inherit flag defaults to false. Here, the String value represents a URL converted from a CSS url("<path>").
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<String>
        `cssProperty` - The CSS property name
        `function` - A function that returns the StyleableProperty<String> that was created by this method call.
      Returns:
        a StyleableProperty created with initial value and false inherit flag

    - #### createStyleableUrlProperty

          public final StyleableProperty<String> createStyleableUrlProperty​(S styleable,
                                                                            String propertyName,
                                                                            String cssProperty)

      Create a StyleableProperty<String> using previously created CssMetaData for the given `cssProperty`.
      Parameters:
        `styleable` - The `this` reference of the returned property. This is also the property bean.
        `propertyName` - The field name of the StyleableProperty<String>
        `cssProperty` - The CSS property name
      Returns:
        a StyleableProperty created using previously created CssMetaData
      Throws:
        `IllegalArgumentException` - if `cssProperty` is null or empty
        `NoSuchElementException` - if the CssMetaData for `cssProperty` was not created prior to this method invocation

    - #### createBooleanCssMetaData

          public final CssMetaData<S,​Boolean> createBooleanCssMetaData​(String property,
                                                                             Function<S,​StyleableProperty<Boolean>> function,
                                                                             boolean initialValue,
                                                                             boolean inherits)

      Create a CssMetaData<S, Boolean> with initial value, and inherit flag.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Boolean> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createBooleanCssMetaData

          public final CssMetaData<S,​Boolean> createBooleanCssMetaData​(String property,
                                                                             Function<S,​StyleableProperty<Boolean>> function,
                                                                             boolean initialValue)

      Create a CssMetaData<S, Boolean> with initial value, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Boolean> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createBooleanCssMetaData

          public final CssMetaData<S,​Boolean> createBooleanCssMetaData​(String property,
                                                                             Function<S,​StyleableProperty<Boolean>> function)

      Create a CssMetaData<S, Boolean> with initial value and inherit flag both defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Boolean> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with false initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createColorCssMetaData

          public final CssMetaData<S,​Color> createColorCssMetaData​(String property,
                                                                         Function<S,​StyleableProperty<Color>> function,
                                                                         Color initialValue,
                                                                         boolean inherits)

      Create a CssMetaData<S, Color> with initial value, and inherit flag.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Color> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createColorCssMetaData

          public final CssMetaData<S,​Color> createColorCssMetaData​(String property,
                                                                         Function<S,​StyleableProperty<Color>> function,
                                                                         Color initialValue)

      Create a CssMetaData<S, Color> with initial value, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Color> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createColorCssMetaData

          public final CssMetaData<S,​Color> createColorCssMetaData​(String property,
                                                                         Function<S,​StyleableProperty<Color>> function)

      Create a CssMetaData<S, Color> with initial value of Color.BLACK, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Color> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createDurationCssMetaData

          public final CssMetaData<S,​Duration> createDurationCssMetaData​(String property,
                                                                               Function<S,​StyleableProperty<Duration>> function,
                                                                               Duration initialValue,
                                                                               boolean inherits)

      Create a CssMetaData<S, Duration> with initial value, and inherit flag.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Duration> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createDurationCssMetaData

          public final CssMetaData<S,​Duration> createDurationCssMetaData​(String property,
                                                                               Function<S,​StyleableProperty<Duration>> function,
                                                                               Duration initialValue)

      Create a CssMetaData<S, Duration> with initial value, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Duration> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createDurationCssMetaData

          public final CssMetaData<S,​Duration> createDurationCssMetaData​(String property,
                                                                               Function<S,​StyleableProperty<Duration>> function)

      Create a CssMetaData<S, Duration> with initial value of Duration.BLACK, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Duration> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createEffectCssMetaData

          public final <E extends Effect> CssMetaData<S,​E> createEffectCssMetaData​(String property,
                                                                                         Function<S,​StyleableProperty<E>> function,
                                                                                         E initialValue,
                                                                                         boolean inherits)

      Create a CssMetaData<S, Effect> with initial value, and inherit flag.
      Type Parameters:
        `E` - The CssMetaData created with initial value and inherit flag
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Effect> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createEffectCssMetaData

          public final <E extends Effect> CssMetaData<S,​E> createEffectCssMetaData​(String property,
                                                                                         Function<S,​StyleableProperty<E>> function,
                                                                                         E initialValue)

      Create a CssMetaData<S, Effect> with initial value, and inherit flag defaulting to false.
      Type Parameters:
        `E` - The CssMetaData created with initial value and false inherit flag
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Effect> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createEffectCssMetaData

          public final <E extends Effect> CssMetaData<S,​E> createEffectCssMetaData​(String property,
                                                                                         Function<S,​StyleableProperty<E>> function)

      Create a CssMetaData<S, Effect> with initial value of null, and inherit flag defaulting to false.
      Type Parameters:
        `E` - The CssMetaData created with null initial value and false inherit flag
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Effect> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with null initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createEnumCssMetaData

          public final <E extends Enum<E>> CssMetaData<S,​E> createEnumCssMetaData​(Class<? extends Enum> enumClass,
                                                                                        String property,
                                                                                        Function<S,​StyleableProperty<E>> function,
                                                                                        E initialValue,
                                                                                        boolean inherits)

      Create a CssMetaData<S, Enum> with initial value, and inherit flag.
      Type Parameters:
        `E` - The CssMetaData created with initial value and inherit flag
      Parameters:
        `enumClass` - The Enum class that is the type of the CssMetaData<E extends Enum<E>>.
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Enum> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createEnumCssMetaData

          public final <E extends Enum<E>> CssMetaData<S,​E> createEnumCssMetaData​(Class<? extends Enum> enumClass,
                                                                                        String property,
                                                                                        Function<S,​StyleableProperty<E>> function,
                                                                                        E initialValue)

      Create a CssMetaData<S, Enum> with initial value, and inherit flag defaulting to false.
      Type Parameters:
        `E` - The CssMetaData created with initial value and false inherit flag
      Parameters:
        `enumClass` - The Enum class that is the type of the CssMetaData<E extends Enum<E>>.
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Enum> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createEnumCssMetaData

          public final <E extends Enum<E>> CssMetaData<S,​E> createEnumCssMetaData​(Class<? extends Enum> enumClass,
                                                                                        String property,
                                                                                        Function<S,​StyleableProperty<E>> function)

      Create a CssMetaData<S, Enum> with initial value of null, and inherit flag defaulting to false.
      Type Parameters:
        `E` - The CssMetaData created with null initial value and false inherit flag
      Parameters:
        `enumClass` - The Enum class that is the type of the CssMetaData<E extends Enum<E>>.
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Enum> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with null initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createFontCssMetaData

          public final CssMetaData<S,​Font> createFontCssMetaData​(String property,
                                                                       Function<S,​StyleableProperty<Font>> function,
                                                                       Font initialValue,
                                                                       boolean inherits)

      Create a CssMetaData<S, Font> with initial value, and inherit flag.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Font> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createFontCssMetaData

          public final CssMetaData<S,​Font> createFontCssMetaData​(String property,
                                                                       Function<S,​StyleableProperty<Font>> function,
                                                                       Font initialValue)

      Create a CssMetaData<S, Font> with initial value, and inherit flag defaulting to true.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Font> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and true inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createFontCssMetaData

          public final CssMetaData<S,​Font> createFontCssMetaData​(String property,
                                                                       Function<S,​StyleableProperty<Font>> function)

      Create a CssMetaData<S, Font> with initial value of `Font.getDefault()`, and inherit flag defaulting to true.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Font> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with initial value, and true inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createInsetsCssMetaData

          public final CssMetaData<S,​Insets> createInsetsCssMetaData​(String property,
                                                                           Function<S,​StyleableProperty<Insets>> function,
                                                                           Insets initialValue,
                                                                           boolean inherits)

      Create a CssMetaData<S, Insets> with initial value, and inherit flag.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Insets> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createInsetsCssMetaData

          public final CssMetaData<S,​Insets> createInsetsCssMetaData​(String property,
                                                                           Function<S,​StyleableProperty<Insets>> function,
                                                                           Insets initialValue)

      Create a CssMetaData<S, Insets> with initial value, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Insets> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createInsetsCssMetaData

          public final CssMetaData<S,​Insets> createInsetsCssMetaData​(String property,
                                                                           Function<S,​StyleableProperty<Insets>> function)

      Create a CssMetaData<S, Insets> with initial value of `Insets.EMPTY`, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Insets> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createPaintCssMetaData

          public final CssMetaData<S,​Paint> createPaintCssMetaData​(String property,
                                                                         Function<S,​StyleableProperty<Paint>> function,
                                                                         Paint initialValue,
                                                                         boolean inherits)

      Create a CssMetaData<S, Paint> with initial value, and inherit flag.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Paint> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createPaintCssMetaData

          public final CssMetaData<S,​Paint> createPaintCssMetaData​(String property,
                                                                         Function<S,​StyleableProperty<Paint>> function,
                                                                         Paint initialValue)

      Create a CssMetaData<S, Paint> with initial value, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Paint> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createPaintCssMetaData

          public final CssMetaData<S,​Paint> createPaintCssMetaData​(String property,
                                                                         Function<S,​StyleableProperty<Paint>> function)

      Create a CssMetaData<S, Paint> with initial value of Color.BLACK, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Paint> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createSizeCssMetaData

          public final CssMetaData<S,​Number> createSizeCssMetaData​(String property,
                                                                         Function<S,​StyleableProperty<Number>> function,
                                                                         Number initialValue,
                                                                         boolean inherits)

      Create a CssMetaData<S, Number> with initial value, and inherit flag.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Number> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createSizeCssMetaData

          public final CssMetaData<S,​Number> createSizeCssMetaData​(String property,
                                                                         Function<S,​StyleableProperty<Number>> function,
                                                                         Number initialValue)

      Create a CssMetaData<S, Number> with initial value, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Number> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createSizeCssMetaData

          public final CssMetaData<S,​Number> createSizeCssMetaData​(String property,
                                                                         Function<S,​StyleableProperty<Number>> function)

      Create a CssMetaData<S, Number> with initial value of `0d`, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<Number> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createStringCssMetaData

          public final CssMetaData<S,​String> createStringCssMetaData​(String property,
                                                                           Function<S,​StyleableProperty<String>> function,
                                                                           String initialValue,
                                                                           boolean inherits)

      Create a CssMetaData<S, String> with initial value, and inherit flag.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<String> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createStringCssMetaData

          public final CssMetaData<S,​String> createStringCssMetaData​(String property,
                                                                           Function<S,​StyleableProperty<String>> function,
                                                                           String initialValue)

      Create a CssMetaData<S, String> with initial value, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<String> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createStringCssMetaData

          public final CssMetaData<S,​String> createStringCssMetaData​(String property,
                                                                           Function<S,​StyleableProperty<String>> function)

      Create a CssMetaData<S, String> with initial value of null, and inherit flag defaulting to false.
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<String> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with null initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createUrlCssMetaData

          public final CssMetaData<S,​String> createUrlCssMetaData​(String property,
                                                                        Function<S,​StyleableProperty<String>> function,
                                                                        String initialValue,
                                                                        boolean inherits)

      Create a CssMetaData<S, String> with initial value, and inherit flag. Here, the String value represents a URL converted from a CSS url("<path>").
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<String> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
        `inherits` - Whether or not the CSS style can be inherited by child nodes
      Returns:
        a CssMetaData created with initial value, and inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createUrlCssMetaData

          public final CssMetaData<S,​String> createUrlCssMetaData​(String property,
                                                                        Function<S,​StyleableProperty<String>> function,
                                                                        String initialValue)

      Create a CssMetaData<S, String> with initial value, and inherit flag defaulting to false. Here, the String value represents a URL converted from a CSS url("<path>").
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<String> that corresponds to this CssMetaData.
        `initialValue` - The initial value of the property. CSS may reset the property to this value.
      Returns:
        a CssMetaData created with initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.

    - #### createUrlCssMetaData

          public final CssMetaData<S,​String> createUrlCssMetaData​(String property,
                                                                        Function<S,​StyleableProperty<String>> function)

      Create a CssMetaData<S, String> with initial value of null, and inherit flag defaulting to false. Here, the String value represents a URL converted from a CSS url("<path>").
      Parameters:
        `property` - The CSS property name.
        `function` - A function that returns the StyleableProperty<String> that corresponds to this CssMetaData.
      Returns:
        a CssMetaData created with null initial value, and false inherit flag
      Throws:
        `IllegalArgumentException` - if `property` is null or an empty string, or `function` is null.