////////////////////////////////////////////////////////////////// // RaidDataStructs.h: interface for the CRaidDataStructs class. // ////////////////////////////////////////////////////////////////// #if !defined(AFX_RAIDDATASTRUCTS_H__5FD93F0B_81D9_11D2_8162_00C04F68FDA4__INCLUDED_) #define AFX_RAIDDATASTRUCTS_H__5FD93F0B_81D9_11D2_8162_00C04F68FDA4__INCLUDED_ #include "XMLBase.h" #include "XmlTagInformation.h" #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 ////////////////////////////////////////////////////////////////// const LPCTSTR STR_RAID_BUGREPORT = _T("BUGREPORT"); const LPCTSTR STR_RAIDFILE_BUG_STATUS = _T("BUG_STATUS"); const LPCTSTR STR_RAIDFILE_ACCESSIBILITY = _T("Accessibility"); const LPCTSTR STR_RAIDFILE_ASSIGNEDTO = _T("AssignedTo"); const LPCTSTR STR_RAIDFILE_BY = _T("BY"); const LPCTSTR STR_RAIDFILE_ISSUETYPE = _T("IssueType"); const LPCTSTR STR_RAIDFILE_SEVERITY = _T("Severity"); const LPCTSTR STR_RAIDFILE_BUG_OPENED = _T("BUG_OPENED"); const LPCTSTR STR_RAIDFILE_OPENEDBY = _T("OpenedBy"); const LPCTSTR STR_RAIDFILE_SOURCE = _T("Source"); const LPCTSTR STR_RAIDFILE_BETAID = _T("BetaID"); const LPCTSTR STR_RAIDFILE_REVISION = _T("FixedRev"); const LPCTSTR STR_RAIDFILE_SOURCEID = _T("SourceID"); const LPCTSTR STR_RAIDFILE_HOWFOUND = _T("HowFound"); const LPCTSTR STR_RAIDFILE_LANGUAGE = _T("Lang"); const LPCTSTR STR_RAIDFILE_BUG_DESCRIPTION = _T("BUG_DESCRIPTION"); const LPCTSTR STR_RAIDFILE_DESCRIPTION = _T("Description"); const LPCTSTR STR_RAIDFILE_BUG_GENERAL = _T("BUG_GENERAL"); const LPCTSTR STR_RAIDFILE_TITLE = _T("Title "); const LPCTSTR STR_RAIDFILE_ENVIRONMENT = _T("Environment"); const LPCTSTR STR_RAIDFILE_ACTION = _T("Action"); const LPCTSTR STR_RAIDFILE_ACTION_ADD = _T("Add"); const LPCTSTR STR_RAIDFILE_ACTION_CHANGE = _T("Change"); const LPCTSTR STR_RAIDFILE_ACTION_ATTACH = _T("Attach"); ////////////////////////////////////////////////////////////////// typedef class CRaidFileFields { public: static LPCTSTR GetBugReportFileField() { return STR_RAID_BUGREPORT ; } static LPCTSTR GetBugStatusFileField() { return STR_RAIDFILE_BUG_STATUS ; } static LPCTSTR GetAccessibilityFileField() { return STR_RAIDFILE_ACCESSIBILITY ; } static LPCTSTR GetAssignedtoFileField() { return STR_RAIDFILE_ASSIGNEDTO ; } static LPCTSTR GetByFileField() { return STR_RAIDFILE_BY ; } static LPCTSTR GetIssuetypeFileField() { return STR_RAIDFILE_ISSUETYPE ; } static LPCTSTR GetSeverityFileField() { return STR_RAIDFILE_SEVERITY ; } static LPCTSTR GetBugOpenedFileField() { return STR_RAIDFILE_BUG_OPENED ; } static LPCTSTR GetOpenedbyFileField() { return STR_RAIDFILE_OPENEDBY ; } static LPCTSTR GetSourceFileField() { return STR_RAIDFILE_SOURCE ; } static LPCTSTR GetBetaidFileField() { return STR_RAIDFILE_BETAID ; } static LPCTSTR GetRevisionFileField() { return STR_RAIDFILE_REVISION ; } static LPCTSTR GetSourceIDFileField() { return STR_RAIDFILE_SOURCEID ; } static LPCTSTR GetHowfoundFileField() { return STR_RAIDFILE_HOWFOUND ; } static LPCTSTR GetLanguageFileField() { return STR_RAIDFILE_LANGUAGE ; } static LPCTSTR GetBugDescriptionFileField() { return STR_RAIDFILE_BUG_DESCRIPTION; } static LPCTSTR GetDescriptionFileField() { return STR_RAIDFILE_DESCRIPTION ; } static LPCTSTR GetBugGeneralFileField() { return STR_RAIDFILE_BUG_GENERAL ; } static LPCTSTR GetTitleFileField() { return STR_RAIDFILE_TITLE ; } static LPCTSTR GetEnvironmentFileField() { return STR_RAIDFILE_ENVIRONMENT ; } static LPCTSTR GetActionFileField() { return STR_RAIDFILE_ACTION ; } static LPCTSTR GetAddFileField() { return STR_RAIDFILE_ACTION_ADD ; } static LPCTSTR GetChangeFileField() { return STR_RAIDFILE_ACTION_CHANGE; } static LPCTSTR GetAttachFileField() { return STR_RAIDFILE_ACTION_ATTACH; } } CRAIDFILEFIELDS, FAR* LPCRAIDFILEFIELDS; typedef CRAIDFILEFIELDS RFF; ////////////////////////////////////////////////////////////////// const LPCTSTR STR_RAIDTAG_BUGREPORT = _T("BUGREPORT"); const LPCTSTR STR_RAIDTAG_BUG_STATUS = _T("BUG_STATUS"); const LPCTSTR STR_RAIDTAG_ACCESSIBILITY = _T("ACCESSIBILITY"); const LPCTSTR STR_RAIDTAG_ASSIGNEDTO = _T("ASSIGNEDTO"); const LPCTSTR STR_RAIDTAG_BY = _T("BY"); const LPCTSTR STR_RAIDTAG_ISSUETYPE = _T("ISSUETYPE"); const LPCTSTR STR_RAIDTAG_SEVERITY = _T("SEVERITY"); const LPCTSTR STR_RAIDTAG_BUG_OPENED = _T("BUG_OPENED"); const LPCTSTR STR_RAIDTAG_OPENEDBY = _T("OPENEDBY"); const LPCTSTR STR_RAIDTAG_SOURCE = _T("SOURCE"); const LPCTSTR STR_RAIDTAG_BETAID = _T("BETAID"); const LPCTSTR STR_RAIDTAG_REVISION = _T("REVISION"); const LPCTSTR STR_RAIDTAG_SOURCEID = _T("SOURCEID"); const LPCTSTR STR_RAIDTAG_HOWFOUND = _T("HOWFOUND"); const LPCTSTR STR_RAIDTAG_LANGUAGE = _T("LANGUAGE"); const LPCTSTR STR_RAIDTAG_BUG_DESCRIPTION = _T("BUG_DESCRIPTION"); const LPCTSTR STR_RAIDTAG_DESCRIPTION = _T("DESCRIPTION"); const LPCTSTR STR_RAIDTAG_BUG_GENERAL = _T("BUG_GENERAL"); const LPCTSTR STR_RAIDTAG_TITLE = _T("TITLE "); const LPCTSTR STR_RAIDTAG_ENVIRONMENT = _T("ENVIRONMENT"); const LPCTSTR STR_RAIDTAG_FILENAME = _T("FILENAME"); ////////////////////////////////////////////////////////////////// typedef class CRaidXMLTags { public: static LPCTSTR GetBugReportXMLTag() { return STR_RAIDTAG_BUGREPORT ; } static LPCTSTR GetBugStatusXMLTag() { return STR_RAIDTAG_BUG_STATUS ; } static LPCTSTR GetAccessibilityXMLTag() { return STR_RAIDTAG_ACCESSIBILITY; } static LPCTSTR GetAssignedtoXMLTag() { return STR_RAIDTAG_ASSIGNEDTO ; } static LPCTSTR GetByXMLTag() { return STR_RAIDTAG_BY ; } static LPCTSTR GetIssuetypeXMLTag() { return STR_RAIDTAG_ISSUETYPE ; } static LPCTSTR GetSeverityXMLTag() { return STR_RAIDTAG_SEVERITY ; } static LPCTSTR GetBugOpenedXMLTag() { return STR_RAIDTAG_BUG_OPENED ; } static LPCTSTR GetOpenedbyXMLTag() { return STR_RAIDTAG_OPENEDBY ; } static LPCTSTR GetSourceXMLTag() { return STR_RAIDTAG_SOURCE ; } static LPCTSTR GetBetaidXMLTag() { return STR_RAIDTAG_BETAID ; } static LPCTSTR GetRevisionXMLTag() { return STR_RAIDTAG_REVISION ; } static LPCTSTR GetSourceIDXMLTag() { return STR_RAIDTAG_SOURCEID ; } static LPCTSTR GetHowfoundXMLTag() { return STR_RAIDTAG_HOWFOUND ; } static LPCTSTR GetLanguageXMLTag() { return STR_RAIDTAG_LANGUAGE ; } static LPCTSTR GetBugDescriptionXMLTag() { return STR_RAIDTAG_BUG_DESCRIPTION; } static LPCTSTR GetDescriptionXMLTag() { return STR_RAIDTAG_DESCRIPTION ; } static LPCTSTR GetBugGeneralXMLTag() { return STR_RAIDTAG_BUG_GENERAL; } static LPCTSTR GetTitleXMLTag() { return STR_RAIDTAG_TITLE ; } static LPCTSTR GetEnvironmentXMLTag() { return STR_RAIDTAG_ENVIRONMENT; } static LPCTSTR GetFilenameXMLTag() { return STR_RAIDTAG_FILENAME ; } } CRAIDXMLTAGS, FAR* LPCRAIDXMLTAGS; typedef CRAIDXMLTAGS BXT; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CRaidFileBase { public: // INLINE CRaidFileBase() { } // INLINE virtual ~CRaidFileBase() { } CLString GetLine(CLString strFieldName, CLString strValue) { CLString strLine; ASSERT(!strFieldName.IsEmpty()); if(!strFieldName.IsEmpty() && !strValue.IsEmpty()) { strLine.Format(_T("%s=%s\n"), strFieldName, strValue); } return strLine; } CLString GetQuotedLine(CLString strFieldName, CLString strValue) { CLString strLine; ASSERT(!strFieldName.IsEmpty()); if(!strFieldName.IsEmpty() && !strValue.IsEmpty()) { strLine.Format(_T("%s='%s'\n"), strFieldName, strValue); } return strLine; } public: } CRAIDFILEBASE, FAR* LPCRAIDFILEBASE; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CRaidReportBase { public: ////////////////////////////////////////////// //Inline CRaidReportBase() : m_bInitialized(false), m_bEnabled(true) { } ////////////////////////////////////////////// //Inline virtual ~CRaidReportBase() { } ////////////////////////////////////////////// //Inline bool IsInitialized() { return m_bInitialized; } ////////////////////////////////////////////// //Inline void SetInitialized(bool bInitialized) { m_bInitialized = bInitialized; } ////////////////////////////////////////////// // Pure virtual function. virtual CLString& GetDataString() = 0; ////////////////////////////////////////////// // Pure virtual function. virtual CLString& GetFileString() = 0; ////////////////////////////////////////////// // data members public: CLString m_strData; bool m_bInitialized; bool m_bEnabled; } CRAIDREPORTBASE, FAR* LPCRAIDREPORTBASE; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CRaidReportStatus : public CRaidReportBase { public: ////////////////////////////////////////////// //Inline CRaidReportStatus() { } ////////////////////////////////////////////// //Inline virtual ~CRaidReportStatus() { } ////////////////////////////////////////////// //Inline virtual void Clone(CRaidReportStatus& refLeftValue) { refLeftValue.m_strAccessibility = m_strAccessibility; refLeftValue.m_strAssignedTo = m_strAssignedTo ; refLeftValue.m_strBy = m_strBy ; refLeftValue.m_strIssueType = m_strIssueType ; refLeftValue.m_strSeverity = m_strSeverity ; refLeftValue.m_strData = m_strData; } ////////////////////////////////////////////// // data members public: CLString m_strAccessibility; CLString m_strAssignedTo; CLString m_strBy; CLString m_strIssueType; CLString m_strSeverity; } CRAIDREPORTSTATUS, FAR* LPCRAIDREPORTSTATUS; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CRaidReportOpened : public CRaidReportBase { public: ////////////////////////////////////////////// //Inline CRaidReportOpened() { } ////////////////////////////////////////////// //Inline virtual ~CRaidReportOpened() { } ////////////////////////////////////////////// //Inline virtual void Clone(CRaidReportOpened& refLeftValue) { refLeftValue.m_strOpenedBy = m_strOpenedBy; refLeftValue.m_strSource = m_strSource ; refLeftValue.m_strBetaID = m_strBetaID ; refLeftValue.m_strRevision = m_strRevision; refLeftValue.m_strSourceID = m_strSourceID; refLeftValue.m_strHowFound = m_strHowFound; refLeftValue.m_strLanguage = m_strLanguage; refLeftValue.m_strData = m_strData; } ////////////////////////////////////////////// // data members public: CLString m_strOpenedBy; CLString m_strSource; CLString m_strBetaID; CLString m_strRevision; CLString m_strSourceID; CLString m_strHowFound; CLString m_strLanguage; } CRAIDREPORTOPENED, FAR* LPCRAIDREPORTOPENED; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CRaidReportDescription : public CRaidReportBase { public: ////////////////////////////////////////////// //Inline CRaidReportDescription() { } ////////////////////////////////////////////// //Inline virtual ~CRaidReportDescription() { } ////////////////////////////////////////////// //Inline virtual void Clone(CRaidReportDescription& refLeftValue) { refLeftValue.m_strDescription = m_strDescription; refLeftValue.m_strData = m_strData; } ////////////////////////////////////////////// // data members public: CLString m_strDescription; } CRAIDREPORTDESCRIPTION, FAR* LPCRAIDREPORTDESCRIPTION; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CRaidReportGeneral : public CRaidReportBase { public: ////////////////////////////////////////////// //Inline CRaidReportGeneral() { } ////////////////////////////////////////////// //Inline virtual ~CRaidReportGeneral() { } ////////////////////////////////////////////// //Inline virtual void Clone(CRaidReportGeneral& refLeftValue) { refLeftValue.m_strTitle = m_strTitle ; refLeftValue.m_strEnvironment = m_strEnvironment; refLeftValue.m_strBugReportFileName = m_strEnvironment; refLeftValue.m_strData = m_strData; } ////////////////////////////////////////////// // data members public: CLString m_strTitle; CLString m_strEnvironment; CLString m_strBugReportFileName; } CRAIDREPORTGENERAL, FAR* LPCRAIDREPORTGENERAL; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CRaidReportData : public CRaidReportBase { public: ////////////////////////////////////////////// //Inline CRaidReportData() { } ////////////////////////////////////////////// //Inline virtual ~CRaidReportData() { } ////////////////////////////////////////////// //Inline virtual void Clone(CRaidReportData& refLeftValue) { GetRaidReportGeneralPtr()->Clone(refLeftValue.GetRaidReportGeneral() ); GetRaidReportDescriptionPtr()->Clone(refLeftValue.GetRaidReportDescription()); GetRaidReportOpenedPtr()->Clone(refLeftValue.GetRaidReportOpened() ); GetRaidReportStatusPtr()->Clone(refLeftValue.GetRaidReportStatus() ); } // Get Get routines. CRaidReportGeneral & GetRaidReportGeneral() { return *m_pRaidReportGeneral; } CRaidReportDescription& GetRaidReportDescription() { return *m_pRaidReportDescription; } CRaidReportOpened & GetRaidReportOpened() { return *m_pRaidReportOpened; } CRaidReportStatus & GetRaidReportStatus() { return *m_pRaidReportStatus; } CRaidReportGeneral * GetRaidReportGeneralPtr() { return m_pRaidReportGeneral; } CRaidReportDescription* GetRaidReportDescriptionPtr() { return m_pRaidReportDescription; } CRaidReportOpened * GetRaidReportOpenedPtr() { return m_pRaidReportOpened; } CRaidReportStatus * GetRaidReportStatusPtr() { return m_pRaidReportStatus; } ////////////////////////////////////////////// // data members public: CRaidReportGeneral* m_pRaidReportGeneral; CRaidReportDescription* m_pRaidReportDescription; CRaidReportOpened* m_pRaidReportOpened; CRaidReportStatus* m_pRaidReportStatus; } CRAIDREPORTDATA, FAR* LPCRAIDREPORTDATA; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CXMLRaidReportStatus : public CRaidReportStatus, public CXMLBase { public: ////////////////////////////////////////////// //Inline CXMLRaidReportStatus() : m_XMLTagInformation(BXT::GetBugStatusXMLTag(), _T("\t\t")) { } ////////////////////////////////////////////// //Inline virtual ~CXMLRaidReportStatus() { } // Override the base class definition IXMLDOMNodePtr CreateXMLNode(const _bstr_t bstrNewTag, _variant_t& var, IXMLDOMNodePtr spXDNParent) { UNREFERENCED_PARAMETER(bstrNewTag); UNREFERENCED_PARAMETER(var); UNREFERENCED_PARAMETER(spXDNParent); ASSERT(FALSE); return NULL; } ////////////////////////////////////////////// // virtual function. virtual CLString& GetDataString() { CLString strTabs = _T("\t\t\t"); CXMLTagInformation XMLTagInfo(BXT::GetAccessibilityXMLTag(), strTabs); CLString strTmp = XMLTagInfo.GetXMLString(m_strAccessibility); strTmp += XMLTagInfo.GetXMLString(BXT::GetAssignedtoXMLTag() , m_strAssignedTo , true); strTmp += XMLTagInfo.GetXMLString(BXT::GetByXMLTag() , m_strBy , true); strTmp += XMLTagInfo.GetXMLString(BXT::GetIssuetypeXMLTag() , m_strIssueType , true); strTmp += XMLTagInfo.GetXMLString(BXT::GetSeverityXMLTag() , m_strSeverity , true); m_strData = m_XMLTagInformation.GetTabbedStartTag(); m_strData += strTmp; m_strData += m_XMLTagInformation.GetTabbedEndTag(); return m_strData; } ////////////////////////////////////////////// // virtual function. virtual CLString& GetFileString() { CRaidFileBase raidFileBase; m_strData = raidFileBase.GetLine(RFF::GetAccessibilityFileField(), m_strAccessibility); m_strData += raidFileBase.GetLine(RFF::GetAssignedtoFileField() , m_strAssignedTo ); m_strData += raidFileBase.GetLine(RFF::GetByFileField() , m_strBy ); m_strData += raidFileBase.GetLine(RFF::GetIssuetypeFileField() , m_strIssueType ); m_strData += raidFileBase.GetLine(RFF::GetSeverityFileField() , m_strSeverity ); return m_strData; } ////////////////////////////////////////////// // Inline virtual bool ExtractXMLContents(IXMLDOMNodePtr spParentXDN) { _bstr_t bstrTag = BXT::GetBugStatusXMLTag(); IXMLDOMNodePtr spXDNChild = spParentXDN->selectSingleNode(bstrTag); if(spXDNChild) { GetTagText(m_strAccessibility,BXT::GetAccessibilityXMLTag(), spXDNChild); GetTagText(m_strAssignedTo ,BXT::GetAssignedtoXMLTag() , spXDNChild); GetTagText(m_strBy ,BXT::GetByXMLTag() , spXDNChild); GetTagText(m_strIssueType ,BXT::GetIssuetypeXMLTag() , spXDNChild); GetTagText(m_strSeverity ,BXT::GetSeverityXMLTag() , spXDNChild); } return true; } ////////////////////////////////////////////// // data members public: CXMLTagInformation m_XMLTagInformation; } CXMLRAIDREPORTSTATUS, FAR* LPCXMLRAIDREPORTSTATUS; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CXMLRaidReportOpened : public CRaidReportOpened, public CXMLBase { public: ////////////////////////////////////////////// //Inline CXMLRaidReportOpened() : m_XMLTagInformation(BXT::GetBugOpenedXMLTag(), _T("\t\t")) { } ////////////////////////////////////////////// //Inline virtual ~CXMLRaidReportOpened() { } // Override the base class definition IXMLDOMNodePtr CreateXMLNode(const _bstr_t bstrNewTag, _variant_t& var, IXMLDOMNodePtr spXDNParent) { UNREFERENCED_PARAMETER(bstrNewTag); UNREFERENCED_PARAMETER(var); UNREFERENCED_PARAMETER(spXDNParent); ASSERT(FALSE); return NULL; } ////////////////////////////////////////////// // virtual function. virtual CLString& GetDataString() { CLString strTabs = _T("\t\t\t"); CXMLTagInformation XMLTagInfo(BXT::GetOpenedbyXMLTag(), strTabs); CLString strTmp = XMLTagInfo.GetXMLString(m_strOpenedBy); strTmp += XMLTagInfo.GetXMLString(BXT::GetSourceXMLTag() , m_strSource , true); strTmp += XMLTagInfo.GetXMLString(BXT::GetBetaidXMLTag() , m_strBetaID , true); strTmp += XMLTagInfo.GetXMLString(BXT::GetRevisionXMLTag(), m_strRevision , true); strTmp += XMLTagInfo.GetXMLString(BXT::GetSourceIDXMLTag(), m_strSourceID , true); strTmp += XMLTagInfo.GetXMLString(BXT::GetHowfoundXMLTag(), m_strHowFound , true); strTmp += XMLTagInfo.GetXMLString(BXT::GetLanguageXMLTag(), m_strLanguage , true); m_strData = m_XMLTagInformation.GetTabbedStartTag(); m_strData += strTmp; m_strData += m_XMLTagInformation.GetTabbedEndTag(); return m_strData; } ////////////////////////////////////////////// // virtual function. virtual CLString& GetFileString() { CRaidFileBase raidFileBase; m_strData = raidFileBase.GetLine(RFF::GetOpenedbyFileField() , m_strOpenedBy); m_strData += raidFileBase.GetLine(RFF::GetSourceFileField() , m_strSource ); m_strData += raidFileBase.GetLine(RFF::GetBetaidFileField() , m_strBetaID ); m_strData += raidFileBase.GetLine(RFF::GetRevisionFileField() , m_strRevision); m_strData += raidFileBase.GetLine(RFF::GetSourceIDFileField() , m_strSourceID); m_strData += raidFileBase.GetLine(RFF::GetHowfoundFileField() , m_strHowFound); m_strData += raidFileBase.GetLine(RFF::GetLanguageFileField() , m_strLanguage); return m_strData; } ////////////////////////////////////////////// // Inline virtual bool ExtractXMLContents(IXMLDOMNodePtr spParentXDN) { _bstr_t bstrTag = BXT::GetBugOpenedXMLTag(); IXMLDOMNodePtr spXDNChild = spParentXDN->selectSingleNode(bstrTag); if(spXDNChild) { GetTagText(m_strOpenedBy,BXT::GetOpenedbyXMLTag() , spXDNChild); GetTagText(m_strSource ,BXT::GetSourceXMLTag() , spXDNChild); GetTagText(m_strBetaID ,BXT::GetBetaidXMLTag() , spXDNChild); GetTagText(m_strRevision,BXT::GetRevisionXMLTag() , spXDNChild); GetTagText(m_strSourceID,BXT::GetSourceIDXMLTag() , spXDNChild); GetTagText(m_strHowFound,BXT::GetHowfoundXMLTag() , spXDNChild); GetTagText(m_strLanguage,BXT::GetLanguageXMLTag() , spXDNChild); } return true; } ////////////////////////////////////////////// // data members public: CXMLTagInformation m_XMLTagInformation; } CXMLRAIDREPORTOPENED, FAR* LPCXMLRAIDREPORTOPENED; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CXMLRaidReportDescription : public CRaidReportDescription, public CXMLBase { public: ////////////////////////////////////////////// //Inline CXMLRaidReportDescription() : m_XMLTagInformation(BXT::GetBugDescriptionXMLTag(), _T("\t\t")) { } ////////////////////////////////////////////// //Inline virtual ~CXMLRaidReportDescription() { } // Override the base class definition IXMLDOMNodePtr CreateXMLNode(const _bstr_t bstrNewTag, _variant_t& var, IXMLDOMNodePtr spXDNParent) { UNREFERENCED_PARAMETER(bstrNewTag); UNREFERENCED_PARAMETER(var); UNREFERENCED_PARAMETER(spXDNParent); ASSERT(FALSE); return NULL; } ////////////////////////////////////////////// // virtual function. virtual CLString& GetDataString() { CLString strTabs = _T("\t\t\t"); CXMLTagInformation XMLTagInfo(BXT::GetDescriptionXMLTag(), strTabs); CLString strTmp = XMLTagInfo.GetXMLString(m_strDescription); m_strData = m_XMLTagInformation.GetTabbedStartTag(); m_strData += strTmp; m_strData += m_XMLTagInformation.GetTabbedEndTag(); return m_strData; } ////////////////////////////////////////////// // virtual function. virtual CLString& GetFileString() { CRaidFileBase raidFileBase; m_strData = raidFileBase.GetQuotedLine(RFF::GetDescriptionFileField() , m_strDescription); return m_strData; } ////////////////////////////////////////////// // Inline virtual bool ExtractXMLContents(IXMLDOMNodePtr spParentXDN) { _bstr_t bstrTag = BXT::GetBugDescriptionXMLTag(); IXMLDOMNodePtr spXDNChild = spParentXDN->selectSingleNode(bstrTag); if(spXDNChild) { GetTagText(m_strDescription, BXT::GetDescriptionXMLTag(), spXDNChild); } return true; } ////////////////////////////////////////////// // data members public: CXMLTagInformation m_XMLTagInformation; } CXMLRAIDREPORTDESCRIPTION, FAR* LPCXMLRAIDREPORTDESCRIPTION; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CXMLRaidReportGeneral : public CRaidReportGeneral, public CXMLBase { public: ////////////////////////////////////////////// //Inline CXMLRaidReportGeneral() : m_XMLTagInformation(BXT::GetBugGeneralXMLTag(), _T("\t\t")) { } ////////////////////////////////////////////// //Inline virtual ~CXMLRaidReportGeneral() { } // Override the base class definition IXMLDOMNodePtr CreateXMLNode(const _bstr_t bstrNewTag, _variant_t& var, IXMLDOMNodePtr spXDNParent) { UNREFERENCED_PARAMETER(bstrNewTag); UNREFERENCED_PARAMETER(var); UNREFERENCED_PARAMETER(spXDNParent); ASSERT(FALSE); return NULL; } ////////////////////////////////////////////// // virtual function. virtual CLString& GetDataString() { CLString strTabs = _T("\t\t\t"); CXMLTagInformation XMLTagInfo(BXT::GetTitleXMLTag(), strTabs); CLString strTmp = XMLTagInfo.GetXMLString(m_strTitle); strTmp += XMLTagInfo.GetXMLString(BXT::GetEnvironmentXMLTag(), m_strEnvironment, true); strTmp += XMLTagInfo.GetXMLString(BXT::GetFilenameXMLTag(), m_strBugReportFileName, true); m_strData = m_XMLTagInformation.GetTabbedStartTag(); m_strData += strTmp; m_strData += m_XMLTagInformation.GetTabbedEndTag(); return m_strData; } ////////////////////////////////////////////// // virtual function. virtual CLString& GetFileString() { CRaidFileBase raidFileBase; m_strData = raidFileBase.GetLine(RFF::GetTitleFileField() , m_strTitle ); m_strData += raidFileBase.GetLine(RFF::GetEnvironmentFileField() , m_strEnvironment); return m_strData; } ////////////////////////////////////////////// // Inline virtual bool ExtractXMLContents(IXMLDOMNodePtr spParentXDN) { _bstr_t bstrTag = BXT::GetBugGeneralXMLTag(); IXMLDOMNodePtr spXDNChild = spParentXDN->selectSingleNode(bstrTag); if(spXDNChild) { GetTagText(m_strTitle , BXT::GetTitleXMLTag() , spXDNChild); GetTagText(m_strEnvironment , BXT::GetEnvironmentXMLTag() , spXDNChild); GetTagText(m_strBugReportFileName, BXT::GetFilenameXMLTag() , spXDNChild); } return true; } ////////////////////////////////////////////// // data members public: CXMLTagInformation m_XMLTagInformation; } CXMLRAIDREPORTGENERAL, FAR* LPCXMLRAIDREPORTGENERAL; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// typedef class CXMLRaidReportData : public CRaidReportData, public CXMLBase { public: ////////////////////////////////////////////// //Inline CXMLRaidReportData() : m_XMLTagInformation(BXT::GetBugReportXMLTag(), _T("\t")) { m_pRaidReportGeneral = new CXMLRaidReportGeneral (); m_pRaidReportDescription = new CXMLRaidReportDescription(); m_pRaidReportOpened = new CXMLRaidReportOpened (); m_pRaidReportStatus = new CXMLRaidReportStatus (); } ////////////////////////////////////////////// //Inline virtual ~CXMLRaidReportData() { delete m_pRaidReportGeneral ; delete m_pRaidReportDescription; delete m_pRaidReportOpened ; delete m_pRaidReportStatus ; } // Override the base class definition IXMLDOMNodePtr CreateXMLNode(const _bstr_t bstrNewTag, _variant_t& var, IXMLDOMNodePtr spXDNParent) { UNREFERENCED_PARAMETER(bstrNewTag); UNREFERENCED_PARAMETER(var); UNREFERENCED_PARAMETER(spXDNParent); ASSERT(FALSE); return NULL; } ////////////////////////////////////////////// // virtual function. virtual CLString& GetDataString() { m_strData = m_XMLTagInformation.GetTabbedStartTag(); m_strData += GetRaidReportGeneralPtr()->GetDataString(); m_strData += GetRaidReportDescriptionPtr()->GetDataString(); m_strData += GetRaidReportOpenedPtr()->GetDataString(); m_strData += GetRaidReportStatusPtr()->GetDataString(); m_strData += m_XMLTagInformation.GetTabbedEndTag(); return m_strData; } ////////////////////////////////////////////// // virtual function. virtual CLString& GetFileString() { m_strData.Empty(); CLString strTmp; CRaidFileBase raidFileBase; strTmp = GetRaidReportGeneralPtr()->GetFileString(); strTmp += GetRaidReportOpenedPtr()->GetFileString(); strTmp += GetRaidReportStatusPtr()->GetFileString(); CLString strDescription = GetRaidReportDescriptionPtr()->GetFileString(); if(!strTmp.IsEmpty() || !strDescription.IsEmpty()) { strTmp += strDescription; m_strData = raidFileBase.GetLine(RFF::GetActionFileField(),RFF::GetAddFileField()); m_strData += strTmp; } return m_strData; } ////////////////////////////////////////////// // Inline virtual bool ExtractXMLContents(IXMLDOMNodePtr spXDNRaid) { if(spXDNRaid) { ((CXMLRaidReportGeneral* )GetRaidReportGeneralPtr())->ExtractXMLContents(spXDNRaid); ((CXMLRaidReportDescription*)GetRaidReportDescriptionPtr())->ExtractXMLContents(spXDNRaid); ((CXMLRaidReportOpened* )GetRaidReportOpenedPtr())->ExtractXMLContents(spXDNRaid); ((CXMLRaidReportStatus* )GetRaidReportStatusPtr())->ExtractXMLContents(spXDNRaid); } return true; } ////////////////////////////////////////////// // data members public: CXMLTagInformation m_XMLTagInformation; } CXMLRAIDREPORTDATA, FAR* LPCXMLRAIDREPORTDATA; ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// #endif // !defined(AFX_RAIDDATASTRUCTS_H__5FD93F0B_81D9_11D2_8162_00C04F68FDA4__INCLUDED_)