## @file # This file is used to define each component of FDF file # # Copyright (c) 2008, Intel Corporation. All rights reserved.
# 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. # ## # Import Modules # from FdfParserLite import FdfParser from Table.TableFdf import TableFdf from CommonDataClass.DataClass import MODEL_FILE_FDF, MODEL_PCD, MODEL_META_DATA_COMPONENT from String import NormPath ## FdfObject # # This class defined basic Fdf object which is used by inheriting # # @param object: Inherited from object class # class FdfObject(object): def __init__(self): object.__init__() ## Fdf # # This class defined the structure used in Fdf object # # @param FdfObject: Inherited from FdfObject class # @param Filename: Input value for Ffilename of Fdf file, default is None # @param WorkspaceDir: Input value for current workspace directory, default is None # class Fdf(FdfObject): def __init__(self, Filename = None, IsToDatabase = False, WorkspaceDir = None, Database = None): self.WorkspaceDir = WorkspaceDir self.IsToDatabase = IsToDatabase self.Cur = Database.Cur self.TblFile = Database.TblFile self.TblFdf = Database.TblFdf self.FileID = -1 self.FileList = {} # # Load Fdf file if filename is not None # if Filename != None: self.LoadFdfFile(Filename) # # Insert a FDF file record into database # def InsertFile(self, Filename): FileID = -1 Filename = NormPath(Filename) if Filename not in self.FileList: FileID = self.TblFile.InsertFile(Filename, MODEL_FILE_FDF) self.FileList[Filename] = FileID return self.FileList[Filename] ## Load Fdf file # # Load the file if it exists # # @param Filename: Input value for filename of Fdf file # def LoadFdfFile(self, Filename): FileList = [] # # Parse Fdf file # Filename = NormPath(Filename) Fdf = FdfParser(Filename) Fdf.ParseFile() # # Insert inf file and pcd information # if self.IsToDatabase: (Model, Value1, Value2, Value3, Arch, BelongsToItem, BelongsToFile, StartLine, StartColumn, EndLine, EndColumn, Enabled) = \ (0, '', '', '', 'COMMON', -1, -1, -1, -1, -1, -1, 0) for Index in range(0, len(Fdf.Profile.PcdDict)): pass for Key in Fdf.Profile.PcdDict.keys(): Model = MODEL_PCD Value1 = '' Value2 = ".".join((Key[1], Key[0])) FileName = Fdf.Profile.PcdFileLineDict[Key][0] StartLine = Fdf.Profile.PcdFileLineDict[Key][1] BelongsToFile = self.InsertFile(FileName) self.TblFdf.Insert(Model, Value1, Value2, Value3, Arch, BelongsToItem, BelongsToFile, StartLine, StartColumn, EndLine, EndColumn, Enabled) for Index in range(0, len(Fdf.Profile.InfList)): Model = MODEL_META_DATA_COMPONENT Value1 = Fdf.Profile.InfList[Index] Value2 = '' FileName = Fdf.Profile.InfFileLineList[Index][0] StartLine = Fdf.Profile.InfFileLineList[Index][1] BelongsToFile = self.InsertFile(FileName) self.TblFdf.Insert(Model, Value1, Value2, Value3, Arch, BelongsToItem, BelongsToFile, StartLine, StartColumn, EndLine, EndColumn, Enabled) ## # # This acts like the main() function for the script, unless it is 'import'ed into another # script. # if __name__ == '__main__': pass