package org.vertexium.cypher.ast.model; import org.vertexium.VertexiumException; import java.util.stream.Stream; public class CypherReturnItem extends CypherAstBase { private final CypherAstBase expression; private final String alias; private final String originalText; public CypherReturnItem(String originalText, CypherAstBase expression, String alias) { this.originalText = originalText; if (expression == null && alias == null) { throw new VertexiumException("both expression and alias cannot be null"); } this.expression = expression; this.alias = alias; } public String getOriginalText() { return originalText; } public CypherAstBase getExpression() { return expression; } public String getAlias() { return alias; } public String getResultColumnName() { if (getAlias() != null) { return getAlias(); } return getOriginalText(); } @Override public String toString() { if (getAlias() != null) { return getExpression() + " AS " + getAlias(); } else { return getExpression().toString(); } } @Override public Stream<? extends CypherAstBase> getChildren() { return Stream.of(expression); } }