package cnp.ew.util;

import java.util.*;

/**
 * Provides an observable wrapper for an integer.
 */
public class CpIntegerModel extends CpDefaultObservable
{
    Integer value;
    int min, max;

    public void setMin(int newMin)
    {
        min = newMin;
    }

    public int getMin()
    {
        return min;
    }

    public void setMax(int newMax)
    {
        max = newMax;
    }

    public int getMax()
    {
        return max;
    }

    public void setValue(int newValue)
    {
        setValue(new Integer(newValue));
    }

    public void setValue(Integer newValue)
    {
        boolean notify = value != newValue;
        value = newValue;
        if (notify) {
            notifyObservers(value);
        }
    }

    public Integer getValue()
    {
        return value;
    }

    public void increment()
    {
        setValue(new Integer(value.intValue() + 1));
    }

    public void decrement()
    {
        setValue(new Integer(value.intValue() - 1));
    }
}

