class FlexShrink extends AbstractCssProperty<FlexShrink> {

    @Override
    public FlexShrink setCssValue(final String cssValue) {
        final String previousCssValue = this.cssValue;
        try {
            if (cssValue == null) {
                throw new NullValueException(
                        "null is an invalid value. The value format should be as for example 0.5, initial/inherit.");
            } else {

                final String trimmedCssValue = TagStringUtil
                        .toLowerCase(StringUtil.strip(cssValue));

                if (INITIAL.equals(trimmedCssValue)
                        || INHERIT.equals(trimmedCssValue)) {
                    this.cssValue = trimmedCssValue;
                    value = null;
                } else {
                    try {
                        value = Float.valueOf(trimmedCssValue);
                        this.cssValue = value.toString();
                    } catch (final NumberFormatException e) {
                        throw new InvalidValueException(cssValue
                                + " is an invalid value. The value format should be as for example 0.5, initial, inherit etc..");
                    }
                }

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

    }

    public  FlexShrink();
    public  FlexShrink(final String cssValue);
    public  FlexShrink(final FlexShrink flexShrink);
    public  FlexShrink(final float value);

}