openModeller  Version 1.4.0
TeStringParser.cpp
Go to the documentation of this file.
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 }