001package gudusoft.gsqlparser.sqlenv;
002
003
004/**
005 * the base class of all schema objects such as procedure, table, trigger and etc.
006 */
007public abstract class TSQLSchemaObject extends TSQLObject {
008
009    private int priority = 0;
010
011    TSQLSchema schema;
012
013    public TSQLSchema getSchema() {
014        return schema;
015    }
016
017    public String getQualifiedName(){
018        return schema.getQualifiedName()+"."+name;
019    }
020
021    public TSQLSchemaObject(TSQLSchema schema, String objectName, ESQLDataObjectType dataObjectType){
022        super(schema.getSqlEnv(),objectName, dataObjectType);
023        this.schema = schema;
024        schema.addSchemaObject(this);
025    }
026
027    /**
028     * A schema object of {@code schema} that the schema does not hold yet: its creator adds it once it is complete
029     * ({@link TSQLTable#newVersion()}), so no reader of a shared catalog sees it half made.
030     */
031    TSQLSchemaObject(TSQLSchema schema, String objectName, ESQLDataObjectType dataObjectType, boolean unregistered){
032        super(schema.getSqlEnv(),objectName, dataObjectType);
033        this.schema = schema;
034    }
035
036    public TSQLSchemaObject(TSQLSchema schema, String objectName, ESQLDataObjectType dataObjectType, int priority){
037        super(schema.getSqlEnv(),objectName, dataObjectType);
038        this.schema = schema;
039        this.priority = priority;
040        schema.addSchemaObject(this);
041    }
042
043    public int getPriority() {
044        return priority;
045    }
046
047    public void setPriority(int priority) {
048        this.priority = priority;
049    }
050}