001package gudusoft.gsqlparser.stmt; 002/* 003 * Date: 13-7-29 004 */ 005 006import gudusoft.gsqlparser.EDbVendor; 007import gudusoft.gsqlparser.ESqlStatementType; 008import gudusoft.gsqlparser.TCustomSqlStatement; 009import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 010import gudusoft.gsqlparser.nodes.TTable; 011import gudusoft.gsqlparser.ELockMode; 012import gudusoft.gsqlparser.nodes.TLockSqlNode; 013 014import java.util.ArrayList; 015 016public class TLockTableStmt extends TCustomSqlStatement { 017 018 private ELockMode lockMode; 019 private TTable talbe; 020 private ArrayList<TTable> tableList = new ArrayList<TTable>(); 021 022 public ArrayList<TTable> getTableList() { 023 return tableList; 024 } 025 026 public TLockTableStmt(EDbVendor dbvendor) { 027 super(dbvendor); 028 sqlstatementtype = ESqlStatementType.sstlocktable; 029 } 030 031 public ELockMode getLockMode() { 032 return lockMode; 033 } 034 035 public TTable getTalbe() { 036 return talbe; 037 } 038 039 public int doParseStatement(TCustomSqlStatement psql) { 040 if (rootNode == null) return -1; 041 super.doParseStatement(psql); 042 043 TLockSqlNode node = (TLockSqlNode)rootNode; 044 lockMode = node.getLockMode(); 045 if (node.getFromTable() != null){ 046 talbe = this.analyzeFromTable(node.getFromTable(),true); 047 tableList.add(talbe); 048 }else if (node.getFromTables() != null){ 049 for (int i = 0; i < node.getFromTables().size(); i++){ 050 tableList.add(this.analyzeFromTable(node.getFromTables().getFromTable(i),true)); 051 } 052 } 053 054 055 return 0; 056 } 057 058 public void accept(TParseTreeVisitor v){ 059 v.preVisit(this); 060 v.postVisit(this); 061 } 062 063 public void acceptChildren(TParseTreeVisitor v){ 064 v.preVisit(this); 065 v.postVisit(this); 066 } 067 068 public void setLockMode(ELockMode lockMode) { 069 this.lockMode = lockMode; 070 } 071 072 public void setTalbe(TTable talbe) { 073 this.talbe = talbe; 074 } 075}