001package org.clafer.ir;
002
003import org.clafer.common.Check;
004
005/**
006 *
007 * @author jimmy
008 */
009public class IrIntVar extends IrAbstractInt implements IrVar {
010
011    private final String name;
012
013    IrIntVar(String name, IrDomain domain) {
014        super(domain);
015        this.name = Check.notNull(name);
016    }
017
018    @Override
019    public String getName() {
020        return name;
021    }
022
023    @Override
024    public <A, B> B accept(IrIntExprVisitor<A, B> visitor, A a) {
025        return visitor.visit(this, a);
026    }
027
028    @Override
029    public boolean equals(Object obj) {
030        return this == obj;
031    }
032
033    @Override
034    public int hashCode() {
035        return name.hashCode();
036    }
037
038    @Override
039    public String toString() {
040        // TODO: return only name
041        return name + "{domain=" + getDomain() + "}";
042    }
043}