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

    public MozColumnRule setMozColumnRuleColor(
            final MozColumnRuleColor mozColumnRuleColor) {

        final StringBuilder cssValueBuilder = new StringBuilder();

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

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

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

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

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

        this.mozColumnRuleColor = mozColumnRuleColor;

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

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

        return this;
    }

    public  MozColumnRule();
    public  MozColumnRule(final String cssValue);
    public  MozColumnRule(final MozColumnRule mozColumnRule);

}