net.sf.jsqlparser.statement.select.AllColumns Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jsqlparser Show documentation
Show all versions of jsqlparser Show documentation
JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes.
The generated hierarchy can be navigated using the Visitor Pattern.
The newest version!
/*-
* #%L
* JSQLParser library
* %%
* Copyright (C) 2004 - 2019 JSQLParser
* %%
* Dual licensed under GNU LGPL 2.1 or Apache License 2.0
* #L%
*/
package net.sf.jsqlparser.statement.select;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.ExpressionVisitor;
import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
import net.sf.jsqlparser.parser.ASTNodeAccessImpl;
import net.sf.jsqlparser.schema.Column;
import java.util.ArrayList;
import java.util.List;
public class AllColumns extends ASTNodeAccessImpl implements Expression {
protected ExpressionList exceptColumns;
protected List> replaceExpressions;
private String exceptKeyword;
public AllColumns(ExpressionList exceptColumns,
List> replaceExpressions) {
this.exceptColumns = exceptColumns;
this.replaceExpressions = replaceExpressions;
this.exceptKeyword = exceptColumns != null ? "Except" : null;
}
public AllColumns(ExpressionList exceptColumns,
List> replaceExpressions, String exceptKeyword) {
this.exceptColumns = exceptColumns;
this.replaceExpressions = replaceExpressions;
this.exceptKeyword = exceptKeyword;
}
public AllColumns() {
this(null, null);
}
public ExpressionList getExceptColumns() {
return exceptColumns;
}
public AllColumns setExceptColumns(ExpressionList exceptColumns) {
this.exceptColumns = exceptColumns;
return this;
}
public ExpressionList addExceptColumn(Column column) {
if (exceptColumns == null) {
exceptColumns = new ExpressionList<>();
}
exceptColumns.add(column);
return exceptColumns;
}
public List> getReplaceExpressions() {
return replaceExpressions;
}
public AllColumns setReplaceExpressions(List> replaceExpressions) {
this.replaceExpressions = replaceExpressions;
return this;
}
public List> addReplaceExpression(SelectItem> selectItem) {
if (replaceExpressions == null) {
replaceExpressions = new ArrayList<>();
}
replaceExpressions.add(selectItem);
return replaceExpressions;
}
public String getExceptKeyword() {
return exceptKeyword;
}
public AllColumns setExceptKeyword(String exceptKeyword) {
this.exceptKeyword = exceptKeyword;
return this;
}
public StringBuilder appendTo(StringBuilder builder) {
builder.append("*");
if (exceptColumns != null && !exceptColumns.isEmpty()) {
builder.append(" ").append(exceptKeyword).append("( ");
exceptColumns.appendTo(builder);
builder.append(" )");
}
if (replaceExpressions != null && !replaceExpressions.isEmpty()) {
builder.append(" REPLACE( ");
builder.append(Select.getStringList(replaceExpressions));
builder.append(" )");
}
return builder;
}
@Override
public String toString() {
return appendTo(new StringBuilder()).toString();
}
@Override
public T accept(ExpressionVisitor expressionVisitor, S context) {
return expressionVisitor.visit(this, context);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy