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);