// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
namespace WixToolset.Data.WindowsInstaller.Rows
{
using System;
using WixToolset.Data.Tuples;
///
/// Specialization of a row for the WixBundleExePackage table.
///
public sealed class WixBundleExePackageRow : Row
{
///
/// Creates a WixBundleExePackage row that does not belong to a table.
///
/// Original source lines for this row.
/// TableDefinition this row belongs to and should get its column definitions from.
public WixBundleExePackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) :
base(sourceLineNumbers, tableDef)
{
}
///
/// Creates a WixBundleExePackageRow row that belongs to a table.
///
/// Original source lines for this row.
/// Table this row belongs to and should get its column definitions from.
public WixBundleExePackageRow(SourceLineNumber sourceLineNumbers, Table table) :
base(sourceLineNumbers, table)
{
}
///
/// Gets or sets the foreign key identifier to the ChainPackage row.
///
public string ChainPackageId
{
get { return (string)this.Fields[0].Data; }
set { this.Fields[0].Data = value; }
}
///
/// Gets or sets the raw Exe attributes of a patch.
///
public WixBundleExePackageAttributes Attributes
{
get { return (WixBundleExePackageAttributes)this.Fields[1].Data; }
set { this.Fields[1].Data = value; }
}
///
/// Gets or sets the protcol for the executable package.
///
public string DetectCondition
{
get { return (string)this.Fields[2].Data; }
set { this.Fields[2].Data = value; }
}
///
/// Gets or sets the install command for the executable package.
///
public string InstallCommand
{
get { return (string)this.Fields[3].Data; }
set { this.Fields[3].Data = value; }
}
///
/// Gets or sets the repair command for the executable package.
///
public string RepairCommand
{
get { return (string)this.Fields[4].Data; }
set { this.Fields[4].Data = value; }
}
///
/// Gets or sets the uninstall command for the executable package.
///
public string UninstallCommand
{
get { return (string)this.Fields[5].Data; }
set { this.Fields[5].Data = value; }
}
///
/// Gets or sets the protcol for the executable package.
///
public string ExeProtocol
{
get { return (string)this.Fields[6].Data; }
set { this.Fields[6].Data = value; }
}
///
/// Gets whether the executable package is repairable.
///
public bool Repairable
{
get { return !String.IsNullOrEmpty(this.RepairCommand); }
}
}
}