diff options
Diffstat (limited to '')
-rw-r--r-- | src/WixToolset.Core/Compiler.cs | 100 |
1 files changed, 95 insertions, 5 deletions
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs index 3365789f..da0806fb 100644 --- a/src/WixToolset.Core/Compiler.cs +++ b/src/WixToolset.Core/Compiler.cs | |||
@@ -3712,7 +3712,6 @@ namespace WixToolset.Core | |||
3712 | { | 3712 | { |
3713 | case "Column": | 3713 | case "Column": |
3714 | string columnName = null; | 3714 | string columnName = null; |
3715 | var category = String.Empty; | ||
3716 | IntermediateFieldType? columnType = null; | 3715 | IntermediateFieldType? columnType = null; |
3717 | var description = String.Empty; | 3716 | var description = String.Empty; |
3718 | int? keyColumn = null; | 3717 | int? keyColumn = null; |
@@ -3720,6 +3719,7 @@ namespace WixToolset.Core | |||
3720 | var localizable = false; | 3719 | var localizable = false; |
3721 | long? maxValue = null; | 3720 | long? maxValue = null; |
3722 | long? minValue = null; | 3721 | long? minValue = null; |
3722 | WixCustomTableColumnCategoryType? category = null; | ||
3723 | var modularization = WixCustomTableColumnModularizeType.None; | 3723 | var modularization = WixCustomTableColumnModularizeType.None; |
3724 | var nullable = false; | 3724 | var nullable = false; |
3725 | var primaryKey = false; | 3725 | var primaryKey = false; |
@@ -3735,7 +3735,97 @@ namespace WixToolset.Core | |||
3735 | columnName = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, childAttrib); | 3735 | columnName = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, childAttrib); |
3736 | break; | 3736 | break; |
3737 | case "Category": | 3737 | case "Category": |
3738 | category = this.Core.GetAttributeValue(childSourceLineNumbers, childAttrib); | 3738 | var categoryValue = this.Core.GetAttributeValue(childSourceLineNumbers, childAttrib); |
3739 | switch (categoryValue) | ||
3740 | { | ||
3741 | case "text": | ||
3742 | category = WixCustomTableColumnCategoryType.Text; | ||
3743 | break; | ||
3744 | case "upperCase": | ||
3745 | category = WixCustomTableColumnCategoryType.UpperCase; | ||
3746 | break; | ||
3747 | case "lowerCase": | ||
3748 | category = WixCustomTableColumnCategoryType.LowerCase; | ||
3749 | break; | ||
3750 | case "integer": | ||
3751 | category = WixCustomTableColumnCategoryType.Integer; | ||
3752 | break; | ||
3753 | case "doubleInteger": | ||
3754 | category = WixCustomTableColumnCategoryType.DoubleInteger; | ||
3755 | break; | ||
3756 | case "timeDate": | ||
3757 | category = WixCustomTableColumnCategoryType.TimeDate; | ||
3758 | break; | ||
3759 | case "identifier": | ||
3760 | category = WixCustomTableColumnCategoryType.Identifier; | ||
3761 | break; | ||
3762 | case "property": | ||
3763 | category = WixCustomTableColumnCategoryType.Property; | ||
3764 | break; | ||
3765 | case "filename": | ||
3766 | category = WixCustomTableColumnCategoryType.Filename; | ||
3767 | break; | ||
3768 | case "wildCardFilename": | ||
3769 | category = WixCustomTableColumnCategoryType.WildCardFilename; | ||
3770 | break; | ||
3771 | case "path": | ||
3772 | category = WixCustomTableColumnCategoryType.Path; | ||
3773 | break; | ||
3774 | case "paths": | ||
3775 | category = WixCustomTableColumnCategoryType.Paths; | ||
3776 | break; | ||
3777 | case "anyPath": | ||
3778 | category = WixCustomTableColumnCategoryType.AnyPath; | ||
3779 | break; | ||
3780 | case "defaultDir": | ||
3781 | category = WixCustomTableColumnCategoryType.DefaultDir; | ||
3782 | break; | ||
3783 | case "regPath": | ||
3784 | category = WixCustomTableColumnCategoryType.RegPath; | ||
3785 | break; | ||
3786 | case "formatted": | ||
3787 | category = WixCustomTableColumnCategoryType.Formatted; | ||
3788 | break; | ||
3789 | case "formattedSddl": | ||
3790 | category = WixCustomTableColumnCategoryType.FormattedSddl; | ||
3791 | break; | ||
3792 | case "template": | ||
3793 | category = WixCustomTableColumnCategoryType.Template; | ||
3794 | break; | ||
3795 | case "condition": | ||
3796 | category = WixCustomTableColumnCategoryType.Condition; | ||
3797 | break; | ||
3798 | case "guid": | ||
3799 | category = WixCustomTableColumnCategoryType.Guid; | ||
3800 | break; | ||
3801 | case "version": | ||
3802 | category = WixCustomTableColumnCategoryType.Version; | ||
3803 | break; | ||
3804 | case "language": | ||
3805 | category = WixCustomTableColumnCategoryType.Language; | ||
3806 | break; | ||
3807 | case "binary": | ||
3808 | category = WixCustomTableColumnCategoryType.Binary; | ||
3809 | break; | ||
3810 | case "customSource": | ||
3811 | category = WixCustomTableColumnCategoryType.CustomSource; | ||
3812 | break; | ||
3813 | case "cabinet": | ||
3814 | category = WixCustomTableColumnCategoryType.Cabinet; | ||
3815 | break; | ||
3816 | case "shortcut": | ||
3817 | category = WixCustomTableColumnCategoryType.Shortcut; | ||
3818 | break; | ||
3819 | case "": | ||
3820 | break; | ||
3821 | default: | ||
3822 | this.Core.Write(ErrorMessages.IllegalAttributeValue(childSourceLineNumbers, child.Name.LocalName, "Category", categoryValue, | ||
3823 | "text", "upperCase", "lowerCase", "integer", "doubleInteger", "timeDate", "identifier", "property", "filename", | ||
3824 | "wildCardFilename", "path", "paths", "anyPath", "defaultDir", "regPath", "formatted", "formattedSddl", "template", | ||
3825 | "condition", "guid", "version", "language", "binary", "customSource", "cabinet", "shortcut")); | ||
3826 | columnType = IntermediateFieldType.String; // set a value to prevent expected attribute error below. | ||
3827 | break; | ||
3828 | } | ||
3739 | break; | 3829 | break; |
3740 | case "Description": | 3830 | case "Description": |
3741 | description = this.Core.GetAttributeValue(childSourceLineNumbers, childAttrib); | 3831 | description = this.Core.GetAttributeValue(childSourceLineNumbers, childAttrib); |
@@ -3854,11 +3944,11 @@ namespace WixToolset.Core | |||
3854 | } | 3944 | } |
3855 | else if (columnType == IntermediateFieldType.Path) | 3945 | else if (columnType == IntermediateFieldType.Path) |
3856 | { | 3946 | { |
3857 | if (String.IsNullOrEmpty(category)) | 3947 | if (!category.HasValue) |
3858 | { | 3948 | { |
3859 | category = "Binary"; | 3949 | category = WixCustomTableColumnCategoryType.Binary; |
3860 | } | 3950 | } |
3861 | else if (category != "Binary") | 3951 | else if (category != WixCustomTableColumnCategoryType.Binary) |
3862 | { | 3952 | { |
3863 | this.Core.Write(ErrorMessages.ExpectedBinaryCategory(childSourceLineNumbers)); | 3953 | this.Core.Write(ErrorMessages.ExpectedBinaryCategory(childSourceLineNumbers)); |
3864 | } | 3954 | } |