@Override
    public final void setValue(final int value) {
        if (!mutable) {
            return;
        }

        this.value = Math.min(maxValue, Math.max(minValue, value));

        for (final ChangeListener x : changeListener) {
            x.stateChanged(new ChangeEvent(this));
        }
    }