]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/Python/UPT/Object/POM/CommonObject.py
Sync BaseTools Branch (version r2271) to EDKII main trunk.
[mirror_edk2.git] / BaseTools / Source / Python / UPT / Object / POM / CommonObject.py
1 ## @file
2 # This file is used to define common items of class object
3 #
4 # Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
5 #
6 # This program and the accompanying materials are licensed and made available
7 # under the terms and conditions of the BSD License which accompanies this
8 # distribution. The full text of the license may be found at
9 # http://opensource.org/licenses/bsd-license.php
10 #
11 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 '''
15 Common Object
16 '''
17 from Library.DataType import LANGUAGE_EN_US
18
19 ## HelpTextObject
20 #
21 # @param object: Inherited from object class
22 #
23 class HelpTextObject(object):
24 def __init__(self):
25 self.HelpText = TextObject()
26
27 def SetHelpText(self, HelpText):
28 self.HelpText = HelpText
29
30 def GetHelpText(self):
31 return self.HelpText
32
33 ## HelpTextListObject
34 #
35 # @param object: Inherited from object class
36 #
37 class HelpTextListObject(object):
38 def __init__(self):
39 self.HelpTextList = []
40
41 def SetHelpTextList(self, HelpTextList):
42 self.HelpTextList = HelpTextList
43
44 def GetHelpTextList(self):
45 return self.HelpTextList
46
47 ## CommonPropertiesObject
48 #
49 # This class defined common attribution used in Module/Platform/Package files
50 #
51 # @param object: Inherited from object class
52 # @param Usage: Input value for Usage, default is []
53 # @param FeatureFlag: Input value for FeatureFalg, default is ''
54 # @param SupArchList: Input value for SupArchList, default is []
55 # @param HelpText: Input value for HelpText, default is ''
56 # @param HelpTextList: Input value for HelpTextList, default is []
57 #
58 class CommonPropertiesObject(HelpTextObject, HelpTextListObject):
59 def __init__(self):
60 self.Usage = []
61 self.FeatureFlag = ''
62 self.SupArchList = []
63 HelpTextObject.__init__(self)
64 HelpTextListObject.__init__(self)
65
66 def SetUsage(self, Usage):
67 self.Usage = Usage
68
69 def GetUsage(self):
70 return self.Usage
71
72 def SetFeatureFlag(self, FeatureFlag):
73 self.FeatureFlag = FeatureFlag
74
75 def GetFeatureFlag(self):
76 return self.FeatureFlag
77
78 def SetSupArchList(self, SupArchList):
79 self.SupArchList = SupArchList
80
81 def GetSupArchList(self):
82 return self.SupArchList
83
84 ## CommonHeaderObject
85 #
86 # This class defined common header items used in Module/Platform/Package files
87 #
88 # @param object: Inherited from object class
89 #
90 class CommonHeaderObject(object):
91 def __init__(self):
92 self.Abstract = ''
93 self.Description = ''
94 self.Copyright = ''
95 self.License = ''
96
97 def SetAbstract(self, Abstract):
98 self.Abstract = Abstract
99
100 def GetAbstract(self):
101 return self.Abstract
102
103 def SetDescription(self, Description):
104 self.Description = Description
105
106 def GetDescription(self):
107 return self.Description
108
109 def SetCopyright(self, Copyright):
110 self.Copyright = Copyright
111
112 def GetCopyright(self):
113 return self.Copyright
114
115 def SetLicense(self, License):
116 self.License = License
117
118 def GetLicense(self):
119 return self.License
120
121 ## ClonedRecordObject
122 #
123 # This class defined ClonedRecord items used in Module/Platform/Package files
124 #
125 # @param object: Inherited from object class
126 #
127 class ClonedRecordObject(object):
128 def __init__(self):
129 self.IdNum = 0
130 self.FarGuid = ''
131 self.PackageGuid = ''
132 self.PackageVersion = ''
133 self.ModuleGuid = ''
134 self.ModuleVersion = ''
135
136 def SetId(self, IdNo):
137 self.IdNum = IdNo
138
139 def GetId(self):
140 return self.IdNum
141
142 def SetFarGuid(self, FarGuid):
143 self.FarGuid = FarGuid
144
145 def GetFarGuid(self):
146 return self.FarGuid
147
148 def SetPackageGuid(self, PackageGuid):
149 self.PackageGuid = PackageGuid
150
151 def GetPackageGuid(self):
152 return self.PackageGuid
153
154 def SetPackageVersion(self, PackageVersion):
155 self.PackageVersion = PackageVersion
156
157 def GetPackageVersion(self):
158 return self.PackageVersion
159
160 def SetModuleGuid(self, ModuleGuid):
161 self.ModuleGuid = ModuleGuid
162
163 def GetModuleGuid(self):
164 return self.ModuleGuid
165
166 def SetModuleVersion(self, ModuleVersion):
167 self.ModuleVersion = ModuleVersion
168
169 def GetModuleVersion(self):
170 return self.ModuleVersion
171
172 ## TextObject
173 #
174 # This class defined Text item used in PKG file
175 #
176 # @param object: Inherited from object class
177 #
178 class TextObject(object):
179 def __init__(self):
180 self.Lang = LANGUAGE_EN_US
181 self.String = ''
182
183 def SetLang(self, Lang):
184 self.Lang = Lang
185
186 def GetLang(self):
187 return self.Lang
188
189 def SetString(self, String):
190 self.String = String
191
192 def GetString(self):
193 return self.String
194
195 ## FileNameObject
196 #
197 # This class defined File item used in module, for binary files
198 #
199 # @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
200 #
201 class FileNameObject(CommonPropertiesObject):
202 def __init__(self):
203 self.FileType = ''
204 self.Filename = ''
205 CommonPropertiesObject.__init__(self)
206
207 def SetFileType(self, FileType):
208 self.FileType = FileType
209
210 def GetFileType(self):
211 return self.FileType
212
213 def SetFilename(self, Filename):
214 self.Filename = Filename
215
216 def GetFilename(self):
217 return self.Filename
218
219 ## FileObject
220 #
221 # This class defined File item used in PKG file
222 #
223 # @param object: Inherited from object class
224 #
225 class FileObject(object):
226 def __init__(self):
227 self.Executable = ''
228 self.Uri = ''
229 self.OsType = ''
230
231 def SetExecutable(self, Executable):
232 self.Executable = Executable
233
234 def GetExecutable(self):
235 return self.Executable
236
237 def SetURI(self, URI):
238 self.Uri = URI
239
240 def GetURI(self):
241 return self.Uri
242
243 def SetOS(self, OsType):
244 self.OsType = OsType
245
246 def GetOS(self):
247 return self.OsType
248
249 ##
250 # MiscFileObject is used for xml
251 #
252 # @param CommonHeaderObject: Inherited from CommonHeaderObject class
253 #
254 class MiscFileObject(CommonHeaderObject):
255 def __init__(self):
256 self.Name = ''
257 self.FileList = []
258 CommonHeaderObject.__init__(self)
259
260 def SetName(self, Name):
261 self.Name = Name
262
263 def GetName(self):
264 return self.Name
265
266 def SetFileList(self, FileList):
267 self.FileList = FileList
268
269 def GetFileList(self):
270 return self.FileList
271
272 ##
273 # ToolsObject
274 #
275 class ToolsObject(MiscFileObject):
276 pass
277
278 ## GuidVersionObject
279 #
280 # This class defined GUID/Version items used in PKG file
281 #
282 # @param object: Inherited from object class
283 #
284 class GuidVersionObject(object):
285 def __init__(self):
286 self.Guid = ''
287 self.Version = ''
288
289 def SetGuid(self, Guid):
290 self.Guid = Guid
291
292 def GetGuid(self):
293 return self.Guid
294
295 def SetVersion(self, Version):
296 self.Version = Version
297
298 def GetVersion(self):
299 return self.Version
300
301 ## IdentificationObject
302 #
303 # This class defined Identification items used in Module/Platform/Package files
304 #
305 # @param object: Inherited from object class
306 #
307 class IdentificationObject(GuidVersionObject):
308 def __init__(self):
309 self.Name = ''
310 self.BaseName = ''
311 self.FileName = ''
312 self.FullPath = ''
313 self.RelaPath = ''
314 self.PackagePath = ''
315 self.ModulePath = ''
316 self.CombinePath = ''
317 GuidVersionObject.__init__(self)
318
319 def SetName(self, Name):
320 self.Name = Name
321
322 def GetName(self):
323 return self.Name
324
325 def SetBaseName(self, BaseName):
326 self.BaseName = BaseName
327
328 def GetBaseName(self):
329 return self.BaseName
330
331 def SetFileName(self, FileName):
332 self.FileName = FileName
333
334 def GetFileName(self):
335 return self.FileName
336
337 def SetFullPath(self, FullPath):
338 self.FullPath = FullPath
339
340 def GetFullPath(self):
341 return self.FullPath
342
343 def SetRelaPath(self, RelaPath):
344 self.RelaPath = RelaPath
345
346 def GetRelaPath(self):
347 return self.RelaPath
348
349 def SetPackagePath(self, PackagePath):
350 self.PackagePath = PackagePath
351
352 def GetPackagePath(self):
353 return self.PackagePath
354
355 def SetModulePath(self, ModulePath):
356 self.ModulePath = ModulePath
357
358 def GetModulePath(self):
359 return self.ModulePath
360
361 def SetCombinePath(self, CombinePath):
362 self.CombinePath = CombinePath
363
364 def GetCombinePath(self):
365 return self.CombinePath
366
367 ## GuidProtocolPpiCommonObject
368 #
369 # This class defined Guid, Protocol and Ppi like items used in
370 # Module/Platform/Package files
371 #
372 # @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
373 #
374 class GuidProtocolPpiCommonObject(CommonPropertiesObject):
375 def __init__(self):
376 self.Name = ''
377 self.CName = ''
378 self.Guid = ''
379 self.SupModuleList = []
380 CommonPropertiesObject.__init__(self)
381
382 def SetName(self, Name):
383 self.Name = Name
384
385 def GetName(self):
386 return self.Name
387
388 def SetCName(self, CName):
389 self.CName = CName
390
391 def GetCName(self):
392 return self.CName
393
394 def SetGuid(self, Guid):
395 self.Guid = Guid
396
397 def GetGuid(self):
398 return self.Guid
399
400 def SetSupModuleList(self, SupModuleList):
401 self.SupModuleList = SupModuleList
402
403 def GetSupModuleList(self):
404 return self.SupModuleList
405
406 ## GuidObject
407 #
408 # This class defined Guid item used in Module/Platform/Package files
409 #
410 # @param GuidProtocolPpiCommonObject: GuidProtocolPpiCommonObject
411 #
412 class GuidObject(GuidProtocolPpiCommonObject):
413 def __init__(self):
414 self.VariableName = ''
415 self.GuidTypeList = []
416 GuidProtocolPpiCommonObject.__init__(self)
417 def SetVariableName(self, VariableName):
418 self.VariableName = VariableName
419
420 def GetVariableName(self):
421 return self.VariableName
422
423 def SetGuidTypeList(self, GuidTypeList):
424 self.GuidTypeList = GuidTypeList
425
426 def GetGuidTypeList(self):
427 return self.GuidTypeList
428
429 ## ProtocolObject
430 #
431 # This class defined Protocol item used in Module/Platform/Package files
432 #
433 # @param GuidProtocolPpiCommonObject: Inherited from
434 # GuidProtocolPpiCommonObject
435 #
436 class ProtocolObject(GuidProtocolPpiCommonObject):
437 def __init__(self):
438 self.Notify = False
439 GuidProtocolPpiCommonObject.__init__(self)
440 def SetNotify(self, Notify):
441 self.Notify = Notify
442
443 def GetNotify(self):
444 return self.Notify
445
446 ## PpiObject
447 #
448 # This class defined Ppi item used in Module/Platform/Package files
449 #
450 # @param GuidProtocolPpiCommonObject: Inherited from
451 # GuidProtocolPpiCommonObject
452 #
453 class PpiObject(GuidProtocolPpiCommonObject):
454 def __init__(self):
455 self.Notify = False
456 GuidProtocolPpiCommonObject.__init__(self)
457 def SetNotify(self, Notify):
458 self.Notify = Notify
459
460 def GetNotify(self):
461 return self.Notify
462
463 ## DefineObject
464 #
465 # This class defined item DEFINE used in Module/Platform/Package files
466 #
467 # @param object: Inherited from object class
468 #
469 class DefineClass(object):
470 def __init__(self):
471 self.Define = {}
472
473 ## UserExtensionObject
474 #
475 # @param object: Inherited from object class
476 #
477 class UserExtensionObject(object):
478 def __init__(self):
479 self.UserID = ''
480 self.Identifier = ''
481 #
482 # { Statement : Arch , ... }
483 #
484 self.DefinesDict = {}
485 #
486 # { Arch : Statement , ... }
487 #
488 self.BuildOptionDict = {}
489 self.IncludesDict = {}
490 self.SourcesDict = {}
491 self.BinariesDict = {}
492 #
493 # UserExtension statement from meta-data file [UserExtension] section
494 #
495 self.Statement = ''
496 self.SupArchList = []
497
498 def SetStatement(self, Statement):
499 self.Statement = Statement
500
501 def GetStatement(self):
502 return self.Statement
503
504 def SetSupArchList(self, ArchList):
505 self.SupArchList = ArchList
506
507 def GetSupArchList(self):
508 return self.SupArchList
509
510 def SetUserID(self, UserID):
511 self.UserID = UserID
512
513 def GetUserID(self):
514 return self.UserID
515
516 def SetIdentifier(self, Identifier):
517 self.Identifier = Identifier
518
519 def GetIdentifier(self):
520 return self.Identifier
521
522 def SetDefinesDict(self, DefinesDict):
523 self.DefinesDict = DefinesDict
524
525 def GetDefinesDict(self):
526 return self.DefinesDict
527
528 def SetBuildOptionDict(self, BuildOptionDict):
529 self.BuildOptionDict = BuildOptionDict
530
531 def GetBuildOptionDict(self):
532 return self.BuildOptionDict
533
534 def SetIncludesDict(self, IncludesDict):
535 self.IncludesDict = IncludesDict
536
537 def GetIncludesDict(self):
538 return self.IncludesDict
539
540 def SetSourcesDict(self, SourcesDict):
541 self.SourcesDict = SourcesDict
542
543 def GetSourcesDict(self):
544 return self.SourcesDict
545
546 def SetBinariesDict(self, BinariesDict):
547 self.BinariesDict = BinariesDict
548
549 def GetBinariesDict(self):
550 return self.BinariesDict
551
552 ## LibraryClassObject
553 #
554 # This class defined Library item used in Module/Platform/Package files
555 #
556 # @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
557 #
558 class LibraryClassObject(CommonPropertiesObject):
559 def __init__(self):
560 self.LibraryClass = ''
561 self.IncludeHeader = ''
562 self.SupModuleList = []
563 self.RecommendedInstance = GuidVersionObject()
564 CommonPropertiesObject.__init__(self)
565
566 def SetLibraryClass(self, LibraryClass):
567 self.LibraryClass = LibraryClass
568
569 def GetLibraryClass(self):
570 return self.LibraryClass
571
572 def SetSupModuleList(self, SupModuleList):
573 self.SupModuleList = SupModuleList
574
575 def GetSupModuleList(self):
576 return self.SupModuleList
577
578 def SetIncludeHeader(self, IncludeHeader):
579 self.IncludeHeader = IncludeHeader
580
581 def GetIncludeHeader(self):
582 return self.IncludeHeader
583
584 def SetRecommendedInstance(self, RecommendedInstance):
585 self.RecommendedInstance = RecommendedInstance
586
587 def GetRecommendedInstance(self):
588 return self.RecommendedInstance
589
590
591 ## PcdErrorObject
592 #
593 # @param object: Inherited from object class
594 #
595 class PcdErrorObject(object):
596 def __init__(self):
597 self.ValidValue = ''
598 self.ValidValueLang = ''
599 self.ValidValueRange = ''
600 self.Expression = ''
601 self.ErrorNumber = ''
602 self.ErrorMessageList = []
603
604 def SetValidValue(self, ValidValue):
605 self.ValidValue = ValidValue
606
607 def GetValidValue(self):
608 return self.ValidValue
609
610 def SetValidValueLang(self, ValidValueLang):
611 self.ValidValueLang = ValidValueLang
612
613 def GetValidValueLang(self):
614 return self.ValidValueLang
615
616 def SetValidValueRange(self, ValidValueRange):
617 self.ValidValueRange = ValidValueRange
618
619 def GetValidValueRange(self):
620 return self.ValidValueRange
621
622 def SetExpression(self, Expression):
623 self.Expression = Expression
624
625 def GetExpression(self):
626 return self.Expression
627
628 def SetErrorNumber(self, ErrorNumber):
629 self.ErrorNumber = ErrorNumber
630
631 def GetErrorNumber(self):
632 return self.ErrorNumber
633
634 def SetErrorMessageList(self, ErrorMessageList):
635 self.ErrorMessageList = ErrorMessageList
636
637 def GetErrorMessageList(self):
638 return self.ErrorMessageList
639
640
641 ## IncludeObject
642 #
643 # This class defined Include item used in Module/Platform/Package files
644 #
645 # @param CommonPropertiesObject: Inherited from CommonPropertiesObject class
646 #
647 class IncludeObject(CommonPropertiesObject):
648 def __init__(self):
649 self.FilePath = ''
650 self.ModuleType = ''
651 self.SupModuleList = []
652 self.Comment = ''
653 CommonPropertiesObject.__init__(self)
654
655 def SetFilePath(self, FilePath):
656 self.FilePath = FilePath
657
658 def GetFilePath(self):
659 return self.FilePath
660
661 def SetModuleType(self, ModuleType):
662 self.ModuleType = ModuleType
663
664 def GetModuleType(self):
665 return self.ModuleType
666
667 def SetSupModuleList(self, SupModuleList):
668 self.SupModuleList = SupModuleList
669
670 def GetSupModuleList(self):
671 return self.SupModuleList
672
673 def SetComment(self, Comment):
674 self.Comment = Comment
675
676 def GetComment(self):
677 return self.Comment
678
679 ## PcdObject
680 #
681 # This class defined Pcd item used in Module/Platform/Package files
682 #
683 # @param CName: Input value for CName, default is ''
684 # @param Token: Input value for Token, default is ''
685 # @param TokenSpaceGuidCName: Input value for TokenSpaceGuidCName, default is
686 # ''
687 # @param DatumType: Input value for DatumType, default is ''
688 # @param MaxDatumSize: Input value for MaxDatumSize, default is ''
689 # @param DefaultValue: Input value for DefaultValue, default is ''
690 # @param ItemType: Input value for ItemType, default is ''
691 # @param ValidUsage: Input value for ValidUsage, default is []
692 # @param SkuInfoList: Input value for SkuInfoList, default is {}
693 # @param SupModuleList: Input value for SupModuleList, default is []
694 #
695 class PcdObject(CommonPropertiesObject, HelpTextListObject):
696 def __init__(self):
697 self.PcdCName = ''
698 self.CName = ''
699 self.Token = ''
700 self.TokenSpaceGuidCName = ''
701 self.TokenSpaceGuidValue = ''
702 self.DatumType = ''
703 self.MaxDatumSize = ''
704 self.DefaultValue = ''
705 self.Offset = ''
706 self.ValidUsage = ''
707 self.ItemType = ''
708 self.PcdErrorsList = []
709 self.SupModuleList = []
710 CommonPropertiesObject.__init__(self)
711 HelpTextListObject.__init__(self)
712
713 def SetPcdCName(self, PcdCName):
714 self.PcdCName = PcdCName
715
716 def GetPcdCName(self):
717 return self.PcdCName
718
719 def SetCName(self, CName):
720 self.CName = CName
721
722 def GetCName(self):
723 return self.CName
724
725 def SetToken(self, Token):
726 self.Token = Token
727
728 def GetOffset(self):
729 return self.Offset
730
731 def SetOffset(self, Offset):
732 self.Offset = Offset
733
734 def GetToken(self):
735 return self.Token
736
737 def SetTokenSpaceGuidCName(self, TokenSpaceGuidCName):
738 self.TokenSpaceGuidCName = TokenSpaceGuidCName
739
740 def GetTokenSpaceGuidCName(self):
741 return self.TokenSpaceGuidCName
742
743 def SetTokenSpaceGuidValue(self, TokenSpaceGuidValue):
744 self.TokenSpaceGuidValue = TokenSpaceGuidValue
745
746 def GetTokenSpaceGuidValue(self):
747 return self.TokenSpaceGuidValue
748
749 def SetDatumType(self, DatumType):
750 self.DatumType = DatumType
751
752 def GetDatumType(self):
753 return self.DatumType
754
755 def SetMaxDatumSize(self, MaxDatumSize):
756 self.MaxDatumSize = MaxDatumSize
757
758 def GetMaxDatumSize(self):
759 return self.MaxDatumSize
760
761 def SetDefaultValue(self, DefaultValue):
762 self.DefaultValue = DefaultValue
763
764 def GetDefaultValue(self):
765 return self.DefaultValue
766
767 def SetValidUsage(self, ValidUsage):
768 self.ValidUsage = ValidUsage
769
770 def GetValidUsage(self):
771 return self.ValidUsage
772
773 def SetPcdErrorsList(self, PcdErrorsList):
774 self.PcdErrorsList = PcdErrorsList
775
776 def GetPcdErrorsList(self):
777 return self.PcdErrorsList
778
779 def SetItemType(self, ItemType):
780 self.ItemType = ItemType
781
782 def GetItemType(self):
783 return self.ItemType
784
785 def SetSupModuleList(self, SupModuleList):
786 self.SupModuleList = SupModuleList
787
788 def GetSupModuleList(self):
789 return self.SupModuleList