forked from opengaussexamples/examples
97 lines
2.2 KiB
Java
97 lines
2.2 KiB
Java
package Parser.AST.Procedure;
|
|
|
|
import Interface.ColumnType;
|
|
import Lexer.Token;
|
|
import Parser.AST.ASTNode;
|
|
import Parser.AST.CreateTable.CRTEndNode;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
public class ProcedureColumnNode extends ASTNode implements ColumnType {
|
|
private Token name;
|
|
private Token type;
|
|
private List<Token> constraint;
|
|
private List<Token> InOut;
|
|
public ProcedureColumnNode() {
|
|
super();
|
|
setTokens(new ArrayList<>());
|
|
setInOut(new ArrayList<>());
|
|
}
|
|
|
|
public ProcedureColumnNode(ASTNode node)
|
|
{
|
|
super(node);
|
|
}
|
|
|
|
public ProcedureColumnNode(List<Token> tokens)
|
|
{
|
|
super(tokens);
|
|
}
|
|
|
|
@Override
|
|
public void visit(ASTNode node, StringBuilder queryString)
|
|
{
|
|
if (node.hasChild() && (node.getChildren().get(0) instanceof ProcedureColumnNode) )
|
|
queryString.append(toString() + ", ");
|
|
else if (node.hasChild() && !(node.getChildren().get(0) instanceof ProcedureColumnNode))
|
|
queryString.append(toString() + " ");
|
|
for (ASTNode child : getChildren())
|
|
{
|
|
child.visit(child, queryString);
|
|
}
|
|
}
|
|
|
|
public Token getName() {
|
|
return name;
|
|
}
|
|
|
|
public void setName(Token name) {
|
|
this.name = name;
|
|
}
|
|
|
|
@Override
|
|
public Token getType() {
|
|
return type;
|
|
}
|
|
|
|
@Override
|
|
public void setType(Token type) {
|
|
this.type = type;
|
|
}
|
|
|
|
public List<Token> getConstraint() {
|
|
return constraint;
|
|
}
|
|
|
|
public void setConstraint(List<Token> constraint) {
|
|
this.constraint = constraint;
|
|
}
|
|
|
|
public List<Token> getInOut() {
|
|
return InOut;
|
|
}
|
|
|
|
public void setInOut(List<Token> InOut) {
|
|
this.InOut = InOut;
|
|
}
|
|
|
|
public void addInOut(Token InOut) {
|
|
this.InOut.add(InOut);
|
|
}
|
|
|
|
@Override
|
|
public void ResetTokensbyNameTypeConstraint() {
|
|
List <Token> tokens = new ArrayList<>();
|
|
tokens.add(name);
|
|
for (Token token : InOut) {
|
|
tokens.add(token);
|
|
}
|
|
tokens.add(type);
|
|
for (Token token : constraint) {
|
|
tokens.add(token);
|
|
}
|
|
setTokens(tokens);
|
|
}
|
|
}
|