package net.bradmont.supergreen.fields.constraints;
import net.bradmont.supergreen.fields.*;
/**
* Minimum value constraints for IntField and FloatField.
*/
public class MinValueConstraint extends Constraint{
int int_min;
float float_min;
public MinValueConstraint(int min){
this.int_min=min;
this.float_min=(float)min;
}
public MinValueConstraint(float min){
this.float_min=min;
}
@Override
public boolean validate(DBField field) throws ConstraintError{
if (field instanceof IntField){
if (field.getInt() < int_min){
throw new ConstraintError ("%s cannot be less than %d".format(field.getName(), int_min));
} else {
return true;
}
} else if (field instanceof FloatField){
if (field.getFloat() < float_min){
throw new ConstraintError( "%s cannot be less than %f".format(field.getName(), float_min));
} else {
return true;
}
} else {
throw new ConstraintError( String.format("This constraint is only valid for FloatField and IntField; invalid for %s", field.getName()));
}
}
}