BaseTools: Use absolute import in Table
[mirror_edk2.git] / BaseTools / Source / Python / Table / TableInf.py
1 ## @file
2 # This file is used to create/update/query/erase table for inf datas
3 #
4 # Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
5 # This program and the accompanying materials
6 # are licensed and made available under the terms and conditions of the BSD License
7 # which accompanies this distribution. The full text of the license may be found at
8 # http://opensource.org/licenses/bsd-license.php
9 #
10 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 #
13
14 ##
15 # Import Modules
16 #
17 from __future__ import absolute_import
18 import Common.EdkLogger as EdkLogger
19 import CommonDataClass.DataClass as DataClass
20 from .Table import Table
21 from Common.StringUtils import ConvertToSqlString
22
23 ## TableInf
24 #
25 # This class defined a table used for data model
26 #
27 # @param object: Inherited from object class
28 #
29 #
30 class TableInf(Table):
31 def __init__(self, Cursor):
32 Table.__init__(self, Cursor)
33 self.Table = 'Inf'
34
35 ## Create table
36 #
37 # Create table Inf
38 #
39 # @param ID: ID of a Inf item
40 # @param Model: Model of a Inf item
41 # @param Value1: Value1 of a Inf item
42 # @param Value2: Value2 of a Inf item
43 # @param Value3: Value3 of a Inf item
44 # @param Value4: Value4 of a Inf item
45 # @param Value5: Value5 of a Inf item
46 # @param Arch: Arch of a Inf item
47 # @param BelongsToItem: The item belongs to which another item
48 # @param BelongsToFile: The item belongs to which dsc file
49 # @param StartLine: StartLine of a Inf item
50 # @param StartColumn: StartColumn of a Inf item
51 # @param EndLine: EndLine of a Inf item
52 # @param EndColumn: EndColumn of a Inf item
53 # @param Enabled: If this item enabled
54 #
55 def Create(self):
56 SqlCommand = """create table IF NOT EXISTS %s (ID INTEGER PRIMARY KEY,
57 Model INTEGER NOT NULL,
58 Value1 VARCHAR NOT NULL,
59 Value2 VARCHAR,
60 Value3 VARCHAR,
61 Value4 VARCHAR,
62 Value5 VARCHAR,
63 Arch VarCHAR,
64 BelongsToItem SINGLE NOT NULL,
65 BelongsToFile SINGLE NOT NULL,
66 StartLine INTEGER NOT NULL,
67 StartColumn INTEGER NOT NULL,
68 EndLine INTEGER NOT NULL,
69 EndColumn INTEGER NOT NULL,
70 Enabled INTEGER DEFAULT 0
71 )""" % self.Table
72 Table.Create(self, SqlCommand)
73
74 ## Insert table
75 #
76 # Insert a record into table Inf
77 #
78 # @param ID: ID of a Inf item
79 # @param Model: Model of a Inf item
80 # @param Value1: Value1 of a Inf item
81 # @param Value2: Value2 of a Inf item
82 # @param Value3: Value3 of a Inf item
83 # @param Value4: Value4 of a Inf item
84 # @param Value5: Value5 of a Inf item
85 # @param Arch: Arch of a Inf item
86 # @param BelongsToItem: The item belongs to which another item
87 # @param BelongsToFile: The item belongs to which dsc file
88 # @param StartLine: StartLine of a Inf item
89 # @param StartColumn: StartColumn of a Inf item
90 # @param EndLine: EndLine of a Inf item
91 # @param EndColumn: EndColumn of a Inf item
92 # @param Enabled: If this item enabled
93 #
94 def Insert(self, Model, Value1, Value2, Value3, Value4, Value5, Arch, BelongsToItem, BelongsToFile, StartLine, StartColumn, EndLine, EndColumn, Enabled):
95 self.ID = self.ID + 1
96 (Value1, Value2, Value3, Value4, Value5, Arch) = ConvertToSqlString((Value1, Value2, Value3, Value4, Value5, Arch))
97 SqlCommand = """insert into %s values(%s, %s, '%s', '%s', '%s', '%s', '%s', '%s', %s, %s, %s, %s, %s, %s, %s)""" \
98 % (self.Table, self.ID, Model, Value1, Value2, Value3, Value4, Value5, Arch, BelongsToItem, BelongsToFile, StartLine, StartColumn, EndLine, EndColumn, Enabled)
99 Table.Insert(self, SqlCommand)
100
101 return self.ID
102
103 ## Query table
104 #
105 # @param Model: The Model of Record
106 #
107 # @retval: A recordSet of all found records
108 #
109 def Query(self, Model):
110 SqlCommand = """select ID, Value1, Value2, Value3, Arch, BelongsToItem, BelongsToFile, StartLine from %s
111 where Model = %s
112 and Enabled > -1""" % (self.Table, Model)
113 EdkLogger.debug(4, "SqlCommand: %s" % SqlCommand)
114 self.Cur.execute(SqlCommand)
115 return self.Cur.fetchall()