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
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`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.
`final StyleableProperty<Boolean>`
`createStyleableBooleanProperty(S styleable, String propertyName, String cssProperty)`
Create a StyleableProperty<Boolean> using previously created CssMetaData for the given `cssProperty`.
`final StyleableProperty<Boolean>`
`createStyleableBooleanProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Boolean>> function)`
Create a StyleableProperty<Boolean>.
`final StyleableProperty<Boolean>`
`createStyleableBooleanProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Boolean>> function, boolean initialValue)`
Create a StyleableProperty<Boolean> with initial value.
`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.
`final StyleableProperty<Color>`
`createStyleableColorProperty(S styleable, String propertyName, String cssProperty)`
Create a StyleableProperty<Color> using previously created CssMetaData for the given `cssProperty`.
`final StyleableProperty<Color>`
`createStyleableColorProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Color>> function)`
Create a StyleableProperty<Color>.
`final StyleableProperty<Color>`
`createStyleableColorProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Color>> function, Color initialValue)`
Create a StyleableProperty<Color> with initial value.
`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.
`final StyleableProperty<Duration>`
`createStyleableDurationProperty(S styleable, String propertyName, String cssProperty)`
Create a StyleableProperty<Duration> using previously created CssMetaData for the given `cssProperty`.
`final StyleableProperty<Duration>`
`createStyleableDurationProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Duration>> function)`
Create a StyleableProperty<Duration>.
`final StyleableProperty<Duration>`
`createStyleableDurationProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Duration>> function, Duration initialValue)`
Create a StyleableProperty<Duration> with initial value.
`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.
`final StyleableProperty<Effect>`
`createStyleableEffectProperty(S styleable, String propertyName, String cssProperty)`
Create a StyleableProperty<Effect> using previously created CssMetaData for the given `cssProperty`.
`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`.
`final <E extends Effect>
StyleableProperty<E>`
`createStyleableEffectProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<E>> function)`
Create a StyleableProperty<Effect>.
`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.
`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.
`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>>.
`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.
`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.
`final StyleableProperty<Font>`
`createStyleableFontProperty(S styleable, String propertyName, String cssProperty)`
Create a StyleableProperty<Font> using previously created CssMetaData for the given `cssProperty`.
`final StyleableProperty<Font>`
`createStyleableFontProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Font>> function)`
Create a StyleableProperty<Font>.
`final StyleableProperty<Font>`
`createStyleableFontProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Font>> function, Font initialValue)`
Create a StyleableProperty<Font> with initial value.
`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.
`final StyleableProperty<Insets>`
`createStyleableInsetsProperty(S styleable, String propertyName, String cssProperty)`
Create a StyleableProperty<Insets> using previously created CssMetaData for the given `cssProperty`.
`final StyleableProperty<Insets>`
`createStyleableInsetsProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Insets>> function)`
Create a StyleableProperty<Inset>.
`final StyleableProperty<Insets>`
`createStyleableInsetsProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Insets>> function, Insets initialValue)`
Create a StyleableProperty<Inset> with initial value.
`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.
`final StyleableProperty<Number>`
`createStyleableNumberProperty(S styleable, String propertyName, String cssProperty)`
Create a StyleableProperty<Number> using previously created CssMetaData for the given `cssProperty`.
`final StyleableProperty<Number>`
`createStyleableNumberProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Number>> function)`
Create a StyleableProperty<Number>.
`final StyleableProperty<Number>`
`createStyleableNumberProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Number>> function, Number initialValue)`
Create a StyleableProperty<Number> with initial value.
`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.
`final StyleableProperty<Paint>`
`createStyleablePaintProperty(S styleable, String propertyName, String cssProperty)`
Create a StyleableProperty<Paint> using previously created CssMetaData for the given `cssProperty`.
`final StyleableProperty<Paint>`
`createStyleablePaintProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Paint>> function)`
Create a StyleableProperty<Paint>.
`final StyleableProperty<Paint>`
`createStyleablePaintProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<Paint>> function, Paint initialValue)`
Create a StyleableProperty<Paint> with initial value.
`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.
`final StyleableProperty<String>`
`createStyleableStringProperty(S styleable, String propertyName, String cssProperty)`
Create a StyleableProperty<String> using previously created CssMetaData for the given `cssProperty`.
`final StyleableProperty<String>`
`createStyleableStringProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<String>> function)`
Create a StyleableProperty<String>.
`final StyleableProperty<String>`
`createStyleableStringProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<String>> function, String initialValue)`
Create a StyleableProperty<String> with initial value.
`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.
`final StyleableProperty<String>`
`createStyleableUrlProperty(S styleable, String propertyName, String cssProperty)`
Create a StyleableProperty<String> using previously created CssMetaData for the given `cssProperty`.
`final StyleableProperty<String>`
`createStyleableUrlProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<String>> function)`
Create a StyleableProperty<String> with initial value.
`final StyleableProperty<String>`
`createStyleableUrlProperty(S styleable, String propertyName, String cssProperty, Function<S,StyleableProperty<String>> function, String initialValue)`
Create a StyleableProperty<String> with initial value.
`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.
`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.
`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.
`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.
`final 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 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.