summaryrefslogtreecommitdiff
path: root/BaseTools/Source/Python/UPT/Object/Parser/DecObject.py
diff options
context:
space:
mode:
Diffstat (limited to 'BaseTools/Source/Python/UPT/Object/Parser/DecObject.py')
-rw-r--r--BaseTools/Source/Python/UPT/Object/Parser/DecObject.py611
1 files changed, 0 insertions, 611 deletions
diff --git a/BaseTools/Source/Python/UPT/Object/Parser/DecObject.py b/BaseTools/Source/Python/UPT/Object/Parser/DecObject.py
deleted file mode 100644
index 6336a90fb9..0000000000
--- a/BaseTools/Source/Python/UPT/Object/Parser/DecObject.py
+++ /dev/null
@@ -1,611 +0,0 @@
-## @file
-# This file is used to define class objects for DEC file. It will consumed by
-#DecParser
-#
-# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
-#
-# This program and the accompanying materials are licensed and made available
-# under the terms and conditions of the BSD License which accompanies this
-# distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-'''
-DecObject
-'''
-
-## Import modules
-#
-import os.path
-
-from Library.Misc import Sdict
-from Library.DataType import TAB_GUIDS
-from Library.DataType import TAB_PPIS
-from Library.DataType import TAB_PROTOCOLS
-from Library.DataType import TAB_DEC_DEFINES
-from Library.DataType import TAB_INCLUDES
-from Library.DataType import TAB_LIBRARY_CLASSES
-from Library.DataType import TAB_USER_EXTENSIONS
-from Library.DataType import TAB_PCDS
-from Library.DataType import TAB_ARCH_COMMON
-
-## _DecComments
-#
-# Base class for all data objects which have head and tail comments
-#
-class _DecComments:
-
- ##constructor
- #
- def __init__(self):
- self._HeadComment = []
- self._TailComment = []
-
- ## GetComments
- #
- def GetComments(self):
- return self._HeadComment, self._TailComment
-
- ## GetHeadComment
- #
- def GetHeadComment(self):
- return self._HeadComment
-
- ## SetHeadComment
- #
- # @param Comment: comment content
- #
- def SetHeadComment(self, Comment):
- self._HeadComment = Comment
-
- ## GetTailComment
- #
- def GetTailComment(self):
- return self._TailComment
-
- ## SetTailComment
- #
- # @param Comment: comment content
- #
- def SetTailComment(self, Comment):
- self._TailComment = Comment
-
-## _DecBaseObject
-#
-# Base class that hold common info
-#
-class _DecBaseObject(_DecComments):
- def __init__(self, PkgFullName):
- _DecComments.__init__(self)
- #
- # Key is combined with (Arch, SectionType)
- # Default is common
- #
- self.ValueDict = Sdict()
- self._PkgFullName = PkgFullName
- self._PackagePath, self._FileName = os.path.split(PkgFullName)
- self._SecName = ''
-
- ## GetSectionName
- #
- def GetSectionName(self):
- return self._SecName
-
- ## GetPackagePath
- #
- def GetPackagePath(self):
- return self._PackagePath
-
- ## GetPackageFile
- #
- def GetPackageFile(self):
- return self._FileName
-
- ## GetPackageFullName
- #
- def GetPackageFullName(self):
- return self._PkgFullName
-
- ## AddItem
- # Add sub-item to current object, sub-class should override it if needed
- #
- # @param Item: Sub-item to be added
- # @param Scope: A list store section name and arch info
- #
- def AddItem(self, Item, Scope):
- if not Scope:
- return
- if not Item:
- return
- ArchModule = []
- for Ele in Scope:
- if Ele[1] in self.ValueDict:
- self.ValueDict[Ele[1]].append(Item)
- else:
- self.ValueDict[Ele[1]] = [Item]
- ArchModule.append(Ele[1])
- Item.ArchAndModuleType = ArchModule
-
- ## _GetItemByArch
- # Helper class used by sub-class
- # @param Arch: arch
- #
- def _GetItemByArch(self, Arch):
- Arch = Arch.upper()
- if Arch not in self.ValueDict:
- return []
- return self.ValueDict[Arch]
-
- ## _GetAllItems
- # Get all items, union all arches, items in returned list are unique
- #
- def _GetAllItems(self):
- Retlst = []
- for Arch in self.ValueDict:
- for Item in self.ValueDict[Arch]:
- if Item not in Retlst:
- Retlst.append(Item)
- return Retlst
-
-## _DecItemBaseObject
-#
-# Module type and arch the item belongs to
-#
-class _DecItemBaseObject(_DecComments):
- def __init__(self):
- _DecComments.__init__(self)
- #
- # Item's arch, if PCD, also include PCD type
- #
- self.ArchAndModuleType = []
-
- ## GetArchList
- #
- def GetArchList(self):
- ArchSet = set()
- for Arch in self.ArchAndModuleType:
- ArchSet.add(Arch)
- return list(ArchSet)
-
-## DecDefineObject
-#
-# Class to hold define section infomation
-#
-class DecDefineObject(_DecBaseObject):
- def __init__(self, PkgFullName):
- _DecBaseObject.__init__(self, PkgFullName)
- self._SecName = TAB_DEC_DEFINES.upper()
- self._DecSpec = ''
- self._PkgName = ''
- self._PkgGuid = ''
- self._PkgVersion = ''
- self._PkgUniFile = ''
-
- ## GetPackageSpecification
- #
- def GetPackageSpecification(self):
- return self._DecSpec
-
- def SetPackageSpecification(self, DecSpec):
- self._DecSpec = DecSpec
-
- ## GetPackageName
- #
- def GetPackageName(self):
- return self._PkgName
-
- def SetPackageName(self, PkgName):
- self._PkgName = PkgName
-
- ## GetPackageGuid
- #
- def GetPackageGuid(self):
- return self._PkgGuid
-
- def SetPackageGuid(self, PkgGuid):
- self._PkgGuid = PkgGuid
-
- ## GetPackageVersion
- #
- def GetPackageVersion(self):
- return self._PkgVersion
-
- def SetPackageVersion(self, PkgVersion):
- self._PkgVersion = PkgVersion
-
- ## GetPackageUniFile
- #
- def GetPackageUniFile(self):
- return self._PkgUniFile
-
- def SetPackageUniFile(self, PkgUniFile):
- self._PkgUniFile = PkgUniFile
-
- ## GetDefines
- #
- def GetDefines(self):
- return self._GetItemByArch(TAB_ARCH_COMMON)
-
- ## GetAllDefines
- #
- def GetAllDefines(self):
- return self._GetAllItems()
-
-## DecDefineItemObject
-#
-# Each item of define section
-#
-class DecDefineItemObject(_DecItemBaseObject):
- def __init__(self):
- _DecItemBaseObject.__init__(self)
- self.Key = ''
- self.Value = ''
-
- ## __hash__
- #
- def __hash__(self):
- return hash(self.Key + self.Value)
-
- ## __eq__
- #
- def __eq__(self, Other):
- return id(self) == id(Other)
-
- ## __str__
- #
- def __str__(self):
- return str(self.ArchAndModuleType) + '\n' + self.Key + \
- ' = ' + self.Value
-
-## DecIncludeObject
-#
-# Class to hold include section info
-#
-class DecIncludeObject(_DecBaseObject):
- def __init__(self, PkgFullName):
- _DecBaseObject.__init__(self, PkgFullName)
- self._SecName = TAB_INCLUDES.upper()
-
- ## GetIncludes
- #
- def GetIncludes(self, Arch=TAB_ARCH_COMMON):
- return self._GetItemByArch(Arch)
-
- ## GetAllIncludes
- #
- def GetAllIncludes(self):
- return self._GetAllItems()
-
-## DecIncludeItemObject
-#
-# Item of include section
-#
-class DecIncludeItemObject(_DecItemBaseObject):
- def __init__(self, File, Root):
- self.File = File
- self.Root = Root
- _DecItemBaseObject.__init__(self)
-
- ## __hash__
- #
- def __hash__(self):
- return hash(self.File)
-
- ## __eq__
- #
- def __eq__(self, Other):
- return id(self) == id(Other)
-
- ## __str__
- #
- def __str__(self):
- return self.File
-
-## DecLibraryclassObject
-#
-# Class to hold library class section info
-#
-class DecLibraryclassObject(_DecBaseObject):
- def __init__(self, PkgFullName):
- _DecBaseObject.__init__(self, PkgFullName)
- self._PackagePath, self._FileName = os.path.split(PkgFullName)
- self._SecName = TAB_LIBRARY_CLASSES.upper()
-
- ## GetLibraryclasses
- #
- def GetLibraryclasses(self, Arch=TAB_ARCH_COMMON):
- return self._GetItemByArch(Arch)
-
- ## GetAllLibraryclasses
- #
- def GetAllLibraryclasses(self):
- return self._GetAllItems()
-
-## DecLibraryclassItemObject
-# Item of library class section
-#
-class DecLibraryclassItemObject(_DecItemBaseObject):
- def __init__(self, Libraryclass, File, Root):
- _DecItemBaseObject.__init__(self)
- self.File = File
- self.Root = Root
- self.Libraryclass = Libraryclass
-
- ## __hash__
- #
- def __hash__(self):
- return hash(self.Libraryclass + self.File)
-
- ## __eq__
- #
- def __eq__(self, Other):
- return id(self) == id(Other)
-
- ## __str__
- #
- def __str__(self):
- return self.Libraryclass + '|' + self.File
-
-## DecPcdObject
-# Class to hold PCD section
-#
-class DecPcdObject(_DecBaseObject):
- def __init__(self, PkgFullName):
- _DecBaseObject.__init__(self, PkgFullName)
- self._SecName = TAB_PCDS.upper()
-
- ## AddItem
- #
- # Diff from base class
- #
- # @param Item: Item
- # @param Scope: Scope
- #
- def AddItem(self, Item, Scope):
- if not Scope:
- return
- if not Item:
- return
- ArchModule = []
- for Type, Arch in Scope:
- if (Type, Arch) in self.ValueDict:
- self.ValueDict[Type, Arch].append(Item)
- else:
- self.ValueDict[Type, Arch] = [Item]
- ArchModule.append([Type, Arch])
- Item.ArchAndModuleType = ArchModule
-
- ## GetPcds
- #
- # @param PcdType: PcdType
- # @param Arch: Arch
- #
- def GetPcds(self, PcdType, Arch=TAB_ARCH_COMMON):
- PcdType = PcdType.upper()
- Arch = Arch.upper()
- if (PcdType, Arch) not in self.ValueDict:
- return []
- return self.ValueDict[PcdType, Arch]
-
- ## GetPcdsByType
- #
- # @param PcdType: PcdType
- #
- def GetPcdsByType(self, PcdType):
- PcdType = PcdType.upper()
- Retlst = []
- for TypeInDict, Arch in self.ValueDict:
- if TypeInDict != PcdType:
- continue
- for Item in self.ValueDict[PcdType, Arch]:
- if Item not in Retlst:
- Retlst.append(Item)
- return Retlst
-
-## DecPcdItemObject
-#
-# Item of PCD section
-#
-# @param _DecItemBaseObject: _DecItemBaseObject object
-#
-class DecPcdItemObject(_DecItemBaseObject):
- def __init__(self, Guid, Name, Value, DatumType,
- Token, MaxDatumSize=''):
- _DecItemBaseObject.__init__(self)
- self.TokenCName = Name
- self.TokenSpaceGuidCName = Guid
- self.DatumType = DatumType
- self.DefaultValue = Value
- self.TokenValue = Token
- self.MaxDatumSize = MaxDatumSize
-
- ## __hash__
- #
- def __hash__(self):
- return hash(self.TokenSpaceGuidCName + self.TokenCName)
-
- ## __eq__
- #
- def __eq__(self, Other):
- return id(self) == id(Other)
-
- ## GetArchListOfType
- #
- # @param PcdType: PcdType
- #
- def GetArchListOfType(self, PcdType):
- ItemSet = set()
- PcdType = PcdType.upper()
- for Type, Arch in self.ArchAndModuleType:
- if Type != PcdType:
- continue
- ItemSet.add(Arch)
- return list(ItemSet)
-
-## DecGuidObjectBase
-#
-# Base class for PPI, Protocol, and GUID.
-# Hold same data but has different method for clarification in sub-class
-#
-# @param _DecBaseObject: Dec Base Object
-#
-class DecGuidObjectBase(_DecBaseObject):
- def __init__(self, PkgFullName):
- _DecBaseObject.__init__(self, PkgFullName)
-
- ## GetGuidStyleItems
- #
- # @param Arch: Arch
- #
- def GetGuidStyleItems(self, Arch=TAB_ARCH_COMMON):
- return self._GetItemByArch(Arch)
-
- ## GetGuidStyleAllItems
- #
- def GetGuidStyleAllItems(self):
- return self._GetAllItems()
-
-## DecGuidItemObject
-#
-# Item of GUID, PPI and Protocol section
-#
-# @param _DecItemBaseObject: Dec Item Base Object
-#
-class DecGuidItemObject(_DecItemBaseObject):
- def __init__(self, CName, GuidCValue, GuidString):
- _DecItemBaseObject.__init__(self)
- self.GuidCName = CName
- self.GuidCValue = GuidCValue
- self.GuidString = GuidString
-
- ## __hash__
- #
- def __hash__(self):
- return hash(self.GuidCName)
-
- ## __eq__
- #
- def __eq__(self, Other):
- return id(self) == id(Other)
-
- ## __str__
- #
- def __str__(self):
- return self.GuidCName + ' = ' + self.GuidCValue
-
-## DecGuidObject
-#
-# Class for GUID section
-#
-# @param DecGuidObjectBase: Dec Guid Object Base
-#
-class DecGuidObject(DecGuidObjectBase):
- def __init__(self, PkgFullName):
- DecGuidObjectBase.__init__(self, PkgFullName)
- self._SecName = TAB_GUIDS.upper()
-
- ## GetGuids
- #
- # @param Arch: Arch
- #
- def GetGuids(self, Arch=TAB_ARCH_COMMON):
- return self._GetItemByArch(Arch)
-
- ## GetAllGuids
- #
- def GetAllGuids(self):
- return self._GetAllItems()
-
-## DecPpiObject
-#
-# Class for PPI seciont
-#
-# @param DecGuidObjectBase: Dec Guid Object Base
-#
-class DecPpiObject(DecGuidObjectBase):
- def __init__(self, PkgFullName):
- DecGuidObjectBase.__init__(self, PkgFullName)
- self._SecName = TAB_PPIS.upper()
-
- ## GetPpis
- #
- # @param Arch: Arch
- #
- def GetPpis(self, Arch=TAB_ARCH_COMMON):
- return self._GetItemByArch(Arch)
-
- ## GetAllPpis
- #
- def GetAllPpis(self):
- return self._GetAllItems()
-
-## DecProtocolObject
-#
-# Class for protocol section
-#
-# @param DecGuidObjectBase: Dec Guid Object Base
-#
-class DecProtocolObject(DecGuidObjectBase):
- def __init__(self, PkgFullName):
- DecGuidObjectBase.__init__(self, PkgFullName)
- self._SecName = TAB_PROTOCOLS.upper()
-
- ## GetProtocols
- #
- # @param Arch: Arch
- #
- def GetProtocols(self, Arch=TAB_ARCH_COMMON):
- return self._GetItemByArch(Arch)
-
- ## GetAllProtocols
- #
- def GetAllProtocols(self):
- return self._GetAllItems()
-
-## DecUserExtensionObject
-#
-# Class for user extension section
-#
-# @param _DecBaseObject: Dec Guid Object Base
-#
-class DecUserExtensionObject(_DecBaseObject):
- def __init__(self, PkgFullName):
- _DecBaseObject.__init__(self, PkgFullName)
- self._SecName = TAB_USER_EXTENSIONS.upper()
- self.ItemList = []
-
- ## GetProtocols
- #
- # @param Item: Item
- # @param Scope: Scope
- #
- def AddItem(self, Item, Scope):
- if not Scope:
- pass
- if not Item:
- return
- self.ItemList.append(Item)
-
- ## GetAllUserExtensions
- #
- def GetAllUserExtensions(self):
- return self.ItemList
-
-
-## DecUserExtensionItemObject
-# Item for user extension section
-#
-# @param _DecItemBaseObject: Dec Item Base Object
-#
-class DecUserExtensionItemObject(_DecItemBaseObject):
- def __init__(self):
- _DecItemBaseObject.__init__(self)
- self.UserString = ''
- self.UserId = ''
- self.IdString = ''
-
-
-
-