CommonCompleteDomainType.java
package edu.udel.cis.vsl.civl.model.common.type;
import edu.udel.cis.vsl.civl.model.IF.type.CIVLCompleteDomainType;
import edu.udel.cis.vsl.civl.model.IF.type.CIVLType;
public class CommonCompleteDomainType extends CommonDomainType implements
CIVLCompleteDomainType {
public final static int classCode = CommonCompleteDomainType.class
.hashCode();
private int dimension;
public CommonCompleteDomainType(CIVLType rangeType, int dimension) {
super(rangeType);
assert dimension >= 1 : "For complete domain type, dimension must be greater than 0";
this.dimension = dimension;
}
@Override
public int getDimension() {
return dimension;
}
@Override
public String toString() {
return "$domain(" + dimension + ")";
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj instanceof CommonCompleteDomainType) {
return dimension == ((CommonCompleteDomainType) obj).dimension;
}
return false;
}
@Override
public int hashCode() {
return classCode ^ dimension;
}
@Override
public boolean isDomainType() {
return true;
}
}