package ql.gui.input_field; import ql.ast.expression_evaluator.ValueEnvironment; import ql.ast.expression_value.BooleanValue; import ql.ast.type.BooleanType; import ql.ast.type.DateType; import ql.ast.type.DecimalType; import ql.ast.type.EnumType; import ql.ast.type.IntegerType; import ql.ast.type.NullType; import ql.ast.type.RangeType; import ql.ast.type.StringType; import ql.ast.visitor_elements.ITypeElementVisitor; /** * @author orosu */ public class InputBuilderVisitor implements ITypeElementVisitor<IInput> { private final ValueEnvironment _valueEnvironment; // used for setting default values private final String _id; public InputBuilderVisitor(ValueEnvironment valueEnvironment, String id) { this._valueEnvironment = valueEnvironment; this._id = id; } @Override public CheckBoxInput visit(BooleanType booleanType) { // Set Default Value this._valueEnvironment.setValue(this._id, new BooleanValue(false)); return new CheckBoxInput(this._id); } @Override public TextFieldInput visit(IntegerType integerType) { return new TextFieldInput(this._id, integerType); } @Override public IInput visit(DecimalType decimalType) { return new TextFieldInput(this._id, decimalType); } @Override public CalendarInput visit(DateType dateType) { return new CalendarInput(this._id); } @Override public TextFieldInput visit(StringType stringType) { return new TextFieldInput(this._id, stringType); } @Override public ListInput visit(EnumType enumType) { return new ListInput(this._id); } @Override public ListInput visit(RangeType rangeType) { return new ListInput(this._id); } @Override public IInput visit(NullType nullType) { assert false: "Execution should never reach this!"; return null; } }