package net.sf.jsqlparser.util.deparser;
import net.sf.jsqlparser.expression.ExpressionVisitor;
import net.sf.jsqlparser.statement.drop.Drop;
/**
* A class to de-parse (that is, tranform from JSqlParser hierarchy into a
* string) a {@link net.sf.jsqlparser.statement.delete.Delete}
*/
public class DropDeParser {
protected StringBuilder buffer;
protected ExpressionVisitor expressionVisitor;
public DropDeParser() {
}
/**
* @param aExpressionVisitor a {@link ExpressionVisitor} to de-parse
* expressions. It has to share the same<br>
* StringBuilder (buffer parameter) as this object in order to work
* @param aBuffer the buffer that will be filled with the select
*/
public DropDeParser(ExpressionVisitor aExpressionVisitor, StringBuilder aBuffer) {
buffer = aBuffer;
expressionVisitor = aExpressionVisitor;
}
public StringBuilder getBuffer() {
return buffer;
}
public void setBuffer(StringBuilder aBuffer) {
buffer = aBuffer;
}
public void deParse(Drop aDrop) {
buffer.append(aDrop.getComment() != null ? aDrop.getComment() + " " + ExpressionDeParser.LINE_SEPARATOR : "").append("Drop")
.append(aDrop.getTypeComment() != null ? " " + aDrop.getTypeComment() + ExpressionDeParser.LINE_SEPARATOR : "").append(" ")
.append(aDrop.getType()).append(" ")
.append(aDrop.getNameComment() != null ? " " + aDrop.getNameComment() + ExpressionDeParser.LINE_SEPARATOR : "")
.append(aDrop.getName()).append(" ");
if (aDrop.getParameters() != null && aDrop.getParameters().size() > 0) {
for (int i = 0; i < aDrop.getParameters().size(); i++) {
buffer.append(aDrop.getParameters().get(i)).append(" ");
if (i < aDrop.getParameters().size() - 1) {
buffer.append(!"".equals(aDrop.getParametersComment().get(i)) ? " " + aDrop.getParametersComment().get(i) + ExpressionDeParser.LINE_SEPARATOR : "")
.append(", ");
}
}
}
buffer.append(!"".equals(aDrop.getEndComment()) ? " " + aDrop.getEndComment() : "");
}
public ExpressionVisitor getExpressionVisitor() {
return expressionVisitor;
}
public void setExpressionVisitor(ExpressionVisitor aVisitor) {
expressionVisitor = aVisitor;
}
}