package net.sourceforge.mayfly.evaluation.expression;
import net.sourceforge.mayfly.MayflyInternalException;
import net.sourceforge.mayfly.datastore.Cell;
import net.sourceforge.mayfly.datastore.NullCell;
import net.sourceforge.mayfly.evaluation.Expression;
import net.sourceforge.mayfly.evaluation.ResultRow;
import net.sourceforge.mayfly.evaluation.expression.literal.CellExpression;
public class SpecifiedDefaultValue extends DefaultValue {
private final Expression expression;
public SpecifiedDefaultValue(Cell value) {
this(new CellExpression(value));
if (value instanceof NullCell) {
throw new MayflyInternalException(
"null should be using UnspecifiedDefaultValue");
}
}
public SpecifiedDefaultValue(Expression expression) {
this.expression = expression;
}
@Override
public Cell cell() {
return expression.evaluate((ResultRow)null);
}
@Override
public boolean isSpecified() {
return true;
}
@Override
public boolean sqlEquals(Cell cell) {
return cell().sqlEquals(cell);
}
@Override
public String asSql() {
return expression.asSql();
}
}