diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-09 01:27:55 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-09 01:27:55 +0100 |
commit | e21fa53895f1347674467d9221167e92dcc71214 (patch) | |
tree | 0fa4b7e9df51a8edee938780019ad62732fe8e78 | |
parent | e8f8f80f4ab2324563cf91211e458c218fc7ec5d (diff) | |
download | msitools-e21fa53895f1347674467d9221167e92dcc71214.tar.gz msitools-e21fa53895f1347674467d9221167e92dcc71214.tar.xz msitools-e21fa53895f1347674467d9221167e92dcc71214.zip |
Factor MsiTableSequence code
-rw-r--r-- | src/msi.vala | 90 |
1 files changed, 24 insertions, 66 deletions
diff --git a/src/msi.vala b/src/msi.vala index 336c169..d3900d7 100644 --- a/src/msi.vala +++ b/src/msi.vala @@ -38,13 +38,7 @@ namespace Wixl { } } - class MsiTableAdminExecuteSequence: MsiTable { - static construct { - name = "AdminExecuteSequence"; - sql_create = "CREATE TABLE `AdminExecuteSequence` (`Action` CHAR(72) NOT NULL, `Condition` CHAR(255), `Sequence` INT PRIMARY KEY `Action`)"; - sql_insert = "INSERT INTO `AdminExecuteSequence` (`Action`, `Sequence`) VALUES (?, ?)"; - } - + abstract class MsiTableSequence: MsiTable { public void add (string action, int sequence) throws GLib.Error { var rec = new Libmsi.Record (2); @@ -54,41 +48,41 @@ namespace Wixl { records.append (rec); } + + protected class void set_sequence_table_name (string table) { + name = table; + sql_create = "CREATE TABLE `%s` (`Action` CHAR(72) NOT NULL, `Condition` CHAR(255), `Sequence` INT PRIMARY KEY `Action`)".printf (table); + sql_insert = "INSERT INTO `%s` (`Action`, `Sequence`) VALUES (?, ?)".printf (table); + } } - class MsiTableAdminUISequence: MsiTable { + class MsiTableAdminExecuteSequence: MsiTableSequence { static construct { - name = "AdminUISequence"; - sql_create = "CREATE TABLE `AdminUISequence` (`Action` CHAR(72) NOT NULL, `Condition` CHAR(255), `Sequence` INT PRIMARY KEY `Action`)"; - sql_insert = "INSERT INTO `AdminUISequence` (`Action`, `Sequence`) VALUES (?, ?)"; + set_sequence_table_name ("AdminExecuteSequence"); } + } - public void add (string action, int sequence) throws GLib.Error { - var rec = new Libmsi.Record (2); - - if (!rec.set_string (1, action) || - !rec.set_int (2, sequence)) - throw new Wixl.Error.FAILED ("failed to add record"); - - records.append (rec); + class MsiTableAdminUISequence: MsiTableSequence { + static construct { + set_sequence_table_name ("AdminUISequence"); } } - class MsiTableAdvtExecuteSequence: MsiTable { + class MsiTableAdvtExecuteSequence: MsiTableSequence { static construct { - name = "AdvtExecuteSequence"; - sql_create = "CREATE TABLE `AdvtExecuteSequence` (`Action` CHAR(72) NOT NULL, `Condition` CHAR(255), `Sequence` INT PRIMARY KEY `Action`)"; - sql_insert = "INSERT INTO `AdvtExecuteSequence` (`Action`, `Sequence`) VALUES (?, ?)"; + set_sequence_table_name ("AdvtExecuteSequence"); } + } - public void add (string action, int sequence) throws GLib.Error { - var rec = new Libmsi.Record (2); - - if (!rec.set_string (1, action) || - !rec.set_int (2, sequence)) - throw new Wixl.Error.FAILED ("failed to add record"); + class MsiTableInstallExecuteSequence: MsiTableSequence { + static construct { + set_sequence_table_name ("InstallExecuteSequence"); + } + } - records.append (rec); + class MsiTableInstallUISequence: MsiTableSequence { + static construct { + set_sequence_table_name ("InstallUISequence"); } } @@ -127,42 +121,6 @@ namespace Wixl { } } - class MsiTableInstallExecuteSequence: MsiTable { - static construct { - name = "InstallExecuteSequence"; - sql_create = "CREATE TABLE `InstallExecuteSequence` (`Action` CHAR(72) NOT NULL, `Condition` CHAR(255), `Sequence` INT PRIMARY KEY `Action`)"; - sql_insert = "INSERT INTO `InstallExecuteSequence` (`Action`, `Sequence`) VALUES (?, ?)"; - } - - public void add (string action, int sequence) throws GLib.Error { - var rec = new Libmsi.Record (2); - - if (!rec.set_string (1, action) || - !rec.set_int (2, sequence)) - throw new Wixl.Error.FAILED ("failed to add record"); - - records.append (rec); - } - } - - class MsiTableInstallUISequence: MsiTable { - static construct { - name = "InstallUISequence"; - sql_create = "CREATE TABLE `InstallUISequence` (`Action` CHAR(72) NOT NULL, `Condition` CHAR(255), `Sequence` INT PRIMARY KEY `Action`)"; - sql_insert = "INSERT INTO `InstallUISequence` (`Action`, `Sequence`) VALUES (?, ?)"; - } - - public void add (string action, int sequence) throws GLib.Error { - var rec = new Libmsi.Record (2); - - if (!rec.set_string (1, action) || - !rec.set_int (2, sequence)) - throw new Wixl.Error.FAILED ("failed to add record"); - - records.append (rec); - } - } - class MsiTableMedia: MsiTable { static construct { name = "Media"; |