class BorderColorCssValues extends AbstractBean<BorderColorCssValues> implements StateChangeInformer<Bean> {

    public BorderColorCssValues setValue(final String cssValue) {
        final String previousCssValue = this.cssValue;
        try {
            if (cssValue == null) {
                throw new NullValueException(
                        "null is an invalid value. The value should be any color for example #0000ff, rgb(15, 25, 155), rgba(15, 25, 155, 0.5) Or, initial/inherit/transparent.");
            } else if (!isValid(cssValue)) {
                throw new InvalidValueException(cssValue
                        + " is an invalid value. The value should be any color for example #0000ff, rgb(15, 25, 155), rgba(15, 25, 155, 0.5) Or, initial/inherit/transparent.");
            } else {
                this.cssValue = StringUtil.strip(cssValue);
                if (RgbCssValue.isValid(cssValue)) {
                    if (rgbCssValue == null) {
                        rgbCssValue = new RgbCssValue(cssValue);
                    } else {
                        rgbCssValue.setRgb(this.cssValue);
                    }
                    rgbCssValue.setStateChangeInformer(this);
                } else {
                    makeRgbCssValueNull();
                }

                if (RgbaCssValue.isValid(cssValue)) {
                    if (rgbaCssValue == null) {
                        rgbaCssValue = new RgbaCssValue(cssValue);
                    } else {
                        rgbaCssValue.setRgba(this.cssValue);
                    }
                    rgbaCssValue.setStateChangeInformer(this);
                } else {
                    makeRgbaCssValueNull();
                }

                if (HslCssValue.isValid(cssValue)) {
                    if (hslCssValue == null) {
                        hslCssValue = new HslCssValue(cssValue);
                    } else {
                        hslCssValue.setHsl(this.cssValue);
                    }
                    hslCssValue.setStateChangeInformer(this);
                } else {
                    makeHslCssValueNull();
                }

                if (HslaCssValue.isValid(cssValue)) {
                    if (hslaCssValue == null) {
                        hslaCssValue = new HslaCssValue(cssValue);
                    } else {
                        hslaCssValue.setHsla(this.cssValue);
                    }
                    hslaCssValue.setStateChangeInformer(this);
                } else {
                    makeHslaCssValueNull();
                }

                if (getStateChangeInformer() != null) {
                    getStateChangeInformer().stateChanged(this);
                }
            }
        } catch (final InvalidValueException e) {
            this.cssValue = previousCssValue;
            throw e;
        }
        return this;
    }

    public  BorderColorCssValues();
    public  BorderColorCssValues(final String cssValue);
    public  BorderColorCssValues(
            final BorderColorCssValues borderColorCssValue);
    public  BorderColorCssValues(final RgbCssValue rgbCssValue);
    public  BorderColorCssValues(final RgbaCssValue rgbaCssValue);
    public  BorderColorCssValues(final HslCssValue hslCssValue);
    public  BorderColorCssValues(final HslaCssValue hslaCssValue);

}