001package gudusoft.gsqlparser.nodes; 002 003import gudusoft.gsqlparser.EDbObjectType; 004 005/** 006 * List of TObjectName 007*/ 008public class TObjectNameList extends TParseTreeNodeList <TObjectName>{ 009 010 public void setObjectType(int objectType) { 011 this.objectType = objectType; 012 } 013 014 /** 015 * 016 * @return type of all objects in this list. if more than one types 017 * saved in this list, then object type is set to ttobjMixed. 018 */ 019 public int getObjectType() { 020 021 return objectType; 022 } 023 024 private int objectType = TObjectName.ttobjUnknown; 025 026 public TObjectNameList() 027 { 028 } 029 030 public void addObjectName(TObjectName objectReference) 031 { 032 if ((this.objectType != TObjectName.ttobjUnknown) 033 // && (this.objectType != TObjectName.ttobjMixed) 034 &&(objectReference.getObjectType() == TObjectName.ttobjUnknown) 035 &&(objectReference.getDbObjectType() == EDbObjectType.unknown) 036 ){ 037 objectReference.setObjectType(this.objectType); 038 } 039 addElement(objectReference); 040 } 041 042 public TObjectName getObjectName(int position) 043 { 044 if (position < size()) 045 { 046 return (TObjectName)elementAt(position); 047 }else{ 048 return null; 049 } 050 } 051 052 void addParseTreeNode(Object arg1){ 053 addObjectName((TObjectName)arg1); 054 } 055 056 public int searchColumnReference(TObjectName cr){ 057 int ret = -1; 058 for (int i=0;i<size();i++){ 059 if (getObjectName(i).toString().compareToIgnoreCase(cr.toString()) == 0){ 060 ret = i; 061 break; 062 } 063 } 064 return ret; 065 } 066 067 public void accept(TParseTreeVisitor v){ 068 v.preVisit(this); 069 v.postVisit(this); 070 } 071// 072// public void acceptChildren(TParseTreeVisitor v){ 073// v.preVisit(this); 074// for(int i=0;i<size();i++){ 075// this.getObjectName(i).acceptChildren(v); 076// } 077// v.postVisit(this); 078// } 079 080 /** 081 * Returns a string representation of all TObjectName elements in this list 082 * separated by commas. 083 * @return a comma-separated string of all elements 084 */ 085// @Override 086// public String toString() { 087// if (size() == 0) { 088// return ""; 089// } 090// 091// StringBuilder sb = new StringBuilder(); 092// for (int i = 0; i < size(); i++) { 093// if (i > 0) { 094// sb.append(", "); 095// } 096// sb.append(getObjectName(i).toString()); 097// } 098// return sb.toString(); 099// } 100}