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