001package gudusoft.gsqlparser.nodes;
002
003import gudusoft.gsqlparser.TBaseType;
004import gudusoft.gsqlparser.TSourceToken;
005
006/**
007* Use this clause to define a single trigger on a DDL or database event.
008*/
009public class TNonDmlTriggerClause extends TTriggeringClause {
010
011
012
013    private boolean isSchema = false;
014
015    /**
016     * Specify DATABASE to define the trigger on the entire database.
017     * The trigger fires whenever any database user initiates the triggering event.
018     * @return
019     */
020    public boolean isDatabase() {
021        return isDatabase;
022    }
023
024    public void setDatabase(boolean database) {
025        isDatabase = database;
026    }
027
028    public void setSchema(boolean schema) {
029        isSchema = schema;
030    }
031
032    /**
033     * Specify SCHEMA to define the trigger on the current schema.
034     * The trigger fires whenever any user connected as schema initiates the triggering event.
035     * @return
036     */
037    public boolean isSchema() {
038        return isSchema;
039    }
040
041    private boolean isDatabase = false;
042
043    private boolean isServer = false;
044
045    public void setServer(boolean server) {
046        isServer = server;
047    }
048
049    public boolean isServer() {
050        return isServer;
051    }
052
053    private TObjectName schemaName;
054
055    /**
056     * It's optional, only valid when {@link #isSchema()} is true.
057     * @return
058     */
059    public TObjectName getSchemaName() {
060        return schemaName;
061    }
062
063    private TSourceToken before_after = null;
064
065    private int fireMode = TBaseType.fireMode_after;
066
067    /**
068     * When or how this trigger was fired.
069     * @return
070     * <p>{@link TBaseType#fireMode_before}
071     * <p>{@link TBaseType#fireMode_after}
072     */
073    public int getFireMode() {
074        return fireMode;
075    }
076
077    private TDummyList ddl_event_list;
078    private TDummyList database_event_list;
079
080    public void setDatabase_event_list(TDummyList database_event_list) {
081        this.database_event_list = database_event_list;
082    }
083
084    public void setDdl_event_list(TDummyList ddl_event_list) {
085        this.ddl_event_list = ddl_event_list;
086    }
087
088    public TDummyList getDatabase_event_list() {
089
090        return database_event_list;
091    }
092
093    public TDummyList getDdl_event_list() {
094        return ddl_event_list;
095    }
096
097    public void setFireMode(int fireMode) {
098        this.fireMode = fireMode;
099    }
100
101    public void setSchemaName(TObjectName schemaName) {
102        this.schemaName = schemaName;
103    }
104
105
106    public void accept(TParseTreeVisitor v){
107        v.preVisit(this);
108        v.postVisit(this);
109    }
110
111    public void acceptChildren(TParseTreeVisitor v){
112        v.preVisit(this);
113        v.postVisit(this);
114    }
115}