Top.java
/*-
* #%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.parser.ASTNodeAccessImpl;
import java.io.Serializable;
public class Top extends ASTNodeAccessImpl implements Serializable {
private boolean hasParenthesis = false;
private boolean isPercentage = false;
private boolean isWithTies = false;
private Expression expression;
public Expression getExpression() {
return expression;
}
public void setExpression(Expression expression) {
this.expression = expression;
}
public boolean hasParenthesis() {
return hasParenthesis;
}
public void setParenthesis(boolean hasParenthesis) {
this.hasParenthesis = hasParenthesis;
}
public boolean isPercentage() {
return isPercentage;
}
public void setPercentage(boolean percentage) {
this.isPercentage = percentage;
}
public boolean isWithTies() {
return isWithTies;
}
public void setWithTies(boolean withTies) {
this.isWithTies = withTies;
}
@Override
public String toString() {
String result = "TOP ";
if (hasParenthesis) {
result += "(";
}
result += expression.toString();
if (hasParenthesis) {
result += ")";
}
if (isPercentage) {
result += " PERCENT";
}
if (isWithTies) {
result += " WITH TIES";
}
return result;
}
public Top withExpression(Expression expression) {
this.setExpression(expression);
return this;
}
public <E extends Expression> E getExpression(Class<E> type) {
return type.cast(getExpression());
}
}