// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea // Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ package graphtea.platform.lang; import graphtea.platform.attribute.AtomAttribute; /** * represents a bounded integer: it's value only can be in the (max ,min) bound. * * @author azin azadi */ //todo: bounded number public class BoundedInteger implements Validator<Integer>, AtomAttribute<Integer> { private int max; private int min; /** * sets the max and min to integer.maxvalue , minvalue * * @param value The value */ public BoundedInteger(int value) { max = Integer.MAX_VALUE; min = Integer.MIN_VALUE; this.value = value; } public BoundedInteger(int value, int max, int min) { setMax(max); setMin(min); this.value = value; } public int getMax() { return max; } public void setMax(int max) { if (max < min) throw new RuntimeException("max value should be smaller than min value"); this.max = max; } public int getMin() { return min; } public void setMin(int min) { if (max < min) throw new RuntimeException("max value should be smaller than min value"); this.min = min; } public String toString() { return "BInt" + value; } /** * returns true if value is in the bounds of this bounded integer and set the current value */ public boolean setValue(Integer value) { if (isValid(value)) { this.value = value; return true; } return false; } public Integer getValue() { return value; } private int value; /** * is xx in bounds? */ public boolean isValid(Integer xx) { return xx < max && xx > min; } }