diff options
| author | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
|---|---|---|
| committer | kx <kx@radix.pro> | 2024-06-04 06:43:08 +0300 |
| commit | 7e2ccccace24636f29ddc210b94606abd4c7e42b (patch) | |
| tree | 545d43ea12671048956cafeb12303e84d601e571 /BaseTools/Source/Python/UPT/Xml/PackageSurfaceAreaXml.py | |
| parent | 27b044605cd5f6b33a3d231576003850b3fe305b (diff) | |
| download | edk2-trunk.tar.xz | |
Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305btrunk
Diffstat (limited to 'BaseTools/Source/Python/UPT/Xml/PackageSurfaceAreaXml.py')
| -rw-r--r-- | BaseTools/Source/Python/UPT/Xml/PackageSurfaceAreaXml.py | 804 |
1 files changed, 402 insertions, 402 deletions
diff --git a/BaseTools/Source/Python/UPT/Xml/PackageSurfaceAreaXml.py b/BaseTools/Source/Python/UPT/Xml/PackageSurfaceAreaXml.py index 103939023b..9cff02d377 100644 --- a/BaseTools/Source/Python/UPT/Xml/PackageSurfaceAreaXml.py +++ b/BaseTools/Source/Python/UPT/Xml/PackageSurfaceAreaXml.py @@ -1,402 +1,402 @@ -## @file
-# This file is used to parse a Package file of .PKG file
-#
-# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
-#
-# SPDX-License-Identifier: BSD-2-Clause-Patent
-#
-
-'''
-PackageSurfaceAreaXml
-'''
-from xml.dom import minidom
-
-from Library.StringUtils import GetStringOfList
-from Library.Xml.XmlRoutines import XmlElement
-from Library.Xml.XmlRoutines import XmlNode
-from Library.Xml.XmlRoutines import XmlList
-from Library.Xml.XmlRoutines import CreateXmlElement
-from Object.POM.CommonObject import IncludeObject
-from Object.POM.CommonObject import TextObject
-from Object.POM.PackageObject import PackageObject
-from Xml.CommonXml import ClonedFromXml
-from Xml.CommonXml import PackageHeaderXml
-from Xml.CommonXml import HelpTextXml
-from Xml.CommonXml import CommonDefinesXml
-from Xml.CommonXml import LibraryClassXml
-from Xml.CommonXml import UserExtensionsXml
-from Xml.CommonXml import MiscellaneousFileXml
-from Xml.GuidProtocolPpiXml import GuidXml
-from Xml.GuidProtocolPpiXml import ProtocolXml
-from Xml.GuidProtocolPpiXml import PpiXml
-from Xml.ModuleSurfaceAreaXml import ModuleSurfaceAreaXml
-from Xml.PcdXml import PcdEntryXml
-
-##
-# IndustryStandardHeaderXml
-#
-class IndustryStandardHeaderXml(object):
- def __init__(self):
- self.HeaderFile = ''
- self.HelpText = []
-
- def FromXml(self, Item, Key):
- self.HeaderFile = XmlElement(Item, '%s/HeaderFile' % Key)
- for HelpTextItem in XmlList(Item, '%s/HelpText' % Key):
- HelpTextObj = HelpTextXml()
- HelpTextObj.FromXml(HelpTextItem, '%s/HelpText' % Key)
- self.HelpText.append(HelpTextObj)
-
- Include = IncludeObject()
- Include.SetFilePath(self.HeaderFile)
- HelpTxt = TextObject()
- HelpTxt.SetString(self.HelpText)
- Include.SetHelpText(HelpTxt)
-
- return Include
-
- def ToXml(self, IndustryStandardHeader, Key):
- if self.HeaderFile:
- pass
- AttributeList = []
- NodeList = [['HeaderFile', IndustryStandardHeader.GetFilePath()]]
- Root = CreateXmlElement('%s' % Key, '', NodeList, AttributeList)
-
- return Root
-
- def __str__(self):
- Str = "HeaderFile = %s" % (self.HeaderFile)
- for Item in self.HelpText:
- Str = Str + "\n\t" + str(Item)
- return Str
-##
-# PackageIncludeHeaderXml
-#
-class PackageIncludeHeaderXml(object):
- def __init__(self):
- self.HeaderFile = ''
- self.CommonDefines = CommonDefinesXml()
- self.HelpText = []
-
- def FromXml(self, Item, Key):
- self.HeaderFile = XmlElement(Item, '%s/HeaderFile' % Key)
- self.CommonDefines.FromXml(XmlNode(Item, '%s/HeaderFile' % Key), 'HeaderFile')
- for HelpTextItem in XmlList(Item, '%s/HelpText' % Key):
- HelpTextObj = HelpTextXml()
- HelpTextObj.FromXml(HelpTextItem, '%s/HelpText' % Key)
- self.HelpText.append(HelpTextObj)
-
- Include = IncludeObject()
- Include.SetFilePath(self.HeaderFile)
- Include.SetSupArchList(self.CommonDefines.SupArchList)
- HelpTxt = TextObject()
- HelpTxt.SetString(self.HelpText)
- Include.SetHelpText(HelpTxt)
-
- return Include
-
- def ToXml(self, PackageIncludeHeader, Key):
- if self.HeaderFile:
- pass
- AttributeList = [['SupArchList', GetStringOfList(PackageIncludeHeader.GetSupArchList())], \
- ['SupModList', GetStringOfList(PackageIncludeHeader.GetSupModuleList())], ]
-
- HeaderFileNode = CreateXmlElement('HeaderFile', PackageIncludeHeader.FilePath, [], AttributeList)
-
- NodeList = [HeaderFileNode]
- for Item in PackageIncludeHeader.GetHelpTextList():
- Tmp = HelpTextXml()
- NodeList.append(Tmp.ToXml(Item))
-
- Root = CreateXmlElement('%s' % Key, '', NodeList, [])
-
- return Root
-
- def __str__(self):
- Str = "HeaderFile = %s\n\t%s" % (self.HeaderFile, self.CommonDefines)
- for Item in self.HelpText:
- Str = Str + "\n\t" + str(Item)
- return Str
-
-##
-# PcdCheckXml
-#
-class PcdCheckXml(object):
- def __init__(self):
- self.PcdCheck = ''
-
- def FromXml(self, Item, Key):
- if Key:
- pass
- self.PcdCheck = XmlElement(Item, 'PcdCheck')
-
- return self.PcdCheck
-
- def ToXml(self, PcdCheck, Key):
- if self.PcdCheck:
- pass
- Root = CreateXmlElement('%s' % Key, PcdCheck, [], [])
- return Root
-
- def __str__(self):
- return "PcdCheck = %s" % (self.PcdCheck)
-
-##
-# PackageSurfaceAreaXml
-#
-class PackageSurfaceAreaXml(object):
- def __init__(self):
- self.Package = None
-
- def FromXml(self, Item, Key):
- if Key:
- pass
- #
- # Create a package object
- #
- Package = PackageObject()
- #
- # Header
- #
- Tmp = PackageHeaderXml()
- Tmp.FromXml(XmlNode(Item, '/PackageSurfaceArea/Header'), 'Header', Package)
- #
- # ClonedFrom
- #
- Tmp = ClonedFromXml()
- if XmlNode(Item, '/PackageSurfaceArea/ClonedFrom'):
- ClonedFrom = Tmp.FromXml(XmlNode(Item, '/PackageSurfaceArea/ClonedFrom'), 'ClonedFrom')
- Package.SetClonedFromList([ClonedFrom])
- #
- # LibraryClass
- #
-
- for SubItem in XmlList(Item, '/PackageSurfaceArea/LibraryClassDeclarations/LibraryClass'):
- Tmp = LibraryClassXml()
- LibraryClass = Tmp.FromXml(SubItem, 'LibraryClass')
- Package.SetLibraryClassList(Package.GetLibraryClassList() + [LibraryClass])
-
- if XmlList(Item, '/PackageSurfaceArea/LibraryClassDeclarations') and \
- not XmlList(Item, '/PackageSurfaceArea/LibraryClassDeclarations/LibraryClass'):
- Package.SetLibraryClassList([None])
-
- #
- # IndustryStandardHeader
- #
- for SubItem in XmlList(Item, '/PackageSurfaceArea/IndustryStandardIncludes/IndustryStandardHeader'):
- Tmp = IndustryStandardHeaderXml()
- Include = Tmp.FromXml(SubItem, 'IndustryStandardHeader')
- Package.SetStandardIncludeFileList(Package.GetStandardIncludeFileList() + [Include])
-
- if XmlList(Item, '/PackageSurfaceArea/IndustryStandardIncludes') and \
- not XmlList(Item, '/PackageSurfaceArea/IndustryStandardIncludes/IndustryStandardHeader'):
- Package.SetStandardIncludeFileList([None])
-
-
- #
- # PackageHeader
- #
- for SubItem in XmlList(Item, '/PackageSurfaceArea/PackageIncludes/PackageHeader'):
- Tmp = PackageIncludeHeaderXml()
- Include = Tmp.FromXml(SubItem, 'PackageHeader')
- Package.SetPackageIncludeFileList(Package.GetPackageIncludeFileList() + [Include])
-
- if XmlList(Item, '/PackageSurfaceArea/PackageIncludes') and not \
- XmlList(Item, '/PackageSurfaceArea/PackageIncludes/PackageHeader'):
- Package.SetPackageIncludeFileList([None])
-
- #
- # Guid
- #
- for SubItem in XmlList(Item, '/PackageSurfaceArea/GuidDeclarations/Entry'):
- Tmp = GuidXml('Package')
- GuidProtocolPpi = Tmp.FromXml(SubItem, 'Entry')
- Package.SetGuidList(Package.GetGuidList() + [GuidProtocolPpi])
-
- if XmlList(Item, '/PackageSurfaceArea/GuidDeclarations') and not \
- XmlList(Item, '/PackageSurfaceArea/GuidDeclarations/Entry'):
- Package.SetGuidList([None])
-
- #
- # Protocol
- #
- for SubItem in XmlList(Item, '/PackageSurfaceArea/ProtocolDeclarations/Entry'):
- Tmp = ProtocolXml('Package')
- GuidProtocolPpi = Tmp.FromXml(SubItem, 'Entry')
- Package.SetProtocolList(Package.GetProtocolList() + [GuidProtocolPpi])
-
- if XmlList(Item, '/PackageSurfaceArea/ProtocolDeclarations') and not \
- XmlList(Item, '/PackageSurfaceArea/ProtocolDeclarations/Entry'):
- Package.SetProtocolList([None])
-
- #
- # Ppi
- #
- for SubItem in XmlList(Item, '/PackageSurfaceArea/PpiDeclarations/Entry'):
- Tmp = PpiXml('Package')
- GuidProtocolPpi = Tmp.FromXml(SubItem, 'Entry')
- Package.SetPpiList(Package.GetPpiList() + [GuidProtocolPpi])
-
- if XmlList(Item, '/PackageSurfaceArea/PpiDeclarations') and not \
- XmlList(Item, '/PackageSurfaceArea/PpiDeclarations/Entry'):
- Package.SetPpiList([None])
-
- #
- # PcdEntry
- #
- for SubItem in XmlList(Item, '/PackageSurfaceArea/PcdDeclarations/PcdEntry'):
- Tmp = PcdEntryXml()
- PcdEntry = Tmp.FromXml2(SubItem, 'PcdEntry')
- Package.SetPcdList(Package.GetPcdList() + [PcdEntry])
-
- #
- # Get PcdErrorCommentDict from PcdError in PcdEntry Node
- #
- for PcdErrorObj in PcdEntry.GetPcdErrorsList():
- PcdErrorMessageList = PcdErrorObj.GetErrorMessageList()
- if PcdErrorMessageList:
- Package.PcdErrorCommentDict[(PcdEntry.GetTokenSpaceGuidCName(), PcdErrorObj.GetErrorNumber())] = \
- PcdErrorMessageList
-
-
- if XmlList(Item, '/PackageSurfaceArea/PcdDeclarations') and not \
- XmlList(Item, '/PackageSurfaceArea/PcdDeclarations/PcdEntry'):
- Package.SetPcdList([None])
-
- #
- # PcdCheck
- #
- for SubItem in XmlList(Item, '/PackageSurfaceArea/PcdRelationshipChecks/PcdCheck'):
- Tmp = PcdCheckXml()
- PcdCheck = Tmp.FromXml(SubItem, 'PcdCheck')
- Package.PcdChecks.append(PcdCheck)
-
- #
- # Modules
- #
- for SubItem in XmlList(Item, '/PackageSurfaceArea/Modules/ModuleSurfaceArea'):
- Tmp = ModuleSurfaceAreaXml()
- Module = Tmp.FromXml(SubItem, 'ModuleSurfaceArea')
- ModuleDictKey = (Module.GetGuid(), Module.GetVersion(), Module.GetName(), Module.GetModulePath())
- Package.ModuleDict[ModuleDictKey] = Module
- #
- # MiscellaneousFile
- #
- Tmp = MiscellaneousFileXml()
- MiscFileList = Tmp.FromXml(XmlNode(Item, '/PackageSurfaceArea/MiscellaneousFiles'), 'MiscellaneousFiles')
- if MiscFileList:
- Package.SetMiscFileList([MiscFileList])
- else:
- Package.SetMiscFileList([])
-
- #
- # UserExtensions
- #
- for Item in XmlList(Item, '/PackageSurfaceArea/UserExtensions'):
- Tmp = UserExtensionsXml()
- UserExtension = Tmp.FromXml(Item, 'UserExtensions')
- Package.UserExtensionList.append(UserExtension)
-
- self.Package = Package
- return self.Package
-
- def ToXml(self, Package):
- if self.Package:
- pass
- #
- # Create PackageSurfaceArea node
- #
- DomPackage = minidom.Document().createElement('PackageSurfaceArea')
- #
- # Header
- #
- Tmp = PackageHeaderXml()
- DomPackage.appendChild(Tmp.ToXml(Package, 'Header'))
- #
- # ClonedFrom
- #
- Tmp = ClonedFromXml()
- if Package.GetClonedFromList() != []:
- DomPackage.appendChild(Tmp.ToXml(Package.GetClonedFromList[0], 'ClonedFrom'))
- #
- # LibraryClass
- #
- LibraryClassNode = CreateXmlElement('LibraryClassDeclarations', '', [], [])
- for LibraryClass in Package.GetLibraryClassList():
- Tmp = LibraryClassXml()
- LibraryClassNode.appendChild(Tmp.ToXml(LibraryClass, 'LibraryClass'))
- DomPackage.appendChild(LibraryClassNode)
- #
- # IndustryStandardHeader
- #
- IndustryStandardHeaderNode = CreateXmlElement('IndustryStandardIncludes', '', [], [])
- for Include in Package.GetStandardIncludeFileList():
- Tmp = IndustryStandardHeaderXml()
- IndustryStandardHeaderNode.appendChild(Tmp.ToXml(Include, 'IndustryStandardHeader'))
- DomPackage.appendChild(IndustryStandardHeaderNode)
- #
- # PackageHeader
- #
- PackageIncludeHeaderNode = CreateXmlElement('PackageIncludes', '', [], [])
- for Include in Package.GetPackageIncludeFileList():
- Tmp = PackageIncludeHeaderXml()
- PackageIncludeHeaderNode.appendChild(Tmp.ToXml(Include, 'PackageHeader'))
- DomPackage.appendChild(PackageIncludeHeaderNode)
- ModuleNode = CreateXmlElement('Modules', '', [], [])
- for Module in Package.GetModuleDict().values():
- Tmp = ModuleSurfaceAreaXml()
- ModuleNode.appendChild(Tmp.ToXml(Module))
- DomPackage.appendChild(ModuleNode)
- #
- # Guid
- #
- GuidProtocolPpiNode = CreateXmlElement('GuidDeclarations', '', [], [])
- for GuidProtocolPpi in Package.GetGuidList():
- Tmp = GuidXml('Package')
- GuidProtocolPpiNode.appendChild(Tmp.ToXml\
- (GuidProtocolPpi, 'Entry'))
- DomPackage.appendChild(GuidProtocolPpiNode)
- #
- # Protocol
- #
- GuidProtocolPpiNode = \
- CreateXmlElement('ProtocolDeclarations', '', [], [])
- for GuidProtocolPpi in Package.GetProtocolList():
- Tmp = ProtocolXml('Package')
- GuidProtocolPpiNode.appendChild\
- (Tmp.ToXml(GuidProtocolPpi, 'Entry'))
- DomPackage.appendChild(GuidProtocolPpiNode)
- #
- # Ppi
- #
- GuidProtocolPpiNode = CreateXmlElement('PpiDeclarations', '', [], [])
- for GuidProtocolPpi in Package.GetPpiList():
- Tmp = PpiXml('Package')
- GuidProtocolPpiNode.appendChild\
- (Tmp.ToXml(GuidProtocolPpi, 'Entry'))
- DomPackage.appendChild(GuidProtocolPpiNode)
- #
- # PcdEntry
- #
- PcdEntryNode = CreateXmlElement('PcdDeclarations', '', [], [])
- for PcdEntry in Package.GetPcdList():
- Tmp = PcdEntryXml()
- PcdEntryNode.appendChild(Tmp.ToXml2(PcdEntry, 'PcdEntry'))
- DomPackage.appendChild(PcdEntryNode)
-
- #
- # MiscellaneousFile
- #
- Tmp = MiscellaneousFileXml()
- if Package.GetMiscFileList():
- DomPackage.appendChild(Tmp.ToXml(Package.GetMiscFileList()[0], 'MiscellaneousFiles'))
-
- #
- # UserExtensions
- #
- if Package.GetUserExtensionList():
- for UserExtension in Package.GetUserExtensionList():
- Tmp = UserExtensionsXml()
- DomPackage.appendChild(Tmp.ToXml(UserExtension, 'UserExtensions'))
-
- return DomPackage
+## @file +# This file is used to parse a Package file of .PKG file +# +# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR> +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +''' +PackageSurfaceAreaXml +''' +from xml.dom import minidom + +from Library.StringUtils import GetStringOfList +from Library.Xml.XmlRoutines import XmlElement +from Library.Xml.XmlRoutines import XmlNode +from Library.Xml.XmlRoutines import XmlList +from Library.Xml.XmlRoutines import CreateXmlElement +from Object.POM.CommonObject import IncludeObject +from Object.POM.CommonObject import TextObject +from Object.POM.PackageObject import PackageObject +from Xml.CommonXml import ClonedFromXml +from Xml.CommonXml import PackageHeaderXml +from Xml.CommonXml import HelpTextXml +from Xml.CommonXml import CommonDefinesXml +from Xml.CommonXml import LibraryClassXml +from Xml.CommonXml import UserExtensionsXml +from Xml.CommonXml import MiscellaneousFileXml +from Xml.GuidProtocolPpiXml import GuidXml +from Xml.GuidProtocolPpiXml import ProtocolXml +from Xml.GuidProtocolPpiXml import PpiXml +from Xml.ModuleSurfaceAreaXml import ModuleSurfaceAreaXml +from Xml.PcdXml import PcdEntryXml + +## +# IndustryStandardHeaderXml +# +class IndustryStandardHeaderXml(object): + def __init__(self): + self.HeaderFile = '' + self.HelpText = [] + + def FromXml(self, Item, Key): + self.HeaderFile = XmlElement(Item, '%s/HeaderFile' % Key) + for HelpTextItem in XmlList(Item, '%s/HelpText' % Key): + HelpTextObj = HelpTextXml() + HelpTextObj.FromXml(HelpTextItem, '%s/HelpText' % Key) + self.HelpText.append(HelpTextObj) + + Include = IncludeObject() + Include.SetFilePath(self.HeaderFile) + HelpTxt = TextObject() + HelpTxt.SetString(self.HelpText) + Include.SetHelpText(HelpTxt) + + return Include + + def ToXml(self, IndustryStandardHeader, Key): + if self.HeaderFile: + pass + AttributeList = [] + NodeList = [['HeaderFile', IndustryStandardHeader.GetFilePath()]] + Root = CreateXmlElement('%s' % Key, '', NodeList, AttributeList) + + return Root + + def __str__(self): + Str = "HeaderFile = %s" % (self.HeaderFile) + for Item in self.HelpText: + Str = Str + "\n\t" + str(Item) + return Str +## +# PackageIncludeHeaderXml +# +class PackageIncludeHeaderXml(object): + def __init__(self): + self.HeaderFile = '' + self.CommonDefines = CommonDefinesXml() + self.HelpText = [] + + def FromXml(self, Item, Key): + self.HeaderFile = XmlElement(Item, '%s/HeaderFile' % Key) + self.CommonDefines.FromXml(XmlNode(Item, '%s/HeaderFile' % Key), 'HeaderFile') + for HelpTextItem in XmlList(Item, '%s/HelpText' % Key): + HelpTextObj = HelpTextXml() + HelpTextObj.FromXml(HelpTextItem, '%s/HelpText' % Key) + self.HelpText.append(HelpTextObj) + + Include = IncludeObject() + Include.SetFilePath(self.HeaderFile) + Include.SetSupArchList(self.CommonDefines.SupArchList) + HelpTxt = TextObject() + HelpTxt.SetString(self.HelpText) + Include.SetHelpText(HelpTxt) + + return Include + + def ToXml(self, PackageIncludeHeader, Key): + if self.HeaderFile: + pass + AttributeList = [['SupArchList', GetStringOfList(PackageIncludeHeader.GetSupArchList())], \ + ['SupModList', GetStringOfList(PackageIncludeHeader.GetSupModuleList())], ] + + HeaderFileNode = CreateXmlElement('HeaderFile', PackageIncludeHeader.FilePath, [], AttributeList) + + NodeList = [HeaderFileNode] + for Item in PackageIncludeHeader.GetHelpTextList(): + Tmp = HelpTextXml() + NodeList.append(Tmp.ToXml(Item)) + + Root = CreateXmlElement('%s' % Key, '', NodeList, []) + + return Root + + def __str__(self): + Str = "HeaderFile = %s\n\t%s" % (self.HeaderFile, self.CommonDefines) + for Item in self.HelpText: + Str = Str + "\n\t" + str(Item) + return Str + +## +# PcdCheckXml +# +class PcdCheckXml(object): + def __init__(self): + self.PcdCheck = '' + + def FromXml(self, Item, Key): + if Key: + pass + self.PcdCheck = XmlElement(Item, 'PcdCheck') + + return self.PcdCheck + + def ToXml(self, PcdCheck, Key): + if self.PcdCheck: + pass + Root = CreateXmlElement('%s' % Key, PcdCheck, [], []) + return Root + + def __str__(self): + return "PcdCheck = %s" % (self.PcdCheck) + +## +# PackageSurfaceAreaXml +# +class PackageSurfaceAreaXml(object): + def __init__(self): + self.Package = None + + def FromXml(self, Item, Key): + if Key: + pass + # + # Create a package object + # + Package = PackageObject() + # + # Header + # + Tmp = PackageHeaderXml() + Tmp.FromXml(XmlNode(Item, '/PackageSurfaceArea/Header'), 'Header', Package) + # + # ClonedFrom + # + Tmp = ClonedFromXml() + if XmlNode(Item, '/PackageSurfaceArea/ClonedFrom'): + ClonedFrom = Tmp.FromXml(XmlNode(Item, '/PackageSurfaceArea/ClonedFrom'), 'ClonedFrom') + Package.SetClonedFromList([ClonedFrom]) + # + # LibraryClass + # + + for SubItem in XmlList(Item, '/PackageSurfaceArea/LibraryClassDeclarations/LibraryClass'): + Tmp = LibraryClassXml() + LibraryClass = Tmp.FromXml(SubItem, 'LibraryClass') + Package.SetLibraryClassList(Package.GetLibraryClassList() + [LibraryClass]) + + if XmlList(Item, '/PackageSurfaceArea/LibraryClassDeclarations') and \ + not XmlList(Item, '/PackageSurfaceArea/LibraryClassDeclarations/LibraryClass'): + Package.SetLibraryClassList([None]) + + # + # IndustryStandardHeader + # + for SubItem in XmlList(Item, '/PackageSurfaceArea/IndustryStandardIncludes/IndustryStandardHeader'): + Tmp = IndustryStandardHeaderXml() + Include = Tmp.FromXml(SubItem, 'IndustryStandardHeader') + Package.SetStandardIncludeFileList(Package.GetStandardIncludeFileList() + [Include]) + + if XmlList(Item, '/PackageSurfaceArea/IndustryStandardIncludes') and \ + not XmlList(Item, '/PackageSurfaceArea/IndustryStandardIncludes/IndustryStandardHeader'): + Package.SetStandardIncludeFileList([None]) + + + # + # PackageHeader + # + for SubItem in XmlList(Item, '/PackageSurfaceArea/PackageIncludes/PackageHeader'): + Tmp = PackageIncludeHeaderXml() + Include = Tmp.FromXml(SubItem, 'PackageHeader') + Package.SetPackageIncludeFileList(Package.GetPackageIncludeFileList() + [Include]) + + if XmlList(Item, '/PackageSurfaceArea/PackageIncludes') and not \ + XmlList(Item, '/PackageSurfaceArea/PackageIncludes/PackageHeader'): + Package.SetPackageIncludeFileList([None]) + + # + # Guid + # + for SubItem in XmlList(Item, '/PackageSurfaceArea/GuidDeclarations/Entry'): + Tmp = GuidXml('Package') + GuidProtocolPpi = Tmp.FromXml(SubItem, 'Entry') + Package.SetGuidList(Package.GetGuidList() + [GuidProtocolPpi]) + + if XmlList(Item, '/PackageSurfaceArea/GuidDeclarations') and not \ + XmlList(Item, '/PackageSurfaceArea/GuidDeclarations/Entry'): + Package.SetGuidList([None]) + + # + # Protocol + # + for SubItem in XmlList(Item, '/PackageSurfaceArea/ProtocolDeclarations/Entry'): + Tmp = ProtocolXml('Package') + GuidProtocolPpi = Tmp.FromXml(SubItem, 'Entry') + Package.SetProtocolList(Package.GetProtocolList() + [GuidProtocolPpi]) + + if XmlList(Item, '/PackageSurfaceArea/ProtocolDeclarations') and not \ + XmlList(Item, '/PackageSurfaceArea/ProtocolDeclarations/Entry'): + Package.SetProtocolList([None]) + + # + # Ppi + # + for SubItem in XmlList(Item, '/PackageSurfaceArea/PpiDeclarations/Entry'): + Tmp = PpiXml('Package') + GuidProtocolPpi = Tmp.FromXml(SubItem, 'Entry') + Package.SetPpiList(Package.GetPpiList() + [GuidProtocolPpi]) + + if XmlList(Item, '/PackageSurfaceArea/PpiDeclarations') and not \ + XmlList(Item, '/PackageSurfaceArea/PpiDeclarations/Entry'): + Package.SetPpiList([None]) + + # + # PcdEntry + # + for SubItem in XmlList(Item, '/PackageSurfaceArea/PcdDeclarations/PcdEntry'): + Tmp = PcdEntryXml() + PcdEntry = Tmp.FromXml2(SubItem, 'PcdEntry') + Package.SetPcdList(Package.GetPcdList() + [PcdEntry]) + + # + # Get PcdErrorCommentDict from PcdError in PcdEntry Node + # + for PcdErrorObj in PcdEntry.GetPcdErrorsList(): + PcdErrorMessageList = PcdErrorObj.GetErrorMessageList() + if PcdErrorMessageList: + Package.PcdErrorCommentDict[(PcdEntry.GetTokenSpaceGuidCName(), PcdErrorObj.GetErrorNumber())] = \ + PcdErrorMessageList + + + if XmlList(Item, '/PackageSurfaceArea/PcdDeclarations') and not \ + XmlList(Item, '/PackageSurfaceArea/PcdDeclarations/PcdEntry'): + Package.SetPcdList([None]) + + # + # PcdCheck + # + for SubItem in XmlList(Item, '/PackageSurfaceArea/PcdRelationshipChecks/PcdCheck'): + Tmp = PcdCheckXml() + PcdCheck = Tmp.FromXml(SubItem, 'PcdCheck') + Package.PcdChecks.append(PcdCheck) + + # + # Modules + # + for SubItem in XmlList(Item, '/PackageSurfaceArea/Modules/ModuleSurfaceArea'): + Tmp = ModuleSurfaceAreaXml() + Module = Tmp.FromXml(SubItem, 'ModuleSurfaceArea') + ModuleDictKey = (Module.GetGuid(), Module.GetVersion(), Module.GetName(), Module.GetModulePath()) + Package.ModuleDict[ModuleDictKey] = Module + # + # MiscellaneousFile + # + Tmp = MiscellaneousFileXml() + MiscFileList = Tmp.FromXml(XmlNode(Item, '/PackageSurfaceArea/MiscellaneousFiles'), 'MiscellaneousFiles') + if MiscFileList: + Package.SetMiscFileList([MiscFileList]) + else: + Package.SetMiscFileList([]) + + # + # UserExtensions + # + for Item in XmlList(Item, '/PackageSurfaceArea/UserExtensions'): + Tmp = UserExtensionsXml() + UserExtension = Tmp.FromXml(Item, 'UserExtensions') + Package.UserExtensionList.append(UserExtension) + + self.Package = Package + return self.Package + + def ToXml(self, Package): + if self.Package: + pass + # + # Create PackageSurfaceArea node + # + DomPackage = minidom.Document().createElement('PackageSurfaceArea') + # + # Header + # + Tmp = PackageHeaderXml() + DomPackage.appendChild(Tmp.ToXml(Package, 'Header')) + # + # ClonedFrom + # + Tmp = ClonedFromXml() + if Package.GetClonedFromList() != []: + DomPackage.appendChild(Tmp.ToXml(Package.GetClonedFromList[0], 'ClonedFrom')) + # + # LibraryClass + # + LibraryClassNode = CreateXmlElement('LibraryClassDeclarations', '', [], []) + for LibraryClass in Package.GetLibraryClassList(): + Tmp = LibraryClassXml() + LibraryClassNode.appendChild(Tmp.ToXml(LibraryClass, 'LibraryClass')) + DomPackage.appendChild(LibraryClassNode) + # + # IndustryStandardHeader + # + IndustryStandardHeaderNode = CreateXmlElement('IndustryStandardIncludes', '', [], []) + for Include in Package.GetStandardIncludeFileList(): + Tmp = IndustryStandardHeaderXml() + IndustryStandardHeaderNode.appendChild(Tmp.ToXml(Include, 'IndustryStandardHeader')) + DomPackage.appendChild(IndustryStandardHeaderNode) + # + # PackageHeader + # + PackageIncludeHeaderNode = CreateXmlElement('PackageIncludes', '', [], []) + for Include in Package.GetPackageIncludeFileList(): + Tmp = PackageIncludeHeaderXml() + PackageIncludeHeaderNode.appendChild(Tmp.ToXml(Include, 'PackageHeader')) + DomPackage.appendChild(PackageIncludeHeaderNode) + ModuleNode = CreateXmlElement('Modules', '', [], []) + for Module in Package.GetModuleDict().values(): + Tmp = ModuleSurfaceAreaXml() + ModuleNode.appendChild(Tmp.ToXml(Module)) + DomPackage.appendChild(ModuleNode) + # + # Guid + # + GuidProtocolPpiNode = CreateXmlElement('GuidDeclarations', '', [], []) + for GuidProtocolPpi in Package.GetGuidList(): + Tmp = GuidXml('Package') + GuidProtocolPpiNode.appendChild(Tmp.ToXml\ + (GuidProtocolPpi, 'Entry')) + DomPackage.appendChild(GuidProtocolPpiNode) + # + # Protocol + # + GuidProtocolPpiNode = \ + CreateXmlElement('ProtocolDeclarations', '', [], []) + for GuidProtocolPpi in Package.GetProtocolList(): + Tmp = ProtocolXml('Package') + GuidProtocolPpiNode.appendChild\ + (Tmp.ToXml(GuidProtocolPpi, 'Entry')) + DomPackage.appendChild(GuidProtocolPpiNode) + # + # Ppi + # + GuidProtocolPpiNode = CreateXmlElement('PpiDeclarations', '', [], []) + for GuidProtocolPpi in Package.GetPpiList(): + Tmp = PpiXml('Package') + GuidProtocolPpiNode.appendChild\ + (Tmp.ToXml(GuidProtocolPpi, 'Entry')) + DomPackage.appendChild(GuidProtocolPpiNode) + # + # PcdEntry + # + PcdEntryNode = CreateXmlElement('PcdDeclarations', '', [], []) + for PcdEntry in Package.GetPcdList(): + Tmp = PcdEntryXml() + PcdEntryNode.appendChild(Tmp.ToXml2(PcdEntry, 'PcdEntry')) + DomPackage.appendChild(PcdEntryNode) + + # + # MiscellaneousFile + # + Tmp = MiscellaneousFileXml() + if Package.GetMiscFileList(): + DomPackage.appendChild(Tmp.ToXml(Package.GetMiscFileList()[0], 'MiscellaneousFiles')) + + # + # UserExtensions + # + if Package.GetUserExtensionList(): + for UserExtension in Package.GetUserExtensionList(): + Tmp = UserExtensionsXml() + DomPackage.appendChild(Tmp.ToXml(UserExtension, 'UserExtensions')) + + return DomPackage |
