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