package edu.parser.QL;
import edu.nodes.QuestionType;
import edu.parser.QL.nodes.AbstractNode;
import edu.parser.QL.nodes.question.Label;
import edu.parser.QL.nodes.question.Question;
import edu.parser.QL.nodes.statement.Statement;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* Created by Steven Kok on 23/02/2015.
*/
public abstract class QLVisitorImpl implements QLVisitor {
public List<Statement> visitStatements(List<Statement> statements) {
if (statements != null && !statements.isEmpty()) {
return statements.stream()
.map(statement -> (Statement) statement.accept(this))
.collect(Collectors.toList());
}
return Collections.emptyList();
}
@Override
public AbstractNode visit(QuestionType questionType) {
return questionType;
}
@Override
public AbstractNode visit(Label label) {
return label;
}
@Override
public AbstractNode visit(Question question) {
return question;
}
@Override
public AbstractNode visit(Statement statement) {
return statement;
}
}