// Paweł Rzechonek (c) October 2005
// klasa reprezentująca licznik całkowity
// (hermetyzacja, przeciążenie konstruktora)

package narzedzia;

public class Licznik
{
    protected final int min;
    protected final int max;
    private int licz;

    public Licznik (int min, int max, boolean kierunek)
    {
        if (max<=min) throw new IllegalArgumentException();
        this.min = min;
        this.max = max;
        licz = kierunek?max:min;
    }
    public Licznik (int min, int max)
    {
        this(min,max,false);
    }
    public Licznik (int max)
    {
        this(0,max);
    }
    public Licznik ()
    {
        min = 0;
        max = Integer.MAX_VALUE;
    }

    public int wartosc ()
    {
        return licz;
    }
    public void zwieksz ()
    {
        if (licz==max) throw new IllegalStateException();
        licz++;
    }
    public void zmniejsz ()
    {
        if (licz==min) throw new IllegalStateException();
        licz--;
    }

    public String toString ()
    {
        return Integer.toString(licz);
    }
}
