001package org.clafer.ir;
002
003/**
004 *
005 * @author jimmy
006 */
007public class IrIntConstant extends IrIntVar implements IrConstant {
008
009    private final int value;
010
011    IrIntConstant(int value) {
012        super(Integer.toString(value), new IrBoundDomain(value, value));
013        this.value = value;
014    }
015
016    public int getValue() {
017        return value;
018    }
019
020    @Override
021    public boolean equals(Object obj) {
022        if (this == obj) {
023            return true;
024        }
025        if (obj instanceof IrIntConstant) {
026            IrIntConstant other = (IrIntConstant) obj;
027            // Don't need to call super.hashCode since the domain is the same as value.
028            return value == other.value;
029        }
030        return false;
031    }
032
033    @Override
034    public int hashCode() {
035        return value;
036    }
037
038    @Override
039    public String toString() {
040        return Integer.toString(value);
041    }
042}