structureparser.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "structureparser.h"
00019
00020
00021 StructureParser::StructureParser (BugList * Parent)
00022 {
00023 m_pParent = Parent;
00024 }
00025
00026
00027 bool StructureParser::startDocument()
00028 {
00029
00030 m_pParent->pMainBugList->clear ();
00031
00032 return TRUE;
00033 }
00034
00035
00036 bool StructureParser::endDocument()
00037 {
00038 return TRUE;
00039 }
00040
00041
00042 bool StructureParser::startElement (const QString & namespaceURI, const QString & localName, const QString & qName, const QXmlAttributes & atts)
00043 {
00044 QString Tag;
00045
00046
00047 Tag = qName.upper ();
00048
00049
00050 if (Tag == "BUG")
00051 {
00052
00053 CurrentBug = new Bug;
00054 }
00055
00056
00057 if (Tag == "BUGID")
00058 {
00059 State = stateBugID;
00060 }
00061 else if (Tag == "DESCRIPTION")
00062 {
00063 State = stateDescription;
00064 }
00065 else if (Tag == "SEVERITY")
00066 {
00067 State = stateSeverity;
00068 }
00069 else if (Tag == "CLASS")
00070 {
00071 State = stateBugClass;
00072 }
00073 else if (Tag == "LOCATION")
00074 {
00075 State = stateLocation;
00076 }
00077 else if (Tag == "REPORTUSERNAME")
00078 {
00079 State = stateReportUserName;
00080 }
00081 else if (Tag == "REPORTEMAIL")
00082 {
00083 State = stateReportEMail;
00084 }
00085 else if (Tag == "REPORTDATE")
00086 {
00087 State = stateReportDate;
00088 }
00089 else if (Tag == "FIXED")
00090 {
00091 State = stateFixed;
00092 }
00093 else if (Tag == "FIXDATE")
00094 {
00095 State = stateFixDate;
00096 }
00097 else if (Tag == "PACKAGE")
00098 {
00099 State = statePackage;
00100 }
00101 else if (Tag == "VERSIONNO")
00102 {
00103 State = stateVersionNo;
00104 }
00105 else if (Tag == "NOTES")
00106 {
00107 State = stateNotes;
00108 }
00109 else if (Tag == "WORKAROUND")
00110 {
00111 State = stateWorkaround;
00112 }
00113 else if (Tag == "FIXSCHEDULED")
00114 {
00115 State = stateFixScheduled;
00116 }
00117 else if (Tag == "ASSIGNEDTO")
00118 {
00119 State = stateAssignedTo;
00120 }
00121 else if (Tag == "ASSIGNEDDATE")
00122 {
00123 State = stateAssignedDate;
00124 }
00125 else if (Tag == "ASSIGNEDEMAIL")
00126 {
00127 State = stateAssignedEMail;
00128 }
00129 else if (Tag == "REPEAT")
00130 {
00131 State = stateRepeat;
00132 }
00133 else if (Tag == "SYSINFO")
00134 {
00135 State = stateSysInfo;
00136 }
00137 else if (Tag == "PRIORITY")
00138 {
00139 State = statePriority;
00140 }
00141 else if (Tag == "DEVELOPER")
00142 {
00143 State = stateDeveloperID;
00144 }
00145 else if (Tag == "INITIALS")
00146 {
00147 State = stateInitials;
00148 }
00149 else if (Tag == "COUNTER")
00150 {
00151 State = stateCounter;
00152 }
00153 else
00154 {
00155 State = stateUnknown;
00156 }
00157
00158 return TRUE;
00159 }
00160
00161
00162 bool StructureParser::characters ( const QString & ch )
00163 {
00164 switch (State)
00165 {
00166 case stateBugID:
00167 CurrentBug->BugID = ch;
00168 break;
00169
00170 case stateDescription:
00171 CurrentBug->Description = ch;
00172 break;
00173
00174 case stateSeverity:
00175 CurrentBug->Severity = ch;
00176 break;
00177
00178 case stateBugClass:
00179 CurrentBug->BugClass = ch;
00180 break;
00181
00182 case stateLocation:
00183 CurrentBug->Location = ch;
00184 break;
00185
00186 case stateReportUserName:
00187 CurrentBug->ReportUserName = ch;
00188 break;
00189
00190 case stateReportEMail:
00191 CurrentBug->ReportEMail = ch;
00192 break;
00193
00194 case statePackage:
00195 CurrentBug->Package = ch;
00196 break;
00197
00198 case stateVersionNo:
00199 CurrentBug->VersionNo = ch;
00200 break;
00201
00202 case stateNotes:
00203 CurrentBug->Notes = ch;
00204 break;
00205
00206 case stateWorkaround:
00207 CurrentBug->Workaround = ch;
00208 break;
00209
00210 case stateAssignedTo:
00211 CurrentBug->AssignedTo = ch;
00212 break;
00213
00214 case stateAssignedEMail:
00215 CurrentBug->AssignedEMail = ch;
00216 break;
00217
00218 case stateRepeat:
00219 CurrentBug->Repeat = ch;
00220 break;
00221
00222 case stateSysInfo:
00223 CurrentBug->SysInfo = ch;
00224 break;
00225
00226 case statePriority:
00227 CurrentBug->Priority = ch;
00228 break;
00229
00230 case stateDeveloperID:
00231
00232 CurrentInitials = "";
00233 CurrentCount = 1;
00234 break;
00235
00236 case stateInitials:
00237 CurrentInitials = ch;
00238 break;
00239
00240 case stateCounter:
00241 CurrentCount = ch.toInt ();
00242 break;
00243
00244 case stateFixed:
00245 if (ch.toInt () == 0)
00246 CurrentBug->Fixed = FALSE;
00247 else
00248 CurrentBug->Fixed = TRUE;
00249 break;
00250
00251 case stateReportDate:
00252
00253 CurrentBug->ReportDate.setYMD (ch.right (4).toInt (),ch.mid (ch.find ('/') + 1,ch.findRev ('/') - ch.find ('/') - 1).toInt (),ch.left (ch.find ('/')).toInt ());
00254 break;
00255
00256 case stateFixDate:
00257
00258 CurrentBug->FixDate.setYMD (ch.right (4).toInt (),ch.mid (ch.find ('/') + 1,ch.findRev ('/') - ch.find ('/') - 1).toInt (),ch.left (ch.find ('/')).toInt ());
00259 break;
00260
00261 case stateAssignedDate:
00262
00263 CurrentBug->AssignedDate.setYMD (ch.right (4).toInt (),ch.mid (ch.find ('/') + 1,ch.findRev ('/') - ch.find ('/') - 1).toInt (),ch.left (ch.find ('/')).toInt ());
00264 break;
00265
00266 case stateFixScheduled:
00267
00268 CurrentBug->FixScheduled.setYMD (ch.right (4).toInt (),ch.mid (ch.find ('/') + 1,ch.findRev ('/') - ch.find ('/') - 1).toInt (),ch.left (ch.find ('/')).toInt ());
00269 break;
00270
00271 case stateUnknown:
00272
00273 break;
00274 }
00275
00276 return TRUE;
00277 }
00278
00279
00280 bool StructureParser::endElement (const QString & namespaceURI, const QString & localName, const QString & qName)
00281 {
00282 QString Tag;
00283
00284
00285 Tag = qName.upper ();
00286
00287
00288 if (Tag == "BUG")
00289 {
00290 m_pParent->InsertBug (CurrentBug);
00291 }
00292 else if (Tag == "DEVELOPER")
00293 {
00294 AddDeveloper ();
00295 }
00296
00297 return TRUE;
00298 }
00299
00300
00301 void StructureParser::AddDeveloper ()
00302 {
00303 BugCounter * pBugCounter;
00304
00305
00306 pBugCounter = new BugCounter;
00307 pBugCounter->Initials = CurrentInitials;
00308 pBugCounter->LastBugNumber = CurrentCount;
00309 m_pParent->Developers.insert (pBugCounter->Initials, pBugCounter);
00310 }
This file is part of the documentation for KDevelop Version 3.1.2.