@joebigelow / wix-1 / commits / aea4e48d

Move RestartResource attributes to symbol

Rob Mensching committed Apr 11, 2021 at 12:20 UTC aea4e48d8408689c5749d154dddcfb99ddfb257b
2 files changed +18 -18
src/wixext/Symbols/WixRestartResourceSymbol.cs
+11 -3
@@ -30,6 +30,14 @@ namespace WixToolset.Util.Symbols
30 Attributes,
31 }
32
33 + public enum WixRestartResourceAttributes
34 + {
35 + Filename = 1,
36 + ProcessName,
37 + ServiceName,
38 + TypeMask = 0xf,
39 + }
40 +
41 public class WixRestartResourceSymbol : IntermediateSymbol
42 {
43 public WixRestartResourceSymbol() : base(UtilSymbolDefinitions.WixRestartResource, null, null)
@@ -54,10 +62,10 @@ namespace WixToolset.Util.Symbols
62 set => this.Set((int)WixRestartResourceSymbolFields.Resource, value);
63 }
64
57 - public int Attributes
65 + public WixRestartResourceAttributes? Attributes
66 {
59 - get => this.Fields[(int)WixRestartResourceSymbolFields.Attributes].AsNumber();
60 - set => this.Set((int)WixRestartResourceSymbolFields.Attributes, value);
67 + get => (WixRestartResourceAttributes?)this.Fields[(int)WixRestartResourceSymbolFields.Attributes].AsNullableNumber();
68 + set => this.Set((int)WixRestartResourceSymbolFields.Attributes, (int?)value);
69 }
70 }
71 }
\ No newline at end of file
src/wixext/UtilCompiler.cs
+7 -15
@@ -41,14 +41,6 @@ namespace WixToolset.Util
41 Compatible,
42 }
43
44 - internal enum WixRestartResourceAttributes
45 - {
46 - Filename = 1,
47 - ProcessName,
48 - ServiceName,
49 - TypeMask = 0xf,
50 - }
51 -
44 internal enum WixRemoveFolderExOn
45 {
46 Install = 1,
@@ -2909,7 +2901,7 @@ namespace WixToolset.Util
2901 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
2902 Identifier id = null;
2903 string resource = null;
2912 - var attributes = CompilerConstants.IntegerNotSet;
2904 + WixRestartResourceAttributes? attributes = null;
2905
2906 foreach (var attrib in element.Attributes())
2907 {
@@ -2923,17 +2915,17 @@ namespace WixToolset.Util
2915
2916 case "Path":
2917 resource = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2926 - attributes = (int)WixRestartResourceAttributes.Filename;
2918 + attributes = WixRestartResourceAttributes.Filename;
2919 break;
2920
2921 case "ProcessName":
2922 resource = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2931 - attributes = (int)WixRestartResourceAttributes.ProcessName;
2923 + attributes = WixRestartResourceAttributes.ProcessName;
2924 break;
2925
2926 case "ServiceName":
2927 resource = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2936 - attributes = (int)WixRestartResourceAttributes.ServiceName;
2928 + attributes = WixRestartResourceAttributes.ServiceName;
2929 break;
2930
2931 default:
@@ -2948,14 +2940,14 @@ namespace WixToolset.Util
2940 }
2941
2942 // Validate the attribute.
2951 - if (null == id)
2943 + if (id == null)
2944 {
2945 id = this.ParseHelper.CreateIdentifier("wrr", componentId, resource, attributes.ToString());
2946 }
2947
2956 - if (String.IsNullOrEmpty(resource) || CompilerConstants.IntegerNotSet == attributes)
2948 + if (!attributes.HasValue)
2949 {
2958 - this.Messaging.Write(ErrorMessages.ExpectedAttributes(sourceLineNumbers, element.Name.LocalName, "Path", "ServiceName"));
2950 + this.Messaging.Write(ErrorMessages.ExpectedAttributes(sourceLineNumbers, element.Name.LocalName, "Path", "ProcessName", "ServiceName"));
2951 }
2952
2953 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);