package org.fugazi.ql.gui.ui_element.visitors;
import org.fugazi.ql.ast.statement.Question;
import org.fugazi.ql.ast.type.*;
import org.fugazi.ql.gui.mediator.IMediator;
import org.fugazi.ql.gui.ui_element.ui_questions.UIBoolQuestion;
import org.fugazi.ql.gui.ui_element.ui_questions.UINumQuestion;
import org.fugazi.ql.gui.ui_element.ui_questions.UIQuestion;
import org.fugazi.ql.gui.ui_element.ui_questions.UITextQuestion;
import org.fugazi.ql.gui.widgets.IWidget;
public class TypeToUIQuestionVisitor implements ITypeVisitor<UIQuestion> {
private final IMediator mediator;
private final Question question;
private final IWidget widget;
public TypeToUIQuestionVisitor(IMediator _mediator, Question _question, IWidget _widget) {
this.mediator = _mediator;
this.question = _question;
this.widget = _widget;
}
public UIQuestion visitBoolType(BoolType _boolType) {
return new UIBoolQuestion(this.mediator, this.question, this.widget);
}
public UIQuestion visitIntType(IntType _intType) {
return new UINumQuestion(this.mediator, this.question, this.widget);
}
public UIQuestion visitStringType(StringType _stringType) {
return new UITextQuestion(this.mediator, this.question, this.widget);
}
public UIQuestion visitUndefinedType(UndefinedType _undefinedType) {
throw new RuntimeException();
}
}