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}