From 1bf4328843d114f30e900a66c7ca1053f90afc1e Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Mon, 1 Jan 2018 14:40:01 -0800 Subject: Make IntermediateField Set() method type-safe --- src/WixToolset.Data/IntermediateTupleExtensions.cs | 81 +++++++++++++++++++--- 1 file changed, 72 insertions(+), 9 deletions(-) (limited to 'src/WixToolset.Data/IntermediateTupleExtensions.cs') diff --git a/src/WixToolset.Data/IntermediateTupleExtensions.cs b/src/WixToolset.Data/IntermediateTupleExtensions.cs index 615c21f9..f5b30d47 100644 --- a/src/WixToolset.Data/IntermediateTupleExtensions.cs +++ b/src/WixToolset.Data/IntermediateTupleExtensions.cs @@ -4,15 +4,6 @@ namespace WixToolset.Data { public static class IntermediateTupleExtensions { - public static IntermediateField Set(this IntermediateTuple tuple, int index, object value) - { - var definition = tuple.Definition.FieldDefinitions[index]; - - var field = tuple.Fields[index].Set(definition, value); - - return tuple.Fields[index] = field; - } - public static bool AsBool(this IntermediateTuple tuple, int index) { return tuple?.Fields[index].AsBool() ?? false; @@ -37,5 +28,77 @@ namespace WixToolset.Data { return tuple?.Fields[index].AsString(); } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, bool value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, bool? value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, long value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, long? value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, int value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, int? value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, IntermediateFieldPathValue value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } + + public static IntermediateField Set(this IntermediateTuple tuple, int index, string value) + { + var definition = tuple.Definition.FieldDefinitions[index]; + + var field = tuple.Fields[index].Set(definition, value); + + return tuple.Fields[index] = field; + } } } -- cgit v1.2.3-55-g6feb