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

  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 declared in class java.lang.Object

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

- ## Constructor Details

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

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