4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# This file is used to create/update/query/erase table for functions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync##
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# Import Modules
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncimport Common.EdkLogger as EdkLogger
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Table import Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncfrom Common.String import ConvertToSqlString
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync## TableFunction
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# This class defined a table used for function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync# @param Table: Inherited from Table class
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncclass TableFunction(Table):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def __init__(self, Cursor):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Table.__init__(self, Cursor)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.Table = 'Function'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## Create table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # Create table Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param ID: ID of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Header: Header of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Modifier: Modifier of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Name: Name of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param ReturnStatement: ReturnStatement of a Funciont
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param StartLine: StartLine of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param StartColumn: StartColumn of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param EndLine: EndLine of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param EndColumn: EndColumn of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param BodyStartLine: StartLine of a Function body
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param BodyStartColumn: StartColumn of a Function body
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param BelongsToFile: The Function belongs to which file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param FunNameStartLine: StartLine of a Function name
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param FunNameStartColumn: StartColumn of a Function name
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def Create(self):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SqlCommand = """create table IF NOT EXISTS %s (ID INTEGER PRIMARY KEY,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Header TEXT,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Modifier VARCHAR,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Name VARCHAR NOT NULL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ReturnStatement VARCHAR,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StartLine INTEGER NOT NULL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync StartColumn INTEGER NOT NULL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EndLine INTEGER NOT NULL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EndColumn INTEGER NOT NULL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BodyStartLine INTEGER NOT NULL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BodyStartColumn INTEGER NOT NULL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BelongsToFile SINGLE NOT NULL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FunNameStartLine INTEGER NOT NULL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FunNameStartColumn INTEGER NOT NULL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )""" % self.Table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Table.Create(self, SqlCommand)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ## Insert table
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # Insert a record into table Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param ID: ID of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Header: Header of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Modifier: Modifier of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param Name: Name of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param ReturnStatement: ReturnStatement of a Funciont
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param StartLine: StartLine of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param StartColumn: StartColumn of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param EndLine: EndLine of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param EndColumn: EndColumn of a Function
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param BodyStartLine: StartLine of a Function body
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param BodyStartColumn: StartColumn of a Function body
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param BelongsToFile: The Function belongs to which file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param FunNameStartLine: StartLine of a Function name
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync # @param FunNameStartColumn: StartColumn of a Function name
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync #
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync def Insert(self, Header, Modifier, Name, ReturnStatement, StartLine, StartColumn, EndLine, EndColumn, BodyStartLine, BodyStartColumn, BelongsToFile, FunNameStartLine, FunNameStartColumn):
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync self.ID = self.ID + 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (Header, Modifier, Name, ReturnStatement) = ConvertToSqlString((Header, Modifier, Name, ReturnStatement))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync SqlCommand = """insert into %s values(%s, '%s', '%s', '%s', '%s', %s, %s, %s, %s, %s, %s, %s, %s, %s)""" \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync % (self.Table, self.ID, Header, Modifier, Name, ReturnStatement, StartLine, StartColumn, EndLine, EndColumn, BodyStartLine, BodyStartColumn, BelongsToFile, FunNameStartLine, FunNameStartColumn)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Table.Insert(self, SqlCommand)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return self.ID