001package gudusoft.gsqlparser.dlineage.statistics; 002 003import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 004import gudusoft.gsqlparser.stmt.TSelectSqlStatement; 005 006/** 007 * 子查询深度访问者 008 */ 009public class SubqueryDepthVisitor extends TParseTreeVisitor { 010 private int maxDepth = 0; 011 private int currentDepth = 0; 012 013 @Override 014 public void preVisit(TSelectSqlStatement node) { 015 currentDepth++; 016 if (currentDepth > maxDepth) { 017 maxDepth = currentDepth; 018 } 019 } 020 021 @Override 022 public void postVisit(TSelectSqlStatement node) { 023 currentDepth--; 024 } 025 026 public int getMaxDepth() { 027 return maxDepth; 028 } 029 030 public void reset() { 031 maxDepth = 0; 032 currentDepth = 0; 033 } 034}