package parser.ast.trigger;
import interfaces.DataType;
import lexer.Token;
import parser.ast.ASTNode;
import java.util.ArrayList;
import java.util.List;
public class TriggerDeclareContentNode extends ASTNode implements DataType {
private Token type;
public TriggerDeclareContentNode() {
super();
setTokens(new ArrayList<>());
setType(new Token(Token.TokenType.NULL, ""));
}
public TriggerDeclareContentNode(ASTNode node) {
super(node);
}
public TriggerDeclareContentNode(List<Token> tokens) {
super(tokens);
}
@Override
public void visit(ASTNode node, StringBuilder queryString) {
queryString.append(toString() + " ");
for (ASTNode child : getChildren()) {
child.visit(child, queryString);
}
}
@Override
public Token getType() {
return type;
}
@Override
public void setType(Token type) {
this.type = type;
}
@Override
public void ResetTokensbyType() {
List<Token> tokens = new ArrayList<>();
for (Token token : getTokens()) {
if (token.hasType(Token.TokenType.KEYWORD) && !token.getValue().equalsIgnoreCase(":=")) {
tokens.add(getType());
}
else {
tokens.add(token);
}
}
setTokens(tokens);
}
}