1## @file
2# This file is used to define common class objects for INF file.
3# It will consumed by InfParser
4#
5# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
6#
7# This program and the accompanying materials are licensed and made available
8# under the terms and conditions of the BSD License which accompanies this
9# distribution. The full text of the license may be found at
10# http://opensource.org/licenses/bsd-license.php
11#
12# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15'''
16InfCommonObject
17'''
18
19## InfLineCommentObject
20#
21#  Comment Object for any line in the INF file
22#
23#  #
24#  # HeaderComment
25#  #
26#  Line # TailComment
27#
28class InfLineCommentObject():
29    def __init__(self):
30        self.HeaderComments = ''
31        self.TailComments = ''
32
33    def SetHeaderComments(self, HeaderComments):
34        self.HeaderComments = HeaderComments
35
36    def GetHeaderComments(self):
37        return self.HeaderComments
38
39    def SetTailComments(self, TailComments):
40        self.TailComments = TailComments
41
42    def GetTailComments(self):
43        return self.TailComments
44
45## CurrentLine
46#
47class CurrentLine():
48    def __init__(self):
49        self.LineNo = ''
50        self.LineString = ''
51        self.FileName = ''
52
53    ## SetLineNo
54    #
55    # @param LineNo: LineNo
56    #
57    def SetLineNo(self, LineNo):
58        self.LineNo = LineNo
59
60    ## GetLineNo
61    #
62    def GetLineNo(self):
63        return self.LineNo
64
65    ## SetLineString
66    #
67    # @param LineString: Line String content
68    #
69    def SetLineString(self, LineString):
70        self.LineString = LineString
71
72    ## GetLineString
73    #
74    def GetLineString(self):
75        return self.LineString
76
77    ## SetFileName
78    #
79    # @param FileName: File Name
80    #
81    def SetFileName(self, FileName):
82        self.FileName = FileName
83
84    ## GetFileName
85    #
86    def GetFileName(self):
87        return self.FileName
88
89##
90# Inf Section common data
91#
92class InfSectionCommonDef():
93    def __init__(self):
94        #
95        # #
96        # # HeaderComments at here
97        # #
98        # [xxSection] TailComments at here
99        # data
100        #
101        self.HeaderComments = ''
102        self.TailComments   = ''
103        #
104        # The support arch list of this section
105        #
106        self.SupArchList  = []
107
108        #
109        # Store all section content
110        # Key is supported Arch
111        #
112        self.AllContent   = {}
113
114    ## SetHeaderComments
115    #
116    # @param HeaderComments: HeaderComments
117    #
118    def SetHeaderComments(self, HeaderComments):
119        self.HeaderComments = HeaderComments
120
121    ## GetHeaderComments
122    #
123    def GetHeaderComments(self):
124        return self.HeaderComments
125
126    ## SetTailComments
127    #
128    # @param TailComments: TailComments
129    #
130    def SetTailComments(self, TailComments):
131        self.TailComments = TailComments
132
133    ## GetTailComments
134    #
135    def GetTailComments(self):
136        return self.TailComments
137
138    ## SetSupArchList
139    #
140    # @param Arch: Arch
141    #
142    def SetSupArchList(self, Arch):
143        if Arch not in self.SupArchList:
144            self.SupArchList.append(Arch)
145
146    ## GetSupArchList
147    #
148    def GetSupArchList(self):
149        return self.SupArchList
150
151    ## SetAllContent
152    #
153    # @param ArchList: ArchList
154    # @param Content: Content
155    #
156    def SetAllContent(self, Content):
157        self.AllContent = Content
158
159    ## GetAllContent
160    #
161    def GetAllContent(self):
162        return self.AllContent
163