class BackgroundSize extends AbstractCssProperty<BackgroundSize> {

    public static boolean isValid(final String cssValue) {
        final String trimmedCssValue = TagStringUtil
                .toLowerCase(StringUtil.strip(cssValue));

        final String[] cssValueParts = StringUtil.splitBySpace(trimmedCssValue);
        if (cssValueParts.length > 2) {
            return false;
        }
        if (PREDEFINED_CONSTANTS.contains(trimmedCssValue)) {
            return true;
        }

        boolean valid = false;
        for (final String each : cssValueParts) {
            final Object[] lengthValueAndUnit = CssLengthUtil
                    .getLengthValueAsPremitiveAndUnit(each);
            if (lengthValueAndUnit.length != 2) {
                return false;
            }
            valid = true;
        }
        return valid;
    }

    public  BackgroundSize();
    public  BackgroundSize(final String cssValue);
    public  BackgroundSize(final BackgroundSize backgroundSize);
    public  BackgroundSize(final float widthHeight,
            final CssLengthUnit cssLengthUnit);
    public  BackgroundSize(final float width,
            final CssLengthUnit widthLengthUnit, final float height,
            final CssLengthUnit heightLengthUnit);

}