class WebkitColumnRule extends AbstractCssProperty<WebkitColumnRule> implements StateChangeInformer<CssProperty> {

    public WebkitColumnRule setWebkitColumnRuleColor(
            final WebkitColumnRuleColor webkitColumnRuleColor) {

        final StringBuilder cssValueBuilder = new StringBuilder();

        if (webkitColumnRuleWidth != null) {
            cssValueBuilder.append(webkitColumnRuleWidth.getCssValue())
                    .append(' ');
        }

        if (webkitColumnRuleStyle != null) {
            cssValueBuilder.append(webkitColumnRuleStyle.getCssValue())
                    .append(' ');
        }

        if (webkitColumnRuleColor != null) {
            cssValueBuilder.append(webkitColumnRuleColor.getCssValue());
        }

        final String trimmedCssValue = StringBuilderUtil
                .getTrimmedString(cssValueBuilder).toString();
        cssValue = trimmedCssValue.isEmpty() ? INHERIT : trimmedCssValue;

        if (this.webkitColumnRuleColor != null) {
            this.webkitColumnRuleColor.setAlreadyInUse(false);
        }

        this.webkitColumnRuleColor = webkitColumnRuleColor;

        if (this.webkitColumnRuleColor != null) {
            this.webkitColumnRuleColor.setStateChangeInformer(this);
            this.webkitColumnRuleColor.setAlreadyInUse(true);
        }

        if (getStateChangeInformer() != null) {
            getStateChangeInformer().stateChanged(this);
        }

        return this;
    }

    public  WebkitColumnRule();
    public  WebkitColumnRule(final String cssValue);
    public  WebkitColumnRule(final WebkitColumnRule webkitColumnRule);

}