package nl.uva.softwcons.qls.ast.segment;
import nl.uva.softwcons.ql.ast.LineInfo;
import nl.uva.softwcons.ql.ast.expression.identifier.Identifier;
import nl.uva.softwcons.qls.ast.widgetstyle.StyledWidget;
public class Question extends PageSegment {
private final Identifier id;
private final StyledWidget widget;
public Question(final Identifier id) {
this.id = id;
this.widget = new StyledWidget();
}
public Question(final Identifier id, final StyledWidget widget) {
this.id = id;
this.widget = widget;
}
public LineInfo getLineInfo() {
return id.getLineInfo();
}
public Identifier getId() {
return id;
}
public StyledWidget getStyledWidget() {
return widget;
}
public boolean hasWidget() {
return this.widget.getWidgetType().isPresent();
}
@Override
public <T> T accept(final SegmentVisitor<T> visitor) {
return visitor.visit(this);
}
public <T, V> T accept(final SegmentValueVisitor<T, V> visitor, final V value) {
return visitor.visit(this, value);
}
}