| {{#if isOptional}} |
| {{! Just go ahead and assign to the value, stripping the optionality bit off. }} |
| {{>test_value target=target definedValue=definedValue cluster=cluster isOptional=false depth=(incrementDepth depth)}} |
| {{else if isNullable}} |
| {{#if (isLiteralNull definedValue)}} |
| {{target}} = nil; |
| {{else}} |
| {{>test_value target=target definedValue=definedValue cluster=cluster isNullable=false depth=(incrementDepth depth)}} |
| {{/if}} |
| {{else if isArray}} |
| {{ensureIsArray definedValue~}} |
| { |
| NSMutableArray * temp_{{depth}} = [[NSMutableArray alloc] init]; |
| {{#each definedValue}} |
| {{>test_value target=(concat "temp_" ../depth "[" @index "]") definedValue=this cluster=../cluster depth=(incrementDepth ../depth) type=../type isArray=false parent=../parent}} |
| {{/each}} |
| {{target}} = temp_{{depth}}; |
| } |
| {{else}} |
| {{#if_is_struct type}} |
| {{target}} = [[MTR{{asUpperCamelCase cluster}}Cluster{{asUpperCamelCase type}} alloc] init]; |
| {{#zcl_struct_items_by_struct_name type}} |
| {{#if_include_struct_item_value ../definedValue name}} |
| {{! target may be some place where we lost type information (e.g. an |
| id), so add explicit cast when trying to assign to our |
| properties. }} |
| {{>test_value target=(concat "((MTR" (asUpperCamelCase ../cluster) "Cluster" (asUpperCamelCase ../type) " *)" ../target ")." (asStructPropertyName label)) definedValue=(lookup ../definedValue name) cluster=../cluster depth=(incrementDepth ../depth)}} |
| {{/if_include_struct_item_value}} |
| {{/zcl_struct_items_by_struct_name}} |
| |
| {{else}} |
| {{target}} = |
| {{#if (chip_tests_variables_has definedValue)}} |
| [{{definedValue}} copy]; |
| {{else if (chip_tests_config_has definedValue)}} |
| m{{asUpperCamelCase definedValue}}.HasValue() ? |
| {{#if (isCharString type)}} |
| m{{asUpperCamelCase definedValue}}.Value() : @"{{chip_tests_config_get_default_value definedValue}}"; |
| {{else if (isOctetString type)}} |
| {{> octetStringValue value=(chip_tests_config_get_default_value definedValue)}}; |
| {{else}} |
| [NSNumber numberWith{{asObjectiveCNumberType definedValue type false}}:m{{asUpperCamelCase definedValue}}.Value()] : |
| [NSNumber numberWith{{asObjectiveCNumberType definedValue type false}}:{{asTypedExpressionFromObjectiveC (chip_tests_config_get_default_value definedValue) type}}]; |
| {{/if}} |
| {{else}} |
| {{#if (isCharString type)}} |
| @"{{definedValue}}"; |
| {{else if (isOctetString type)}} |
| {{> octetStringValue value=definedValue}}; |
| {{else}} |
| [NSNumber numberWith{{asObjectiveCNumberType definedValue type false}}:{{asTypedExpressionFromObjectiveC definedValue type}}]; |
| {{/if}} |
| {{/if}} |
| {{/if_is_struct}} |
| {{/if}} |