package com.ctriposs.baiji.generic;
import com.ctriposs.baiji.exception.BaijiRuntimeException;
import com.ctriposs.baiji.schema.EnumSchema;
public class GenericEnum {
private final EnumSchema _schema;
private String _value;
public GenericEnum(EnumSchema schema, String value) {
_schema = schema;
setValue(value);
}
public EnumSchema getSchema() {
return _schema;
}
public String getValue() {
return _value;
}
public void setValue(String value) {
if (!_schema.contains(value)) {
throw new BaijiRuntimeException("Unknown value for enum: " + value + "(" + _schema + ")");
}
_value = value;
}
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
return obj instanceof GenericEnum && _value.equals(((GenericEnum) obj)._value);
}
@Override
public int hashCode() {
return 17 * _value.hashCode();
}
@Override
public String toString() {
return "Schema: " + _schema + ", value: " + _value;
}
}