CloverBootloader/BaseTools/Source/Python/UPT/Object/POM/CommonObject.py
Sergey Isakov b1264ef1e3 changes of BaseTools
Signed-off-by: Sergey Isakov <isakov-sl@bk.ru>
2019-09-04 23:02:41 +03:00

954 lines
25 KiB
Python
Executable File

## @file
# This file is used to define common items of class object
#
# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
'''
Common Object
'''
from Library.DataType import TAB_LANGUAGE_EN_US
## HelpTextObject
#
# @param object: Inherited from object class
#
class HelpTextObject(object):
def __init__(self):
self.HelpText = TextObject()
def SetHelpText(self, HelpText):
self.HelpText = HelpText
def GetHelpText(self):
return self.HelpText
## HelpTextListObject
#
# @param object: Inherited from object class
#
class HelpTextListObject(object):
def __init__(self):
self.HelpTextList = []
def SetHelpTextList(self, HelpTextList):
self.HelpTextList = HelpTextList
def GetHelpTextList(self):
return self.HelpTextList
## PromptListObject
#
# @param object: Inherited from object class
#
class PromptListObject(object):
def __init__(self):
self.PromptList = []
def SetPromptList(self, PromptList):
self.PromptList = PromptList
def GetPromptList(self):
return self.PromptList
## CommonPropertiesObject
#
# This class defined common attribution used in Module/Platform/Package files
#
# @param object: Inherited from object class
# @param Usage: Input value for Usage, default is []
# @param FeatureFlag: Input value for FeatureFalg, default is ''
# @param SupArchList: Input value for SupArchList, default is []
# @param HelpText: Input value for HelpText, default is ''
# @param HelpTextList: Input value for HelpTextList, default is []
#
class CommonPropertiesObject(HelpTextObject, HelpTextListObject):
def __init__(self):
self.Usage = []
self.FeatureFlag = ''
self.SupArchList = []
self.GuidValue = ''
HelpTextObject.__init__(self)
HelpTextListObject.__init__(self)
def SetUsage(self, Usage):
self.Usage = Usage
def GetUsage(self):
return self.Usage
def SetFeatureFlag(self, FeatureFlag):
self.FeatureFlag = FeatureFlag
def GetFeatureFlag(self):
return self.FeatureFlag
def SetSupArchList(self, SupArchList):
self.SupArchList = SupArchList
def GetSupArchList(self):
return self.SupArchList
def SetGuidValue(self, GuidValue):
self.GuidValue = GuidValue
def GetGuidValue(self):
return self.GuidValue
## CommonHeaderObject
#
# This class defined common header items used in Module/Platform/Package files
#
# @param object: Inherited from object class
#
class CommonHeaderObject(object):
def __init__(self):
self.AbstractList = []
self.DescriptionList = []
self.CopyrightList = []
self.LicenseList = []
def SetAbstract(self, Abstract):
if isinstance(Abstract, list):
self.AbstractList = Abstract
else:
self.AbstractList.append(Abstract)
def GetAbstract(self):
return self.AbstractList
def SetDescription(self, Description):
if isinstance(Description, list):
self.DescriptionList = Description
else:
self.DescriptionList.append(Description)
def GetDescription(self):
return self.DescriptionList
def SetCopyright(self, Copyright):
if isinstance(Copyright, list):
self.CopyrightList = Copyright
else:
self.CopyrightList.append(Copyright)
def GetCopyright(self):
return self.CopyrightList
def SetLicense(self, License):
if isinstance(License, list):
self.LicenseList = License
else:
self.LicenseList.append(License)
def GetLicense(self):
return self.LicenseList
## BinaryHeaderObject
#
# This class defined Binary header items used in Module/Platform/Package files
#
# @param object: Inherited from object class
#
class BinaryHeaderObject(object):
def __init__(self):
self.BinaryHeaderAbstractList = []
self.BinaryHeaderDescriptionList = []
self.BinaryHeaderCopyrightList = []
self.BinaryHeaderLicenseList = []
def SetBinaryHeaderAbstract(self, Abstract):
if isinstance(Abstract, list) and Abstract:
self.BinaryHeaderAbstractList = Abstract
elif isinstance(Abstract, tuple) and Abstract[1]:
self.BinaryHeaderAbstractList.append(Abstract)
def GetBinaryHeaderAbstract(self):
return self.BinaryHeaderAbstractList
def SetBinaryHeaderDescription(self, Description):
if isinstance(Description, list) and Description:
self.BinaryHeaderDescriptionList = Description
elif isinstance(Description, tuple) and Description[1]:
self.BinaryHeaderDescriptionList.append(Description)
def GetBinaryHeaderDescription(self):
return self.BinaryHeaderDescriptionList
def SetBinaryHeaderCopyright(self, Copyright):
if isinstance(Copyright, list) and Copyright:
self.BinaryHeaderCopyrightList = Copyright
elif isinstance(Copyright, tuple) and Copyright[1]:
self.BinaryHeaderCopyrightList.append(Copyright)
def GetBinaryHeaderCopyright(self):
return self.BinaryHeaderCopyrightList
def SetBinaryHeaderLicense(self, License):
if isinstance(License, list) and License:
self.BinaryHeaderLicenseList = License
elif isinstance(License, tuple) and License[1]:
self.BinaryHeaderLicenseList.append(License)
def GetBinaryHeaderLicense(self):
return self.BinaryHeaderLicenseList
## ClonedRecordObject
#
# This class defined ClonedRecord items used in Module/Platform/Package files
#
# @param object: Inherited from object class
#
class ClonedRecordObject(object):
def __init__(self):
self.IdNum = 0
self.FarGuid = ''
self.PackageGuid = ''
self.PackageVersion = ''
self.ModuleGuid = ''
self.ModuleVersion = ''
def SetId(self, IdNo):
self.IdNum = IdNo
def GetId(self):
return self.IdNum
def SetFarGuid(self, FarGuid):
self.FarGuid = FarGuid
def GetFarGuid(self):
return self.FarGuid
def SetPackageGuid(self, PackageGuid):
self.PackageGuid = PackageGuid
def GetPackageGuid(self):
return self.PackageGuid
def SetPackageVersion(self, PackageVersion):
self.PackageVersion = PackageVersion
def GetPackageVersion(self):
return self.PackageVersion
def SetModuleGuid(self, ModuleGuid):
self.ModuleGuid = ModuleGuid
def GetModuleGuid(self):
return self.ModuleGuid
def SetModuleVersion(self, ModuleVersion):
self.ModuleVersion = ModuleVersion
def GetModuleVersion(self):
return self.ModuleVersion
## TextObject
#
# This class defined Text item used in PKG file
#
# @param object: Inherited from object class
#
class TextObject(object):
def __init__(self):
self.Lang = TAB_LANGUAGE_EN_US
self.String = ''
def SetLang(self, Lang):
self.Lang = Lang
def GetLang(self):
return self.Lang
def SetString(self, String):
self.String = String
def GetString(self):
return self.String
## FileNameObject
#
# This class defined File item used in module, for binary files
#
# @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
#
class FileNameObject(CommonPropertiesObject):
def __init__(self):
self.FileType = ''
self.Filename = ''
CommonPropertiesObject.__init__(self)
def SetFileType(self, FileType):
self.FileType = FileType
def GetFileType(self):
return self.FileType
def SetFilename(self, Filename):
self.Filename = Filename
def GetFilename(self):
return self.Filename
## FileObject
#
# This class defined File item used in PKG file
#
# @param object: Inherited from object class
#
class FileObject(object):
def __init__(self):
self.Executable = ''
self.Uri = ''
self.OsType = ''
def SetExecutable(self, Executable):
self.Executable = Executable
def GetExecutable(self):
return self.Executable
def SetURI(self, URI):
self.Uri = URI
def GetURI(self):
return self.Uri
def SetOS(self, OsType):
self.OsType = OsType
def GetOS(self):
return self.OsType
##
# MiscFileObject is used for xml
#
# @param CommonHeaderObject: Inherited from CommonHeaderObject class
#
class MiscFileObject(CommonHeaderObject):
def __init__(self):
self.Name = ''
self.FileList = []
CommonHeaderObject.__init__(self)
def SetName(self, Name):
self.Name = Name
def GetName(self):
return self.Name
def SetFileList(self, FileList):
self.FileList = FileList
def GetFileList(self):
return self.FileList
##
# ToolsObject
#
class ToolsObject(MiscFileObject):
pass
## GuidVersionObject
#
# This class defined GUID/Version items used in PKG file
#
# @param object: Inherited from object class
#
class GuidVersionObject(object):
def __init__(self):
self.Guid = ''
self.Version = ''
def SetGuid(self, Guid):
self.Guid = Guid
def GetGuid(self):
return self.Guid
def SetVersion(self, Version):
self.Version = Version
def GetVersion(self):
return self.Version
## IdentificationObject
#
# This class defined Identification items used in Module/Platform/Package files
#
# @param object: Inherited from object class
#
class IdentificationObject(GuidVersionObject):
def __init__(self):
self.Name = ''
self.BaseName = ''
self.FileName = ''
self.FullPath = ''
self.RelaPath = ''
self.PackagePath = ''
self.ModulePath = ''
self.CombinePath = ''
GuidVersionObject.__init__(self)
def SetName(self, Name):
self.Name = Name
def GetName(self):
return self.Name
def SetBaseName(self, BaseName):
self.BaseName = BaseName
def GetBaseName(self):
return self.BaseName
def SetFileName(self, FileName):
self.FileName = FileName
def GetFileName(self):
return self.FileName
def SetFullPath(self, FullPath):
self.FullPath = FullPath
def GetFullPath(self):
return self.FullPath
def SetRelaPath(self, RelaPath):
self.RelaPath = RelaPath
def GetRelaPath(self):
return self.RelaPath
def SetPackagePath(self, PackagePath):
self.PackagePath = PackagePath
def GetPackagePath(self):
return self.PackagePath
def SetModulePath(self, ModulePath):
self.ModulePath = ModulePath
def GetModulePath(self):
return self.ModulePath
def SetCombinePath(self, CombinePath):
self.CombinePath = CombinePath
def GetCombinePath(self):
return self.CombinePath
## GuidProtocolPpiCommonObject
#
# This class defined Guid, Protocol and Ppi like items used in
# Module/Platform/Package files
#
# @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
#
class GuidProtocolPpiCommonObject(CommonPropertiesObject):
def __init__(self):
self.Name = ''
self.CName = ''
self.Guid = ''
self.SupModuleList = []
CommonPropertiesObject.__init__(self)
def SetName(self, Name):
self.Name = Name
def GetName(self):
return self.Name
def SetCName(self, CName):
self.CName = CName
def GetCName(self):
return self.CName
def SetGuid(self, Guid):
self.Guid = Guid
def GetGuid(self):
return self.Guid
def SetSupModuleList(self, SupModuleList):
self.SupModuleList = SupModuleList
def GetSupModuleList(self):
return self.SupModuleList
## GuidObject
#
# This class defined Guid item used in Module/Platform/Package files
#
# @param GuidProtocolPpiCommonObject: GuidProtocolPpiCommonObject
#
class GuidObject(GuidProtocolPpiCommonObject):
def __init__(self):
self.VariableName = ''
self.GuidTypeList = []
GuidProtocolPpiCommonObject.__init__(self)
def SetVariableName(self, VariableName):
self.VariableName = VariableName
def GetVariableName(self):
return self.VariableName
def SetGuidTypeList(self, GuidTypeList):
self.GuidTypeList = GuidTypeList
def GetGuidTypeList(self):
return self.GuidTypeList
## ProtocolObject
#
# This class defined Protocol item used in Module/Platform/Package files
#
# @param GuidProtocolPpiCommonObject: Inherited from
# GuidProtocolPpiCommonObject
#
class ProtocolObject(GuidProtocolPpiCommonObject):
def __init__(self):
self.Notify = False
GuidProtocolPpiCommonObject.__init__(self)
def SetNotify(self, Notify):
self.Notify = Notify
def GetNotify(self):
return self.Notify
## PpiObject
#
# This class defined Ppi item used in Module/Platform/Package files
#
# @param GuidProtocolPpiCommonObject: Inherited from
# GuidProtocolPpiCommonObject
#
class PpiObject(GuidProtocolPpiCommonObject):
def __init__(self):
self.Notify = False
GuidProtocolPpiCommonObject.__init__(self)
def SetNotify(self, Notify):
self.Notify = Notify
def GetNotify(self):
return self.Notify
## DefineObject
#
# This class defined item DEFINE used in Module/Platform/Package files
#
# @param object: Inherited from object class
#
class DefineClass(object):
def __init__(self):
self.Define = {}
## UserExtensionObject
#
# @param object: Inherited from object class
#
class UserExtensionObject(object):
def __init__(self):
self.UserID = ''
self.Identifier = ''
self.BinaryAbstractList = []
self.BinaryDescriptionList = []
self.BinaryCopyrightList = []
self.BinaryLicenseList = []
self.UniLangDefsList = []
#
# { Statement : Arch , ... }
#
self.DefinesDict = {}
#
# { Arch : Statement , ... }
#
self.BuildOptionDict = {}
self.IncludesDict = {}
self.SourcesDict = {}
self.BinariesDict = {}
#
# UserExtension statement from meta-data file [UserExtension] section
#
self.Statement = ''
self.SupArchList = []
def SetStatement(self, Statement):
self.Statement = Statement
def GetStatement(self):
return self.Statement
def SetSupArchList(self, ArchList):
self.SupArchList = ArchList
def GetSupArchList(self):
return self.SupArchList
def SetUserID(self, UserID):
self.UserID = UserID
def GetUserID(self):
return self.UserID
def SetIdentifier(self, Identifier):
self.Identifier = Identifier
def GetIdentifier(self):
return self.Identifier
def SetUniLangDefsList(self, UniLangDefsList):
self.UniLangDefsList = UniLangDefsList
def GetUniLangDefsList(self):
return self.UniLangDefsList
def SetBinaryAbstract(self, BinaryAbstractList):
self.BinaryAbstractList = BinaryAbstractList
def GetBinaryAbstract(self, Lang=None):
if Lang:
for (Key, Value) in self.BinaryAbstractList:
if Key == Lang:
return Value
return None
else:
return self.BinaryAbstractList
def SetBinaryDescription(self, BinaryDescriptionList):
self.BinaryDescriptionList = BinaryDescriptionList
def GetBinaryDescription(self, Lang=None):
if Lang:
for (Key, Value) in self.BinaryDescriptionList:
if Key == Lang:
return Value
return None
else:
return self.BinaryDescriptionList
def SetBinaryCopyright(self, BinaryCopyrightList):
self.BinaryCopyrightList = BinaryCopyrightList
def GetBinaryCopyright(self, Lang=None):
if Lang:
for (Key, Value) in self.BinaryCopyrightList:
if Key == Lang:
return Value
return None
else:
return self.BinaryCopyrightList
def SetBinaryLicense(self, BinaryLicenseList):
self.BinaryLicenseList = BinaryLicenseList
def GetBinaryLicense(self, Lang=None):
if Lang:
for (Key, Value) in self.BinaryLicenseList:
if Key == Lang:
return Value
return None
else:
return self.BinaryLicenseList
def SetDefinesDict(self, DefinesDict):
self.DefinesDict = DefinesDict
def GetDefinesDict(self):
return self.DefinesDict
def SetBuildOptionDict(self, BuildOptionDict):
self.BuildOptionDict = BuildOptionDict
def GetBuildOptionDict(self):
return self.BuildOptionDict
def SetIncludesDict(self, IncludesDict):
self.IncludesDict = IncludesDict
def GetIncludesDict(self):
return self.IncludesDict
def SetSourcesDict(self, SourcesDict):
self.SourcesDict = SourcesDict
def GetSourcesDict(self):
return self.SourcesDict
def SetBinariesDict(self, BinariesDict):
self.BinariesDict = BinariesDict
def GetBinariesDict(self):
return self.BinariesDict
## LibraryClassObject
#
# This class defined Library item used in Module/Platform/Package files
#
# @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
#
class LibraryClassObject(CommonPropertiesObject):
def __init__(self):
self.LibraryClass = ''
self.IncludeHeader = ''
self.SupModuleList = []
self.RecommendedInstance = GuidVersionObject()
CommonPropertiesObject.__init__(self)
def SetLibraryClass(self, LibraryClass):
self.LibraryClass = LibraryClass
def GetLibraryClass(self):
return self.LibraryClass
def SetSupModuleList(self, SupModuleList):
self.SupModuleList = SupModuleList
def GetSupModuleList(self):
return self.SupModuleList
def SetIncludeHeader(self, IncludeHeader):
self.IncludeHeader = IncludeHeader
def GetIncludeHeader(self):
return self.IncludeHeader
def SetRecommendedInstance(self, RecommendedInstance):
self.RecommendedInstance = RecommendedInstance
def GetRecommendedInstance(self):
return self.RecommendedInstance
## PcdErrorObject
#
# @param object: Inherited from object class
#
class PcdErrorObject(object):
def __init__(self):
self.ValidValue = ''
self.ValidValueLang = ''
self.ValidValueRange = ''
self.Expression = ''
self.ErrorNumber = ''
self.ErrorMessageList = []
self.TokenSpaceGuidCName = ''
self.CName = ''
self.FileLine = ''
self.LineNum = 0
def SetValidValue(self, ValidValue):
self.ValidValue = ValidValue
def GetValidValue(self):
return self.ValidValue
def SetValidValueLang(self, ValidValueLang):
self.ValidValueLang = ValidValueLang
def GetValidValueLang(self):
return self.ValidValueLang
def SetValidValueRange(self, ValidValueRange):
self.ValidValueRange = ValidValueRange
def GetValidValueRange(self):
return self.ValidValueRange
def SetExpression(self, Expression):
self.Expression = Expression
def GetExpression(self):
return self.Expression
def SetErrorNumber(self, ErrorNumber):
self.ErrorNumber = ErrorNumber
def GetErrorNumber(self):
return self.ErrorNumber
def SetErrorMessageList(self, ErrorMessageList):
self.ErrorMessageList = ErrorMessageList
def GetErrorMessageList(self):
return self.ErrorMessageList
def SetTokenSpaceGuidCName(self, TokenSpaceGuidCName):
self.TokenSpaceGuidCName = TokenSpaceGuidCName
def GetTokenSpaceGuidCName(self):
return self.TokenSpaceGuidCName
def SetCName(self, CName):
self.CName = CName
def GetCName(self):
return self.CName
def SetFileLine(self, FileLine):
self.FileLine = FileLine
def GetFileLine(self):
return self.FileLine
def SetLineNum(self, LineNum):
self.LineNum = LineNum
def GetLineNum(self):
return self.LineNum
## IncludeObject
#
# This class defined Include item used in Module/Platform/Package files
#
# @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
#
class IncludeObject(CommonPropertiesObject):
def __init__(self):
self.FilePath = ''
self.ModuleType = ''
self.SupModuleList = []
self.Comment = ''
CommonPropertiesObject.__init__(self)
def SetFilePath(self, FilePath):
self.FilePath = FilePath
def GetFilePath(self):
return self.FilePath
def SetModuleType(self, ModuleType):
self.ModuleType = ModuleType
def GetModuleType(self):
return self.ModuleType
def SetSupModuleList(self, SupModuleList):
self.SupModuleList = SupModuleList
def GetSupModuleList(self):
return self.SupModuleList
def SetComment(self, Comment):
self.Comment = Comment
def GetComment(self):
return self.Comment
## PcdObject
#
# This class defined Pcd item used in Module/Platform/Package files
#
# @param CName: Input value for CName, default is ''
# @param Token: Input value for Token, default is ''
# @param TokenSpaceGuidCName: Input value for TokenSpaceGuidCName, default is
# ''
# @param DatumType: Input value for DatumType, default is ''
# @param MaxDatumSize: Input value for MaxDatumSize, default is ''
# @param DefaultValue: Input value for DefaultValue, default is ''
# @param ItemType: Input value for ItemType, default is ''
# @param ValidUsage: Input value for ValidUsage, default is []
# @param SkuInfoList: Input value for SkuInfoList, default is {}
# @param SupModuleList: Input value for SupModuleList, default is []
#
class PcdObject(CommonPropertiesObject, HelpTextListObject, PromptListObject):
def __init__(self):
self.PcdCName = ''
self.CName = ''
self.Token = ''
self.TokenSpaceGuidCName = ''
self.TokenSpaceGuidValue = ''
self.DatumType = ''
self.MaxDatumSize = ''
self.DefaultValue = ''
self.Offset = ''
self.ValidUsage = ''
self.ItemType = ''
self.PcdErrorsList = []
self.SupModuleList = []
CommonPropertiesObject.__init__(self)
HelpTextListObject.__init__(self)
PromptListObject.__init__(self)
def SetPcdCName(self, PcdCName):
self.PcdCName = PcdCName
def GetPcdCName(self):
return self.PcdCName
def SetCName(self, CName):
self.CName = CName
def GetCName(self):
return self.CName
def SetToken(self, Token):
self.Token = Token
def GetOffset(self):
return self.Offset
def SetOffset(self, Offset):
self.Offset = Offset
def GetToken(self):
return self.Token
def SetTokenSpaceGuidCName(self, TokenSpaceGuidCName):
self.TokenSpaceGuidCName = TokenSpaceGuidCName
def GetTokenSpaceGuidCName(self):
return self.TokenSpaceGuidCName
def SetTokenSpaceGuidValue(self, TokenSpaceGuidValue):
self.TokenSpaceGuidValue = TokenSpaceGuidValue
def GetTokenSpaceGuidValue(self):
return self.TokenSpaceGuidValue
def SetDatumType(self, DatumType):
self.DatumType = DatumType
def GetDatumType(self):
return self.DatumType
def SetMaxDatumSize(self, MaxDatumSize):
self.MaxDatumSize = MaxDatumSize
def GetMaxDatumSize(self):
return self.MaxDatumSize
def SetDefaultValue(self, DefaultValue):
self.DefaultValue = DefaultValue
def GetDefaultValue(self):
return self.DefaultValue
def SetValidUsage(self, ValidUsage):
self.ValidUsage = ValidUsage
def GetValidUsage(self):
return self.ValidUsage
def SetPcdErrorsList(self, PcdErrorsList):
self.PcdErrorsList = PcdErrorsList
def GetPcdErrorsList(self):
return self.PcdErrorsList
def SetItemType(self, ItemType):
self.ItemType = ItemType
def GetItemType(self):
return self.ItemType
def SetSupModuleList(self, SupModuleList):
self.SupModuleList = SupModuleList
def GetSupModuleList(self):
return self.SupModuleList