| {{> header excludeZapComment=true}} |
| |
| #import "MTRStructsObjc.h" |
| |
| NS_ASSUME_NONNULL_BEGIN |
| |
| {{#zcl_structs}} |
| {{#if has_no_clusters}} |
| {{> struct_interface_impl cluster="Globals" struct=name}} |
| {{/if}} |
| {{/zcl_structs}} |
| |
| {{#zcl_clusters}} |
| {{#zcl_structs}} |
| {{> struct_interface_impl cluster=parent.name struct=name}} |
| |
| {{! Takes the name of the struct to use as structName. }} |
| {{#*inline "oldNameImpl"}} |
| {{#if (isSupported cluster struct=structName)}} |
| @implementation MTR{{cluster}}Cluster{{structName}} : MTR{{asUpperCamelCase parent.name preserveAcronyms=true}}Cluster{{asUpperCamelCase name preserveAcronyms=true}} |
| {{#zcl_struct_items}} |
| {{#if (isSupported ../cluster struct=../structName structField=(asStructPropertyName label))}} |
| @dynamic {{asStructPropertyName label}}; |
| {{/if}} |
| {{#if (hasOldName ../cluster struct=../structName structField=(asStructPropertyName label))}} |
| {{#if (isSupported ../cluster struct=../structName structField=(oldName ../cluster struct=../structName structField=(asStructPropertyName label)))}} |
| @dynamic {{oldName ../cluster struct=../structName structField=(asStructPropertyName label)}}; |
| {{/if}} |
| {{/if}} |
| {{/zcl_struct_items}} |
| @end |
| {{/if}} |
| {{/inline}} |
| {{! Takes the old name of the struct, if any, as oldStructName. }} |
| {{#*inline "oldNameCheck"}} |
| {{#if (or oldStructName |
| (hasOldName (asUpperCamelCase parent.name preserveAcronyms=true)))}} |
| {{#if oldStructName}} |
| {{> oldNameImpl cluster=(compatClusterNameRemapping parent.name) structName=oldStructName}} |
| {{else}} |
| {{> oldNameImpl cluster=(compatClusterNameRemapping parent.name) structName=(asUpperCamelCase name preserveAcronyms=true)}} |
| {{/if}} |
| {{/if}} |
| {{/inline}} |
| {{> oldNameCheck oldStructName=(oldName (asUpperCamelCase parent.name preserveAcronyms=true) struct=(asUpperCamelCase name preserveAcronyms=true))}} |
| |
| {{/zcl_structs}} |
| |
| {{#zcl_events}} |
| {{#if (isSupported (asUpperCamelCase parent.name preserveAcronyms=true) event=(asUpperCamelCase name preserveAcronyms=true))}} |
| @implementation MTR{{asUpperCamelCase parent.name preserveAcronyms=true}}Cluster{{asUpperCamelCase name preserveAcronyms=true}}Event |
| - (instancetype)init |
| { |
| if (self = [super init]) { |
| {{#zcl_event_fields}} |
| {{#if (isSupported (asUpperCamelCase parent.parent.name preserveAcronyms=true) event=(asUpperCamelCase parent.name preserveAcronyms=true) eventField=(asStructPropertyName name))}} |
| {{>init_struct_member label=name type=type cluster=parent.parent.name}} |
| {{/if}} |
| {{/zcl_event_fields}} |
| } |
| return self; |
| } |
| |
| - (id)copyWithZone:(NSZone * _Nullable)zone |
| { |
| auto other = [[MTR{{asUpperCamelCase parent.name preserveAcronyms=true}}Cluster{{asUpperCamelCase name preserveAcronyms=true}}Event alloc] init]; |
| |
| {{#zcl_event_fields}} |
| {{#if (isSupported (asUpperCamelCase parent.parent.name preserveAcronyms=true) event=(asUpperCamelCase parent.name preserveAcronyms=true) eventField=(asStructPropertyName name))}} |
| other.{{asStructPropertyName name}} = self.{{asStructPropertyName name}}; |
| {{/if}} |
| {{/zcl_event_fields}} |
| |
| return other; |
| } |
| |
| - (NSString *)description |
| { |
| NSString *descriptionString = [NSString stringWithFormat:@"<%@: {{#zcl_event_fields~}} |
| {{~#if (isSupported (asUpperCamelCase parent.parent.name preserveAcronyms=true) event=(asUpperCamelCase parent.name preserveAcronyms=true) eventField=(asStructPropertyName name))~}} |
| {{asStructPropertyName name}}:%@; {{!Just here to keep the preceding space}} |
| {{~/if~}} |
| {{~/zcl_event_fields}}>", NSStringFromClass([self class]){{#zcl_event_fields~}} |
| {{~#if (isSupported (asUpperCamelCase parent.parent.name preserveAcronyms=true) event=(asUpperCamelCase parent.name preserveAcronyms=true) eventField=(asStructPropertyName name))~}} |
| ,{{#if isArray}}_{{asStructPropertyName name}}{{else if (isOctetString type)}}[_{{asStructPropertyName name}} base64EncodedStringWithOptions:0]{{else}}_{{asStructPropertyName name}}{{/if}} |
| {{~/if~}} |
| {{~/zcl_event_fields}}]; |
| return descriptionString; |
| } |
| |
| {{#zcl_event_fields}} |
| {{#if (and (hasOldName (asUpperCamelCase ../parent.name preserveAcronyms=true) event=(asUpperCamelCase ../name preserveAcronyms=true) eventField=(asStructPropertyName name)) |
| (isSupported (asUpperCamelCase ../parent.name preserveAcronyms=true) event=(asUpperCamelCase ../name preserveAcronyms=true) eventField=(oldName (asUpperCamelCase ../parent.name preserveAcronyms=true) event=(asUpperCamelCase ../name preserveAcronyms=true) eventField=(asStructPropertyName name))))}} |
| |
| {{> renamed_struct_field_impl cluster=../parent.name type=type newName=name oldName=(oldName (asUpperCamelCase ../parent.name preserveAcronyms=true) event=(asUpperCamelCase ../name preserveAcronyms=true) eventField=(asStructPropertyName name))}} |
| {{/if}} |
| {{/zcl_event_fields}} |
| @end |
| {{/if}} |
| {{! Takes the name of the event to use as eventName. }} |
| {{#*inline "oldNameImpl"}} |
| {{#if (isSupported cluster event=eventName)}} |
| |
| @implementation MTR{{cluster}}Cluster{{eventName}}Event : MTR{{asUpperCamelCase parent.name preserveAcronyms=true}}Cluster{{asUpperCamelCase name preserveAcronyms=true}}Event |
| {{#zcl_event_fields}} |
| {{#if (isSupported ../cluster event=../eventName eventField=(asStructPropertyName name))}} |
| @dynamic {{asStructPropertyName name}}; |
| {{/if}} |
| {{#if (hasOldName ../cluster event=../eventName eventField=(asStructPropertyName name))}} |
| {{#if (isSupported ../cluster event=../eventName eventField=(oldName ../cluster event=../eventName eventField=(asStructPropertyName name)))}} |
| @dynamic {{oldName ../cluster event=../event eventField=(asStructPropertyName name)}}; |
| {{/if}} |
| {{/if}} |
| {{/zcl_event_fields}} |
| @end |
| {{/if}} |
| {{/inline}} |
| {{! Takes the old name of the event, if any, as oldEventName. }} |
| {{#*inline "oldNameCheck"}} |
| {{#if (or oldEventName |
| (hasOldName (asUpperCamelCase parent.name preserveAcronyms=true)))}} |
| {{#if oldEventName}} |
| {{> oldNameImpl cluster=(compatClusterNameRemapping parent.name) eventName=oldEventName}} |
| {{else}} |
| {{> oldNameImpl cluster=(compatClusterNameRemapping parent.name) eventName=(asUpperCamelCase name preserveAcronyms=true)}} |
| {{/if}} |
| {{/if}} |
| {{/inline}} |
| {{> oldNameCheck oldEventName=(oldName (asUpperCamelCase parent.name preserveAcronyms=true) event=(asUpperCamelCase name preserveAcronyms=true))}} |
| |
| {{/zcl_events}} |
| |
| {{/zcl_clusters}} |
| |
| NS_ASSUME_NONNULL_END |