openModeller
Version 1.4.0
|
00001 00030 #include <openmodeller/TeStringParser.hh> 00031 00032 bool 00033 TeStringParser::parse() 00034 { 00035 string input = str_; 00036 int i; 00037 00038 // Throw out "terralib:" ************************************************************ 00039 i = input.find( "terralib>" ); 00040 if( i == -1) 00041 return false; 00042 input = input.substr(9, input.length()); 00043 00044 // Not a valid string, maybe a disk file name. 00045 i = input.find( "@" ); 00046 if( i == -1) 00047 { 00048 str_ = input; 00049 return false; 00050 } 00051 00052 // Get user_ ************************************************************************ 00053 i = input.find( ">" ); 00054 // Not a valid String. 00055 if( i == -1) 00056 return false; 00057 user_ = input.substr(0, i); 00058 input = input.substr(user_.length()+1, input.length()); 00059 // Get password_ ************************************************************************ 00060 i = input.find( "@" ); 00061 // Not a valid string. 00062 if( i == -1) 00063 return false; 00064 password_ = input.substr(0, i); 00065 input = input.substr(password_.length()+1, input.length()); 00066 // Get dbms_name_ **************************************************************** 00067 i = input.find( ">" ); 00068 if( i == -1) 00069 return false; 00070 dbms_name_ = input.substr(0, i); 00071 input = input.substr(dbms_name_.length()+1, input.length()); 00072 // Get host_ ************************************************************************ 00073 i = input.find( ">" ); 00074 if( i == -1) 00075 return false; 00076 host_ = input.substr(0, i); 00077 input = input.substr(host_.length()+1, input.length()); 00078 // Get dbms_name_File ************************************************************ 00079 i = input.find( ">" ); 00080 if( i == -1) 00081 return false; 00082 database_ = input.substr(0, i); 00083 input = input.substr(database_.length()+1, input.length()); 00084 // Get port_ ************************************************************************ 00085 i = input.find( ">" ); 00086 if( i == -1) 00087 return false; 00088 string s_port_ = input.substr(0, i); 00089 input = input.substr(s_port_.length()+1, input.length()); 00090 port_ = atoi( s_port_.c_str() ); 00091 // Get layerName_ ******************************************************************* 00092 i = input.find( ">" ); 00093 if( i == -1) 00094 { 00095 layerName_ = input; 00096 if(layerName_.length() == 0) 00097 return false; 00098 else 00099 return true; 00100 } 00101 else 00102 { 00103 layerName_ = input.substr(0, i); 00104 input = input.substr(layerName_.length()+1, input.length()); 00105 } 00106 00107 // Get tableName_ ******************************************************************* 00108 i = input.find( ">" ); 00109 if( i != -1) 00110 { 00111 tableName_ = input.substr(0, i); 00112 input = input.substr(tableName_.length()+1, input.length()); 00113 // Get columnName_ *************************************************************** 00114 columnName_ = input; 00115 } 00116 else 00117 tableName_ = input; 00118 00119 // This is a vaid Url. 00120 return true; 00121 }