aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/WixToolset.Data/IntermediateFieldValue.cs4
-rw-r--r--src/WixToolset.Data/IntermediateFieldValueExtensions.cs58
-rw-r--r--src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs4
3 files changed, 33 insertions, 33 deletions
diff --git a/src/WixToolset.Data/IntermediateFieldValue.cs b/src/WixToolset.Data/IntermediateFieldValue.cs
index 9a6b6ef5..84a23931 100644
--- a/src/WixToolset.Data/IntermediateFieldValue.cs
+++ b/src/WixToolset.Data/IntermediateFieldValue.cs
@@ -17,11 +17,11 @@ namespace WixToolset.Data
17 17
18 public static explicit operator bool(IntermediateFieldValue value) => value.AsBool(); 18 public static explicit operator bool(IntermediateFieldValue value) => value.AsBool();
19 19
20 public static explicit operator bool? (IntermediateFieldValue value) => value.AsNullableBool(); 20 public static explicit operator bool?(IntermediateFieldValue value) => value.AsNullableBool();
21 21
22 public static explicit operator int(IntermediateFieldValue value) => value.AsNumber(); 22 public static explicit operator int(IntermediateFieldValue value) => value.AsNumber();
23 23
24 public static explicit operator int? (IntermediateFieldValue value) => value.AsNullableNumber(); 24 public static explicit operator int?(IntermediateFieldValue value) => value.AsNullableNumber();
25 25
26 public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) => value.AsPath(); 26 public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) => value.AsPath();
27 27
diff --git a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs
index 317dfc7f..8ff923a7 100644
--- a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs
+++ b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs
@@ -8,17 +8,7 @@ namespace WixToolset.Data
8 { 8 {
9 public static bool AsBool(this IntermediateFieldValue value) 9 public static bool AsBool(this IntermediateFieldValue value)
10 { 10 {
11 var result = value.AsNullableBool(); 11 if (value.Data is bool b)
12 return result.HasValue && result.Value;
13 }
14
15 public static bool? AsNullableBool(this IntermediateFieldValue value)
16 {
17 if (value?.Data == null)
18 {
19 return null;
20 }
21 else if (value.Data is bool b)
22 { 12 {
23 return b; 13 return b;
24 } 14 }
@@ -45,26 +35,26 @@ namespace WixToolset.Data
45 return (bool)value.Data; 35 return (bool)value.Data;
46 } 36 }
47 37
48 public static long AsLargeNumber(this IntermediateFieldValue value) 38 public static bool? AsNullableBool(this IntermediateFieldValue value)
49 { 39 {
50 var result = value.AsNullableLargeNumber(); 40 if (value?.Data == null)
51 return result ?? 0; 41 {
42 return null;
43 }
44
45 return value.AsBool();
52 } 46 }
53 47
54 public static long? AsNullableLargeNumber(this IntermediateFieldValue value) 48 public static long AsLargeNumber(this IntermediateFieldValue value)
55 { 49 {
56 if (value?.Data == null) 50 if (value.Data is long l)
57 { 51 {
58 return null; 52 return l;
59 } 53 }
60 else if (value.Data is int n) 54 else if (value.Data is int n)
61 { 55 {
62 return n; 56 return n;
63 } 57 }
64 else if (value.Data is long l)
65 {
66 return l;
67 }
68 else if (value.Data is bool b) 58 else if (value.Data is bool b)
69 { 59 {
70 return b ? 1 : 0; 60 return b ? 1 : 0;
@@ -84,19 +74,19 @@ namespace WixToolset.Data
84 return (long)value.Data; 74 return (long)value.Data;
85 } 75 }
86 76
87 public static int AsNumber(this IntermediateFieldValue value) 77 public static long? AsNullableLargeNumber(this IntermediateFieldValue value)
88 {
89 var result = value.AsNullableNumber();
90 return result ?? 0;
91 }
92
93 public static int? AsNullableNumber(this IntermediateFieldValue value)
94 { 78 {
95 if (value?.Data == null) 79 if (value?.Data == null)
96 { 80 {
97 return null; 81 return null;
98 } 82 }
99 else if (value.Data is int n) 83
84 return value.AsLargeNumber();
85 }
86
87 public static int AsNumber(this IntermediateFieldValue value)
88 {
89 if (value.Data is int n)
100 { 90 {
101 return n; 91 return n;
102 } 92 }
@@ -123,6 +113,16 @@ namespace WixToolset.Data
123 return (int)value.Data; 113 return (int)value.Data;
124 } 114 }
125 115
116 public static int? AsNullableNumber(this IntermediateFieldValue value)
117 {
118 if (value?.Data == null)
119 {
120 return null;
121 }
122
123 return value.AsNumber();
124 }
125
126 public static IntermediateFieldPathValue AsPath(this IntermediateFieldValue value) 126 public static IntermediateFieldPathValue AsPath(this IntermediateFieldValue value)
127 { 127 {
128 return (IntermediateFieldPathValue)value?.Data; 128 return (IntermediateFieldPathValue)value?.Data;
diff --git a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs
index 1091b715..3070ba04 100644
--- a/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs
+++ b/src/WixToolset.Data/Symbols/WixSimpleReferenceSymbol.cs
@@ -28,7 +28,7 @@ namespace WixToolset.Data.Symbols
28 PrimaryKeys, 28 PrimaryKeys,
29 } 29 }
30 30
31 [DebuggerDisplay("{SymbolicName}")] 31 [DebuggerDisplay("{SymbolicName,nq}")]
32 public class WixSimpleReferenceSymbol : IntermediateSymbol 32 public class WixSimpleReferenceSymbol : IntermediateSymbol
33 { 33 {
34 public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null) 34 public WixSimpleReferenceSymbol() : base(SymbolDefinitions.WixSimpleReference, null, null)
@@ -57,6 +57,6 @@ namespace WixToolset.Data.Symbols
57 /// Gets the symbolic name. 57 /// Gets the symbolic name.
58 /// </summary> 58 /// </summary>
59 /// <value>Symbolic name.</value> 59 /// <value>Symbolic name.</value>
60 public string SymbolicName => String.Concat(this.Table, ":", this.PrimaryKeys); 60 public string SymbolicName => String.Concat("Ref ", this.Table, ":", this.PrimaryKeys);
61 } 61 }
62} \ No newline at end of file 62} \ No newline at end of file