001package org.clafer.ir; 002 003import org.clafer.common.Check; 004 005/** 006 * 007 * @author jimmy 008 */ 009public class IrSetVar extends IrAbstractSet implements IrVar { 010 011 private final String name; 012 013 IrSetVar(String name, IrDomain env, IrDomain ker, IrDomain card) { 014 super(env, ker, card); 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(IrSetExprVisitor<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: should only print name 041 return name + "{env=" + getEnv() + ", ker=" + getKer() + ", card=" + getCard() + "}"; 042 } 043}