From 8344787b9048fa9de489467f63f53424ee09665a Mon Sep 17 00:00:00 2001 From: Cliff Chung Date: Tue, 18 Jul 2023 15:03:42 -0700 Subject: [PATCH] Add ReplacementProductList to Resource Monitoring Cluster This adds the implementation to fetch the replacement product list from the aliased resource-monitoring-cluster. It adds support for Hepa and Activated Carbon filter examples. Closes out issues #27802, #27801, #27577 ### Testing I tested this using both the all-clusters-app as well as the resource-monitoring-example-app ``` >>>> hepafiltermonitoring read replacement-product-list 0x1 0x1 DataVersion = 0xd31d0b60, AttributePathIB = { Endpoint = 0x1, Cluster = 0x71, Attribute = 0x0000_0005, } Data = [ { 0x0 = 0, 0x1 = "upc12xhepaxx" (13 chars), }, { 0x0 = 1, 0x1 = "gtin8xhe" (9 chars), }, { 0x0 = 2, 0x1 = "ean13xhepaxxx" (14 chars), }, ], >>>> activatedcarbonfiltermonitoring read replacement-product-list 0x1 0x1 DataVersion = 0xfd145260, AttributePathIB = { Endpoint = 0x1, Cluster = 0x72, Attribute = 0x0000_0005, } Data = [ { 0x0 = 0, 0x1 = "upc12xcarbon" (13 chars), }, { 0x0 = 1, 0x1 = "gtin8xca" (9 chars), }, { 0x0 = 2, 0x1 = "ean13xacarbon" (14 chars), }, ], ``` --- .../all-clusters-app.matter | 6 + .../all-clusters-common/all-clusters-app.zap | 54 +- .../src/resource-monitoring-helper.cpp | 19 +- .../all-clusters-app/linux/main-common.cpp | 3 + .../linux/src/main.cpp | 30 +- ...arbonFilterReplacementProductListManager.h | 52 + ...cHepaFilterReplacementProductListManager.h | 52 + .../resource-monitoring-app.matter | 6 + .../resource-monitoring-app.zap | 32 + .../ActivatedCarbonFilterMonitoring.cpp | 27 + .../src/instances/HepafilterMonitoring.cpp | 28 + src/app/chip_data_model.gni | 1 + .../replacement-product-list-manager.h | 54 + .../resource-monitoring-cluster-objects.h | 51 +- .../resource-monitoring-server.cpp | 94 ++ .../resource-monitoring-server.h | 19 + src/app/tests/suites/certification/PICS.yaml | 18 + .../certification/Test_TC_ACFREMON_1_1.yaml | 15 +- .../certification/Test_TC_ACFREMON_2_1.yaml | 16 + .../certification/Test_TC_HEPAFREMON_1_1.yaml | 15 +- .../certification/Test_TC_HEPAFREMON_2_1.yaml | 16 + .../tests/suites/certification/ci-pics-values | 8 +- .../chip/resource-monitoring-cluster.xml | 25 +- .../zcl/zcl-with-test-extensions.json | 2 + src/app/zap-templates/zcl/zcl.json | 2 + .../data_model/controller-clusters.matter | 36 +- .../CHIPAttributeTLVValueDecoder.cpp | 919 +++++++++-------- .../java/zap-generated/CHIPClientCallbacks.h | 48 +- .../java/zap-generated/CHIPReadCallbacks.cpp | 929 ++++++++++-------- .../chip/devicecontroller/ChipClusters.java | 24 +- .../devicecontroller/ClusterInfoMapping.java | 24 +- .../python/chip/clusters/Objects.py | 108 +- .../app-common/zap-generated/cluster-enums.h | 60 +- .../zap-generated/cluster-objects.h | 142 +-- .../zap-generated/cluster/Commands.h | 48 +- .../cluster/logging/DataModelLogger.cpp | 48 +- 36 files changed, 1905 insertions(+), 1126 deletions(-) create mode 100644 examples/resource-monitoring-app/resource-monitoring-common/include/instances/StaticActivatedCarbonFilterReplacementProductListManager.h create mode 100644 examples/resource-monitoring-app/resource-monitoring-common/include/instances/StaticHepaFilterReplacementProductListManager.h create mode 100644 src/app/clusters/resource-monitoring-server/replacement-product-list-manager.h diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter index a6c71ff1f3ca46..a2a238795825f0 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter @@ -2735,6 +2735,7 @@ server cluster HepaFilterMonitoring = 113 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -2747,6 +2748,7 @@ server cluster HepaFilterMonitoring = 113 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute boolean inPlaceIndicator = 3; attribute nullable epoch_s lastChangedTime = 4; + readonly attribute nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -2781,6 +2783,7 @@ server cluster ActivatedCarbonFilterMonitoring = 114 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -2793,6 +2796,7 @@ server cluster ActivatedCarbonFilterMonitoring = 114 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute boolean inPlaceIndicator = 3; attribute nullable epoch_s lastChangedTime = 4; + readonly attribute nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -6294,6 +6298,7 @@ endpoint 1 { callback attribute changeIndication default = 0; callback attribute inPlaceIndicator; callback attribute lastChangedTime; + callback attribute replacementProductList; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute eventList; @@ -6308,6 +6313,7 @@ endpoint 1 { callback attribute changeIndication default = 0; callback attribute inPlaceIndicator; callback attribute lastChangedTime; + callback attribute replacementProductList; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute eventList; diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap index 76b4c43adb4c06..6a86dbab4e9454 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.zap @@ -16,12 +16,6 @@ } ], "package": [ - { - "pathRelativity": "relativeToZap", - "path": "../../../src/app/zap-templates/app-templates.json", - "type": "gen-templates-json", - "version": "chip-v1" - }, { "pathRelativity": "relativeToZap", "path": "../../../src/app/zap-templates/zcl/zcl-with-test-extensions.json", @@ -29,6 +23,12 @@ "category": "matter", "version": 1, "description": "Matter SDK ZCL data with some extensions" + }, + { + "pathRelativity": "relativeToZap", + "path": "../../../src/app/zap-templates/app-templates.json", + "type": "gen-templates-json", + "version": "chip-v1" } ], "endpointTypes": [ @@ -14498,7 +14498,7 @@ "code": 4, "mfgCode": null, "side": "server", - "type": "OperationalStateStruct", + "type": "OperationalStateEnum", "included": 1, "storageOption": "External", "singleton": 0, @@ -14770,10 +14770,26 @@ "side": "server", "type": "epoch_s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": null, + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ReplacementProductList", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": null, "reportable": 1, "minInterval": 1, "maxInterval": 65534, @@ -15008,10 +15024,26 @@ "side": "server", "type": "epoch_s", "included": 1, - "storageOption": "RAM", + "storageOption": "External", "singleton": 0, "bounded": 0, - "defaultValue": "", + "defaultValue": null, + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, + { + "name": "ReplacementProductList", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": null, "reportable": 1, "minInterval": 1, "maxInterval": 65534, diff --git a/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-helper.cpp b/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-helper.cpp index b0d3e700b0ff1f..237e37275719f7 100644 --- a/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-helper.cpp +++ b/examples/all-clusters-app/all-clusters-common/src/resource-monitoring-helper.cpp @@ -19,6 +19,8 @@ #include #include #include +#include +#include using namespace chip; using namespace chip::app; @@ -26,22 +28,29 @@ using namespace chip::app::Clusters; using namespace chip::app::Clusters::ResourceMonitoring; constexpr std::bitset<4> gHepaFilterFeatureMap{ static_cast(Feature::kCondition) | - static_cast(Feature::kWarning) }; + static_cast(Feature::kWarning) | + static_cast(Feature::kReplacementProductList) }; constexpr std::bitset<4> gActivatedCarbonFeatureMap{ static_cast(Feature::kCondition) | - static_cast(Feature::kWarning) }; + static_cast(Feature::kWarning) | + static_cast(Feature::kReplacementProductList) }; -static HepaFilterMonitoringInstance * gHepafilterInstance; +static HepaFilterMonitoringInstance * gHepaFilterInstance; static ActivatedCarbonFilterMonitoringInstance * gActivatedCarbonFilterInstance; +StaticHepaFilterReplacementProductListManager gHepaFilterReplacementProductListManager; +StaticActivatedCarbonFilterReplacementProductListManager gActivatedCarbonFilterReplacementProductListManager; + void emberAfActivatedCarbonFilterMonitoringClusterInitCallback(chip::EndpointId endpoint) { gActivatedCarbonFilterInstance = new ActivatedCarbonFilterMonitoringInstance( endpoint, static_cast(gActivatedCarbonFeatureMap.to_ulong()), DegradationDirectionEnum::kDown, true); gActivatedCarbonFilterInstance->Init(); + gActivatedCarbonFilterInstance->SetReplacementProductListManagerInstance(&gActivatedCarbonFilterReplacementProductListManager); } void emberAfHepaFilterMonitoringClusterInitCallback(chip::EndpointId endpoint) { - gHepafilterInstance = new HepaFilterMonitoringInstance(endpoint, static_cast(gHepaFilterFeatureMap.to_ulong()), + gHepaFilterInstance = new HepaFilterMonitoringInstance(endpoint, static_cast(gHepaFilterFeatureMap.to_ulong()), DegradationDirectionEnum::kDown, true); - gHepafilterInstance->Init(); + gHepaFilterInstance->Init(); + gHepaFilterInstance->SetReplacementProductListManagerInstance(&gHepaFilterReplacementProductListManager); } diff --git a/examples/all-clusters-app/linux/main-common.cpp b/examples/all-clusters-app/linux/main-common.cpp index f2333ed6fe0722..f01829827dd826 100644 --- a/examples/all-clusters-app/linux/main-common.cpp +++ b/examples/all-clusters-app/linux/main-common.cpp @@ -35,6 +35,9 @@ #include #include +#include +#include + #include using namespace chip; diff --git a/examples/resource-monitoring-app/linux/src/main.cpp b/examples/resource-monitoring-app/linux/src/main.cpp index ebe10708926a55..f074ed79634bf8 100644 --- a/examples/resource-monitoring-app/linux/src/main.cpp +++ b/examples/resource-monitoring-app/linux/src/main.cpp @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include using namespace chip; @@ -29,20 +31,30 @@ using namespace chip::app::Clusters; using namespace chip::app::Clusters::ResourceMonitoring; constexpr std::bitset<4> gHepaFilterFeatureMap{ static_cast(Feature::kCondition) | - static_cast(Feature::kWarning) }; + static_cast(Feature::kWarning) | + static_cast(Feature::kReplacementProductList) }; constexpr std::bitset<4> gActivatedCarbonFeatureMap{ static_cast(Feature::kCondition) | - static_cast(Feature::kWarning) }; + static_cast(Feature::kWarning) | + static_cast(Feature::kReplacementProductList) }; -static HepaFilterMonitoringInstance HepafilterInstance(0x1, static_cast(gHepaFilterFeatureMap.to_ulong()), - DegradationDirectionEnum::kDown, true); -static ActivatedCarbonFilterMonitoringInstance - ActivatedCarbonFilterInstance(0x1, static_cast(gActivatedCarbonFeatureMap.to_ulong()), - DegradationDirectionEnum::kDown, true); +static HepaFilterMonitoringInstance * gHepaFilterInstance; +static ActivatedCarbonFilterMonitoringInstance * gActivatedCarbonFilterInstance; + +StaticHepaFilterReplacementProductListManager gHepaFilterReplacementProductListManager; +StaticActivatedCarbonFilterReplacementProductListManager gActivatedCarbonFilterReplacementProductListManager; void ApplicationInit() { - HepafilterInstance.Init(); - ActivatedCarbonFilterInstance.Init(); + gHepaFilterInstance = new HepaFilterMonitoringInstance(0x1, static_cast(gHepaFilterFeatureMap.to_ulong()), + DegradationDirectionEnum::kDown, true); + gActivatedCarbonFilterInstance = new ActivatedCarbonFilterMonitoringInstance( + 0x1, static_cast(gActivatedCarbonFeatureMap.to_ulong()), DegradationDirectionEnum::kDown, true); + + gHepaFilterInstance->Init(); + gActivatedCarbonFilterInstance->Init(); + + gHepaFilterInstance->SetReplacementProductListManagerInstance(&gHepaFilterReplacementProductListManager); + gActivatedCarbonFilterInstance->SetReplacementProductListManagerInstance(&gActivatedCarbonFilterReplacementProductListManager); } int main(int argc, char * argv[]) diff --git a/examples/resource-monitoring-app/resource-monitoring-common/include/instances/StaticActivatedCarbonFilterReplacementProductListManager.h b/examples/resource-monitoring-app/resource-monitoring-common/include/instances/StaticActivatedCarbonFilterReplacementProductListManager.h new file mode 100644 index 00000000000000..db9ca2dfc5ed45 --- /dev/null +++ b/examples/resource-monitoring-app/resource-monitoring-common/include/instances/StaticActivatedCarbonFilterReplacementProductListManager.h @@ -0,0 +1,52 @@ +/* + * + * Copyright (c) 2023 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include +#include + +using namespace chip::app::Clusters; + +namespace chip { +namespace app { +namespace Clusters { +namespace ResourceMonitoring { + +static const uint8_t kActivatedCarbonFilterReplacementProductListSize = 3; + +/** + * This implementation statically defines the options. + */ + +class StaticActivatedCarbonFilterReplacementProductListManager + : public ReplacementProductListManager +{ +public: + uint8_t Size() override { return kActivatedCarbonFilterReplacementProductListSize; }; + + CHIP_ERROR Next(ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::Type & item) override; + + ~StaticActivatedCarbonFilterReplacementProductListManager() {} +}; + +} // namespace ResourceMonitoring +} // namespace Clusters +} // namespace app +} // namespace chip diff --git a/examples/resource-monitoring-app/resource-monitoring-common/include/instances/StaticHepaFilterReplacementProductListManager.h b/examples/resource-monitoring-app/resource-monitoring-common/include/instances/StaticHepaFilterReplacementProductListManager.h new file mode 100644 index 00000000000000..68094df9089a31 --- /dev/null +++ b/examples/resource-monitoring-app/resource-monitoring-common/include/instances/StaticHepaFilterReplacementProductListManager.h @@ -0,0 +1,52 @@ +/* + * + * Copyright (c) 2023 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include +#include + +using namespace chip::app::Clusters; + +namespace chip { +namespace app { +namespace Clusters { +namespace ResourceMonitoring { + +static const uint8_t kHepaFilterReplacementProductListSize = 3; + +/** + * This implementation statically defines the options. + */ + +class StaticHepaFilterReplacementProductListManager + : public ReplacementProductListManager +{ +public: + uint8_t Size() override { return kHepaFilterReplacementProductListSize; }; + + CHIP_ERROR Next(HepaFilterMonitoring::Structs::ReplacementProductStruct::Type & item) override; + + ~StaticHepaFilterReplacementProductListManager() {} +}; + +} // namespace ResourceMonitoring +} // namespace Clusters +} // namespace app +} // namespace chip diff --git a/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter b/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter index 33710cbe1c87ed..9b036513bcb8ff 100644 --- a/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter +++ b/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter @@ -1519,6 +1519,7 @@ server cluster HepaFilterMonitoring = 113 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -1531,6 +1532,7 @@ server cluster HepaFilterMonitoring = 113 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute boolean inPlaceIndicator = 3; attribute nullable epoch_s lastChangedTime = 4; + readonly attribute nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -1565,6 +1567,7 @@ server cluster ActivatedCarbonFilterMonitoring = 114 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -1577,6 +1580,7 @@ server cluster ActivatedCarbonFilterMonitoring = 114 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute boolean inPlaceIndicator = 3; attribute nullable epoch_s lastChangedTime = 4; + readonly attribute nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -1984,6 +1988,7 @@ endpoint 1 { callback attribute changeIndication default = 0; callback attribute inPlaceIndicator; callback attribute lastChangedTime; + callback attribute replacementProductList; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute eventList; @@ -1998,6 +2003,7 @@ endpoint 1 { callback attribute changeIndication default = 0; callback attribute inPlaceIndicator; callback attribute lastChangedTime; + callback attribute replacementProductList; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute eventList; diff --git a/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.zap b/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.zap index 28fa23e068c377..fc6b03ba7dcd40 100644 --- a/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.zap +++ b/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.zap @@ -6241,6 +6241,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "ReplacementProductList", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": null, + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "GeneratedCommandList", "code": 65528, @@ -6479,6 +6495,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "ReplacementProductList", + "code": 5, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": null, + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "GeneratedCommandList", "code": 65528, diff --git a/examples/resource-monitoring-app/resource-monitoring-common/src/instances/ActivatedCarbonFilterMonitoring.cpp b/examples/resource-monitoring-app/resource-monitoring-common/src/instances/ActivatedCarbonFilterMonitoring.cpp index f22c9590e1c8c3..3d9d35fd0b74fa 100644 --- a/examples/resource-monitoring-app/resource-monitoring-common/src/instances/ActivatedCarbonFilterMonitoring.cpp +++ b/examples/resource-monitoring-app/resource-monitoring-common/src/instances/ActivatedCarbonFilterMonitoring.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -32,10 +33,21 @@ using namespace chip::app::Clusters::ActivatedCarbonFilterMonitoring; using namespace chip::app::Clusters::ResourceMonitoring; using chip::Protocols::InteractionModel::Status; +static chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::Type + sReplacementProductsList[kActivatedCarbonFilterReplacementProductListSize]; + //-- Hepa filter Monitoring Instance methods CHIP_ERROR ActivatedCarbonFilterMonitoringInstance::AppInit() { ChipLogDetail(Zcl, "ActivatedCarbonFilterMonitoringDelegate::Init()"); + + sReplacementProductsList[0].productIdentifierType = ActivatedCarbonFilterMonitoring::ProductIdentifierTypeEnum::kUpc; + sReplacementProductsList[0].productIdentifierValue = "upc12xcarbon"; + sReplacementProductsList[1].productIdentifierType = ActivatedCarbonFilterMonitoring::ProductIdentifierTypeEnum::kGtin8; + sReplacementProductsList[1].productIdentifierValue = "gtin8xca"; + sReplacementProductsList[2].productIdentifierType = ActivatedCarbonFilterMonitoring::ProductIdentifierTypeEnum::kEan; + sReplacementProductsList[2].productIdentifierValue = "ean13xacarbon"; + return CHIP_NO_ERROR; } @@ -50,3 +62,18 @@ Status ActivatedCarbonFilterMonitoringInstance::PostResetCondition() ChipLogDetail(Zcl, "ActivatedCarbonFilterMonitoringInstance::PostResetCondition()"); return Status::Success; } + +CHIP_ERROR StaticActivatedCarbonFilterReplacementProductListManager::Next( + ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::Type & item) +{ + ChipLogDetail(Zcl, "ActivatedCarbonFilterMonitoringInstance::Next()"); + + if (kActivatedCarbonFilterReplacementProductListSize > mIndex) + { + item = sReplacementProductsList[mIndex]; + mIndex++; + return CHIP_NO_ERROR; + } + + return CHIP_ERROR_PROVIDER_LIST_EXHAUSTED; +} diff --git a/examples/resource-monitoring-app/resource-monitoring-common/src/instances/HepafilterMonitoring.cpp b/examples/resource-monitoring-app/resource-monitoring-common/src/instances/HepafilterMonitoring.cpp index ae93411a38b902..d0546f0ebce006 100644 --- a/examples/resource-monitoring-app/resource-monitoring-common/src/instances/HepafilterMonitoring.cpp +++ b/examples/resource-monitoring-app/resource-monitoring-common/src/instances/HepafilterMonitoring.cpp @@ -20,22 +20,36 @@ #include #include #include +#include #include #include +#include #include #include #include #include +#include using namespace chip::app::Clusters; using namespace chip::app::Clusters::HepaFilterMonitoring; using namespace chip::app::Clusters::ResourceMonitoring; using chip::Protocols::InteractionModel::Status; +static chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::Type + sReplacementProductsList[kHepaFilterReplacementProductListSize]; + //-- Hepa filter Monitoring instance methods CHIP_ERROR HepaFilterMonitoringInstance::AppInit() { ChipLogDetail(Zcl, "HepaFilterMonitoringInstance::Init()"); + + sReplacementProductsList[0].productIdentifierType = HepaFilterMonitoring::ProductIdentifierTypeEnum::kUpc; + sReplacementProductsList[0].productIdentifierValue = "upc12xhepaxx"; + sReplacementProductsList[1].productIdentifierType = HepaFilterMonitoring::ProductIdentifierTypeEnum::kGtin8; + sReplacementProductsList[1].productIdentifierValue = "gtin8xhe"; + sReplacementProductsList[2].productIdentifierType = HepaFilterMonitoring::ProductIdentifierTypeEnum::kEan; + sReplacementProductsList[2].productIdentifierValue = "ean13xhepaxxx"; + return CHIP_NO_ERROR; } @@ -50,3 +64,17 @@ Status HepaFilterMonitoringInstance::PostResetCondition() ChipLogDetail(Zcl, "HepaFilterMonitoringInstance::PostResetCondition()"); return Status::Success; } + +CHIP_ERROR StaticHepaFilterReplacementProductListManager::Next(HepaFilterMonitoring::Structs::ReplacementProductStruct::Type & item) +{ + ChipLogDetail(Zcl, "HepaFilterMonitoringInstance::Next()"); + + if (kHepaFilterReplacementProductListSize > mIndex) + { + item = sReplacementProductsList[mIndex]; + mIndex++; + return CHIP_NO_ERROR; + } + + return CHIP_ERROR_PROVIDER_LIST_EXHAUSTED; +} diff --git a/src/app/chip_data_model.gni b/src/app/chip_data_model.gni index e4afdd885195d9..a077babab9dc48 100644 --- a/src/app/chip_data_model.gni +++ b/src/app/chip_data_model.gni @@ -266,6 +266,7 @@ template("chip_data_model") { sources += [ "${_app_root}/clusters/${cluster}/${cluster}.cpp", "${_app_root}/clusters/${cluster}/${cluster}.h", + "${_app_root}/clusters/${cluster}/replacement-product-list-manager.h", "${_app_root}/clusters/${cluster}/resource-monitoring-cluster-objects.cpp", "${_app_root}/clusters/${cluster}/resource-monitoring-cluster-objects.h", ] diff --git a/src/app/clusters/resource-monitoring-server/replacement-product-list-manager.h b/src/app/clusters/resource-monitoring-server/replacement-product-list-manager.h new file mode 100644 index 00000000000000..2e2cac9dfb67be --- /dev/null +++ b/src/app/clusters/resource-monitoring-server/replacement-product-list-manager.h @@ -0,0 +1,54 @@ +/* + * + * Copyright (c) 2023 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#include +#include + +namespace chip { +namespace app { +namespace Clusters { +namespace ResourceMonitoring { + +/** + * Interface to help manage the replacement product list in the Resource Monitoring Cluster. + */ +template +class ReplacementProductListManager +{ +public: + ReplacementProductListManager() {} + virtual ~ReplacementProductListManager() = default; + + void Reset() { mIndex = 0; } + + // Returns total size of Replacement Products List. + virtual uint8_t Size() = 0; + + virtual CHIP_ERROR Next(T & item) = 0; + +protected: + uint8_t mIndex; +}; + +} // namespace ResourceMonitoring +} // namespace Clusters +} // namespace app +} // namespace chip diff --git a/src/app/clusters/resource-monitoring-server/resource-monitoring-cluster-objects.h b/src/app/clusters/resource-monitoring-server/resource-monitoring-cluster-objects.h index f20135f2d6d289..ae13b3046eb8e0 100644 --- a/src/app/clusters/resource-monitoring-server/resource-monitoring-cluster-objects.h +++ b/src/app/clusters/resource-monitoring-server/resource-monitoring-cluster-objects.h @@ -29,7 +29,10 @@ namespace app { namespace Clusters { namespace ResourceMonitoring { -static constexpr std::array AliasedClusters = { 0x0071, 0x0072 }; +#define HEPA_FILTER_CLUSTER_ID 0x0071 +#define ACTIVATED_CARBON_FILTER_CLUSTER_ID 0x0072 + +static constexpr std::array AliasedClusters = { HEPA_FILTER_CLUSTER_ID, ACTIVATED_CARBON_FILTER_CLUSTER_ID }; // Enum for ChangeIndicationEnum enum class ChangeIndicationEnum : uint8_t @@ -57,11 +60,16 @@ enum class DegradationDirectionEnum : uint8_t }; // Bitmap for Feature -enum class Feature : uint32_t +enum class Feature : uint8_t { - kCondition = 0x1, - kWarning = 0x2, - // TODO(#27577): add server support for REP feature (ReplacementProductList) + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, + // All received enum values that are not listed above will be mapped + // to kUnknownEnumValue. This is a helper enum value that should only + // be used by code to process how it handles receiving and unknown + // enum value. This specific should never be transmitted. + kUnknownEnumValue = UINT8_MAX, }; namespace Attributes { @@ -130,6 +138,39 @@ struct TypeInfo static constexpr bool MustUseTimedWrite() { return false; } }; } // namespace LastChangedTime +namespace ReplacementProductList { +static constexpr AttributeId Id = 0x00000005; +} + +namespace HepaFilterReplacementProductList { +struct TypeInfo +{ + using Type = + chip::app::DataModel::List; + using DecodableType = chip::app::DataModel::DecodableList< + chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>; + using DecodableArgType = const chip::app::DataModel::DecodableList< + chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + + static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace HepaFilterReplacementProductList + +namespace ActivatedCarbonFilterReplacementProductList { +struct TypeInfo +{ + using Type = chip::app::DataModel::List< + const chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::Type>; + using DecodableType = chip::app::DataModel::DecodableList< + chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>; + using DecodableArgType = const chip::app::DataModel::DecodableList< + chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + + static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } + static constexpr bool MustUseTimedWrite() { return false; } +}; +} // namespace ActivatedCarbonFilterReplacementProductList namespace GeneratedCommandList { static constexpr AttributeId Id = Globals::Attributes::GeneratedCommandList::Id; diff --git a/src/app/clusters/resource-monitoring-server/resource-monitoring-server.cpp b/src/app/clusters/resource-monitoring-server/resource-monitoring-server.cpp index 0d46c7561041bc..385fe12a466c28 100644 --- a/src/app/clusters/resource-monitoring-server/resource-monitoring-server.cpp +++ b/src/app/clusters/resource-monitoring-server/resource-monitoring-server.cpp @@ -123,6 +123,19 @@ chip::Protocols::InteractionModel::Status Instance::UpdateLastChangedTime(DataMo return Protocols::InteractionModel::Status::Success; } +void Instance::SetReplacementProductListManagerInstance( + ReplacementProductListManager * aReplacementProductListManager) +{ + mHepaFilterReplacementProductListManager = aReplacementProductListManager; +} + +void Instance::SetReplacementProductListManagerInstance( + ReplacementProductListManager * + aReplacementProductListManager) +{ + mActivatedCarbonFilterReplacementProductListManager = aReplacementProductListManager; +} + uint8_t Instance::GetCondition() const { return mCondition; @@ -147,6 +160,18 @@ DataModel::Nullable Instance::GetLastChangedTime() const return mLastChangedTime; } +ReplacementProductListManager * +Instance::GetHepaFilterReplacementProductListManagerInstance() +{ + return mHepaFilterReplacementProductListManager; +} + +ReplacementProductListManager * +Instance::GetActivatedCarbonFilterReplacementProductListManagerInstance() +{ + return mActivatedCarbonFilterReplacementProductListManager; +} + Status Instance::OnResetCondition() { ChipLogDetail(Zcl, "ResourceMonitoringServer::OnResetCondition()"); @@ -232,6 +257,60 @@ CHIP_ERROR Instance::EnumerateAcceptedCommands(const ConcreteClusterPath & clust return CHIP_NO_ERROR; } +CHIP_ERROR Instance::ReadHepaFilterReplacableProductList(AttributeValueEncoder & aEncoder) +{ + CHIP_ERROR err; + if (Instance::HasFeature(ResourceMonitoring::Feature::kReplacementProductList)) + { + ReplacementProductListManager * instance = + Instance::GetHepaFilterReplacementProductListManagerInstance(); + if (nullptr == instance) + { + aEncoder.EncodeEmptyList(); + return CHIP_NO_ERROR; + } + + instance->Reset(); + + err = aEncoder.EncodeList([&](const auto & encoder) -> CHIP_ERROR { + HepaFilterMonitoring::Structs::ReplacementProductStruct::Type replacementProductStruct; + while (instance->Next(replacementProductStruct) == CHIP_NO_ERROR) + { + ReturnErrorOnFailure(encoder.Encode(replacementProductStruct)); + } + return CHIP_NO_ERROR; + }); + } + return CHIP_NO_ERROR; +} + +CHIP_ERROR Instance::ReadActivatedCarbonFilterReplacableProductList(AttributeValueEncoder & aEncoder) +{ + CHIP_ERROR err; + if (Instance::HasFeature(ResourceMonitoring::Feature::kReplacementProductList)) + { + ReplacementProductListManager * instance = + Instance::GetActivatedCarbonFilterReplacementProductListManagerInstance(); + if (nullptr == instance) + { + aEncoder.EncodeEmptyList(); + return CHIP_NO_ERROR; + } + + instance->Reset(); + + err = aEncoder.EncodeList([&](const auto & encoder) -> CHIP_ERROR { + ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::Type replacementProductStruct; + while (instance->Next(replacementProductStruct) == CHIP_NO_ERROR) + { + ReturnErrorOnFailure(encoder.Encode(replacementProductStruct)); + } + return CHIP_NO_ERROR; + }); + } + return CHIP_NO_ERROR; +} + // Implements the read functionality for non-standard attributes. CHIP_ERROR Instance::Read(const ConcreteReadAttributePath & aPath, AttributeValueEncoder & aEncoder) { @@ -261,6 +340,21 @@ CHIP_ERROR Instance::Read(const ConcreteReadAttributePath & aPath, AttributeValu ReturnErrorOnFailure(aEncoder.Encode(mLastChangedTime)); break; } + case Attributes::ReplacementProductList::Id: { + switch (mClusterId) + { + case HEPA_FILTER_CLUSTER_ID: + return ReadHepaFilterReplacableProductList(aEncoder); + break; + case ACTIVATED_CARBON_FILTER_CLUSTER_ID: + return ReadActivatedCarbonFilterReplacableProductList(aEncoder); + break; + default: + return CHIP_ERROR_NOT_IMPLEMENTED; + break; + } + break; + } } return CHIP_NO_ERROR; } diff --git a/src/app/clusters/resource-monitoring-server/resource-monitoring-server.h b/src/app/clusters/resource-monitoring-server/resource-monitoring-server.h index cc846bab94420d..8534f5f9df9aed 100644 --- a/src/app/clusters/resource-monitoring-server/resource-monitoring-server.h +++ b/src/app/clusters/resource-monitoring-server/resource-monitoring-server.h @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -68,12 +69,18 @@ class Instance : public CommandHandlerInterface, public AttributeAccessInterface chip::Protocols::InteractionModel::Status UpdateInPlaceIndicator(bool aNewInPlaceIndicator); chip::Protocols::InteractionModel::Status UpdateLastChangedTime(DataModel::Nullable aNewLastChangedTime); + void SetReplacementProductListManagerInstance( + ReplacementProductListManager * instance); + void SetReplacementProductListManagerInstance( + ReplacementProductListManager * instance); + // Attribute getters uint8_t GetCondition() const; ChangeIndicationEnum GetChangeIndication() const; DegradationDirectionEnum GetDegradationDirection() const; bool GetInPlaceIndicator() const; DataModel::Nullable GetLastChangedTime() const; + EndpointId GetEndpointId() const { return mEndpointId; } /** @@ -161,11 +168,23 @@ class Instance : public CommandHandlerInterface, public AttributeAccessInterface ChangeIndicationEnum mChangeIndication = ChangeIndicationEnum::kOk; bool mInPlaceIndicator = true; DataModel::Nullable mLastChangedTime; + ReplacementProductListManager * + mHepaFilterReplacementProductListManager; + ReplacementProductListManager * + mActivatedCarbonFilterReplacementProductListManager; uint32_t mFeatureMap; bool mResetConditionCommandSupported = false; + ReplacementProductListManager * + GetHepaFilterReplacementProductListManagerInstance(); + ReplacementProductListManager * + GetActivatedCarbonFilterReplacementProductListManagerInstance(); + + CHIP_ERROR ReadHepaFilterReplacableProductList(AttributeValueEncoder & aEncoder); + CHIP_ERROR ReadActivatedCarbonFilterReplacableProductList(AttributeValueEncoder & aEncoder); + // CommandHandlerInterface void InvokeCommand(HandlerContext & ctx) override; CHIP_ERROR EnumerateAcceptedCommands(const ConcreteClusterPath & cluster, CommandIdCallback callback, void * context) override; diff --git a/src/app/tests/suites/certification/PICS.yaml b/src/app/tests/suites/certification/PICS.yaml index d4827a466a7bfe..aed7cf769d72fc 100644 --- a/src/app/tests/suites/certification/PICS.yaml +++ b/src/app/tests/suites/certification/PICS.yaml @@ -3880,6 +3880,12 @@ PICS: - label: "Does the device implement the InPlaceIndicator attribute?" id: HEPAFREMON.S.A0003 + - label: "Does the device implement the LastChangedTime attribute?" + id: HEPAFREMON.S.A0004 + + - label: "Does the device implement the ReplacementProductList attribute?" + id: HEPAFREMON.S.A0005 + # # server / features # @@ -3889,6 +3895,9 @@ PICS: - label: "Does the device support the Warning feature?" id: HEPAFREMON.S.F01 + - label: "Does the device support the ReplacementProductList feature?" + id: HEPAFREMON.S.F02 + # # server / commandsReceived # @@ -3921,6 +3930,12 @@ PICS: - label: "Does the device implement the InPlaceIndicator attribute?" id: ACFREMON.S.A0003 + - label: "Does the device implement the LastChangedTime attribute?" + id: ACFREMON.S.A0004 + + - label: "Does the device implement the ReplacementProductList attribute?" + id: ACFREMON.S.A0005 + # # server / features # @@ -3930,6 +3945,9 @@ PICS: - label: "Does the device support the Warning feature?" id: ACFREMON.S.F01 + - label: "Does the device support the ReplacementProductList feature?" + id: ACFREMON.S.F02 + # # server / commandsReceived # diff --git a/src/app/tests/suites/certification/Test_TC_ACFREMON_1_1.yaml b/src/app/tests/suites/certification/Test_TC_ACFREMON_1_1.yaml index 1e6d2f87c4074a..57ccc4d9771c7b 100644 --- a/src/app/tests/suites/certification/Test_TC_ACFREMON_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACFREMON_1_1.yaml @@ -42,7 +42,7 @@ tests: - label: "Read the global attribute: FeatureMap" command: "readAttribute" attribute: "FeatureMap" - PICS: "!ACFREMON.S.F00 && !ACFREMON.S.F01" + PICS: "!ACFREMON.S.F00 && !ACFREMON.S.F01 && !ACFREMON.S.F02" response: value: 0 constraints: @@ -70,6 +70,17 @@ tests: type: bitmap32 hasMasksSet: [0x2] + - label: + "Given ACFREMON.S.F01(ReplacementProductList) ensure featuremap has + the correct bit set" + command: "readAttribute" + attribute: "FeatureMap" + PICS: ACFREMON.S.F02 + response: + constraints: + type: bitmap32 + hasMasksSet: [0x3] + - label: "Read the global attribute: AttributeList" command: "readAttribute" attribute: "AttributeList" @@ -86,7 +97,7 @@ tests: response: constraints: type: list - contains: [0, 1] + contains: [0, 1, 2] - label: "Read the optional attribute InPlaceIndicator (ACFREMON.S.A0002) in diff --git a/src/app/tests/suites/certification/Test_TC_ACFREMON_2_1.yaml b/src/app/tests/suites/certification/Test_TC_ACFREMON_2_1.yaml index b3a1fa14045a8b..34cc891179d22a 100644 --- a/src/app/tests/suites/certification/Test_TC_ACFREMON_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_ACFREMON_2_1.yaml @@ -68,3 +68,19 @@ tests: response: constraints: type: boolean + + - label: "TH reads from the DUT the LastChangedTime attribute" + PICS: ACFREMON.S.A0004 + command: "readAttribute" + attribute: "LastChangedTime" + response: + constraints: + type: epoch_s + + - label: "TH reads from the DUT the ReplacementProductList attribute" + PICS: ACFREMON.S.A0005 + command: "readAttribute" + attribute: "ReplacementProductList" + response: + constraints: + type: list diff --git a/src/app/tests/suites/certification/Test_TC_HEPAFREMON_1_1.yaml b/src/app/tests/suites/certification/Test_TC_HEPAFREMON_1_1.yaml index d783404ad34534..80f3b8e69c66f1 100644 --- a/src/app/tests/suites/certification/Test_TC_HEPAFREMON_1_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_HEPAFREMON_1_1.yaml @@ -42,7 +42,7 @@ tests: - label: "Read the global attribute: FeatureMap" command: "readAttribute" attribute: "FeatureMap" - PICS: "!HEPAFREMON.S.F00 && !HEPAFREMON.S.F01" + PICS: "!HEPAFREMON.S.F00 && !HEPAFREMON.S.F01 && !HEPAFREMON.S.F02" response: value: 0 constraints: @@ -70,6 +70,17 @@ tests: type: bitmap32 hasMasksSet: [0x2] + - label: + "Given HEPAFREMON.S.F02(ReplacementProductList) ensure featuremap has + the correct bit set" + command: "readAttribute" + attribute: "FeatureMap" + PICS: HEPAFREMON.S.F02 + response: + constraints: + type: bitmap32 + hasMasksSet: [0x3] + - label: "Read the global attribute: AttributeList" command: "readAttribute" attribute: "AttributeList" @@ -87,7 +98,7 @@ tests: response: constraints: type: list - contains: [0, 1] + contains: [0, 1, 2] - label: "Read the optional attribute InPlaceIndicator (HEPAFREMON.S.A0002) in diff --git a/src/app/tests/suites/certification/Test_TC_HEPAFREMON_2_1.yaml b/src/app/tests/suites/certification/Test_TC_HEPAFREMON_2_1.yaml index af9f1c26218e71..11471579d29b93 100644 --- a/src/app/tests/suites/certification/Test_TC_HEPAFREMON_2_1.yaml +++ b/src/app/tests/suites/certification/Test_TC_HEPAFREMON_2_1.yaml @@ -68,3 +68,19 @@ tests: response: constraints: type: boolean + + - label: "TH reads from the DUT the LastChangedTime attribute" + PICS: HEPAFREMON.S.A0004 + command: "readAttribute" + attribute: "LastChangedTime" + response: + constraints: + type: epoch_s + + - label: "TH reads from the DUT the ReplacementProductList attribute" + PICS: HEPAFREMON.S.A0005 + command: "readAttribute" + attribute: "ReplacementProductList" + response: + constraints: + type: list diff --git a/src/app/tests/suites/certification/ci-pics-values b/src/app/tests/suites/certification/ci-pics-values index a2779de3cf5cd9..bee30cf811dfa1 100644 --- a/src/app/tests/suites/certification/ci-pics-values +++ b/src/app/tests/suites/certification/ci-pics-values @@ -2157,10 +2157,13 @@ HEPAFREMON.S=1 HEPAFREMON.C=0 HEPAFREMON.S.F00=1 HEPAFREMON.S.F01=1 +HEPAFREMON.S.F02=1 HEPAFREMON.S.A0000=1 HEPAFREMON.S.A0001=1 HEPAFREMON.S.A0002=1 HEPAFREMON.S.A0003=1 +HEPAFREMON.S.A0004=1 +HEPAFREMON.S.A0005=1 HEPAFREMON.S.C00.Rsp=0 # Activated Carbon Filter Monitoring Cluster @@ -2168,10 +2171,13 @@ ACFREMON.S=1 ACFREMON.C=0 ACFREMON.S.F00=1 ACFREMON.S.F01=1 +ACFREMON.S.F02=1 ACFREMON.S.A0000=1 ACFREMON.S.A0001=1 ACFREMON.S.A0002=1 ACFREMON.S.A0003=1 +ACFREMON.S.A0004=1 +ACFREMON.S.A0005=1 ACFREMON.S.C00.Rsp=0 # Air Quality @@ -2527,4 +2533,4 @@ RVCCLEANMS.S.A0005=1 #Commands: RVCCLEANMS.S.C00.Rsp=1 RVCCLEANMS.S.C01.Rsp=1 -RVCCLEANMS.S.C03.Tx=1 \ No newline at end of file +RVCCLEANMS.S.C03.Tx=1 diff --git a/src/app/zap-templates/zcl/data-model/chip/resource-monitoring-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/resource-monitoring-cluster.xml index b4776d5c1fb54d..7c7d05186c9a32 100644 --- a/src/app/zap-templates/zcl/data-model/chip/resource-monitoring-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/resource-monitoring-cluster.xml @@ -31,7 +31,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -54,7 +54,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -77,7 +77,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -100,7 +100,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -123,7 +123,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -146,7 +146,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -169,7 +169,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -192,7 +192,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -215,7 +215,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -238,7 +238,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -261,7 +261,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -284,7 +284,7 @@ limitations under the License. ChangeIndication InPlaceIndicator LastChangedTime - ReplacementProductList + ReplacementProductList @@ -308,6 +308,7 @@ limitations under the License. + diff --git a/src/app/zap-templates/zcl/zcl-with-test-extensions.json b/src/app/zap-templates/zcl/zcl-with-test-extensions.json index cb0910fc0910c8..d1fa1fe09f9f7b 100644 --- a/src/app/zap-templates/zcl/zcl-with-test-extensions.json +++ b/src/app/zap-templates/zcl/zcl-with-test-extensions.json @@ -324,6 +324,7 @@ "ChangeIndication", "InPlaceIndicator", "LastChangedTime", + "ReplacementProductList", "FeatureMap" ], "HEPA Filter Monitoring": [ @@ -332,6 +333,7 @@ "ChangeIndication", "InPlaceIndicator", "LastChangedTime", + "ReplacementProductList", "FeatureMap" ] }, diff --git a/src/app/zap-templates/zcl/zcl.json b/src/app/zap-templates/zcl/zcl.json index fe4753092f1d67..c93d48bb05f7d6 100644 --- a/src/app/zap-templates/zcl/zcl.json +++ b/src/app/zap-templates/zcl/zcl.json @@ -322,6 +322,7 @@ "ChangeIndication", "InPlaceIndicator", "LastChangedTime", + "ReplacementProductList", "FeatureMap" ], "HEPA Filter Monitoring": [ @@ -330,6 +331,7 @@ "ChangeIndication", "InPlaceIndicator", "LastChangedTime", + "ReplacementProductList", "FeatureMap" ] }, diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index db6f89b02be15c..1a8c6710effe5e 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -3468,6 +3468,7 @@ client cluster HepaFilterMonitoring = 113 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3480,7 +3481,7 @@ client cluster HepaFilterMonitoring = 113 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3516,6 +3517,7 @@ client cluster ActivatedCarbonFilterMonitoring = 114 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3528,7 +3530,7 @@ client cluster ActivatedCarbonFilterMonitoring = 114 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3564,6 +3566,7 @@ client cluster CeramicFilterMonitoring = 115 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3576,7 +3579,7 @@ client cluster CeramicFilterMonitoring = 115 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3612,6 +3615,7 @@ client cluster ElectrostaticFilterMonitoring = 116 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3624,7 +3628,7 @@ client cluster ElectrostaticFilterMonitoring = 116 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3660,6 +3664,7 @@ client cluster UvFilterMonitoring = 117 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3672,7 +3677,7 @@ client cluster UvFilterMonitoring = 117 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3708,6 +3713,7 @@ client cluster IonizingFilterMonitoring = 118 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3720,7 +3726,7 @@ client cluster IonizingFilterMonitoring = 118 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3756,6 +3762,7 @@ client cluster ZeoliteFilterMonitoring = 119 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3768,7 +3775,7 @@ client cluster ZeoliteFilterMonitoring = 119 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3804,6 +3811,7 @@ client cluster OzoneFilterMonitoring = 120 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3816,7 +3824,7 @@ client cluster OzoneFilterMonitoring = 120 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3852,6 +3860,7 @@ client cluster WaterTankMonitoring = 121 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3864,7 +3873,7 @@ client cluster WaterTankMonitoring = 121 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3900,6 +3909,7 @@ client cluster FuelTankMonitoring = 122 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3912,7 +3922,7 @@ client cluster FuelTankMonitoring = 122 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3948,6 +3958,7 @@ client cluster InkCartridgeMonitoring = 123 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -3960,7 +3971,7 @@ client cluster InkCartridgeMonitoring = 123 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -3996,6 +4007,7 @@ client cluster TonerCartridgeMonitoring = 124 { bitmap Feature : BITMAP32 { kCondition = 0x1; kWarning = 0x2; + kReplacementProductList = 0x3; } struct ReplacementProductStruct { @@ -4008,7 +4020,7 @@ client cluster TonerCartridgeMonitoring = 124 { readonly attribute ChangeIndicationEnum changeIndication = 2; readonly attribute optional boolean inPlaceIndicator = 3; attribute optional nullable epoch_s lastChangedTime = 4; - readonly attribute optional ReplacementProductStruct replacementProductList[] = 5; + readonly attribute optional nullable ReplacementProductStruct replacementProductList[] = 5; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp index b3f8a26e4332be..473deecbdf4e77 100644 --- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp +++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp @@ -15769,43 +15769,52 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, + "Could not find ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -16036,46 +16045,54 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, - "Could not find class ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError( - Zcl, - "Could not find ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError( + Zcl, "Could not find class ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, + "Could not find ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct " + "constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -16306,44 +16323,53 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError(Zcl, - "Could not find ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, + "Could not find class ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError( + Zcl, "Could not find ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -16574,45 +16600,54 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, - "Could not find class ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError( - Zcl, "Could not find ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError( + Zcl, "Could not find class ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError( + Zcl, + "Could not find ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -16843,43 +16878,52 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$UvFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UvFilterMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$UvFilterMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UvFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UvFilterMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, + "Could not find ChipStructs$UvFilterMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -17110,44 +17154,53 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError(Zcl, - "Could not find ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, + "Could not find class ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError( + Zcl, "Could not find ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -17378,44 +17431,53 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError(Zcl, - "Could not find ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, + "Could not find class ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError( + Zcl, "Could not find ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -17646,44 +17708,52 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError(Zcl, - "Could not find ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, + "Could not find ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -17914,43 +17984,52 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$WaterTankMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$WaterTankMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$WaterTankMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$WaterTankMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$WaterTankMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, + "Could not find ChipStructs$WaterTankMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -18181,43 +18260,52 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$FuelTankMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$FuelTankMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$FuelTankMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$FuelTankMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$FuelTankMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, + "Could not find ChipStructs$FuelTankMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -18448,44 +18536,52 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError(Zcl, - "Could not find ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError( + Zcl, "Could not find ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } @@ -18716,44 +18812,53 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR return nullptr; } jobject value; - chip::JniReferences::GetInstance().CreateArrayList(value); - - auto iter_value_0 = cppValue.begin(); - while (iter_value_0.Next()) + if (cppValue.IsNull()) { - auto & entry_0 = iter_value_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + value = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(value); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct"); - return nullptr; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_value_1 = cppValue.Value().begin(); + while (iter_value_1.Next()) { - ChipLogError(Zcl, - "Could not find ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct constructor"); - return nullptr; - } + auto & entry_1 = iter_value_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), + newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); + + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, + "Could not find class ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct"); + return nullptr; + } + jmethodID replacementProductStructStructCtor_2 = env->GetMethodID( + replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError( + Zcl, "Could not find ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct constructor"); + return nullptr; + } - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(value, newElement_0); + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(value, newElement_1); + } } return value; } diff --git a/src/controller/java/zap-generated/CHIPClientCallbacks.h b/src/controller/java/zap-generated/CHIPClientCallbacks.h index e0cbc95d113571..c80f0f7d7aa8b0 100644 --- a/src/controller/java/zap-generated/CHIPClientCallbacks.h +++ b/src/controller/java/zap-generated/CHIPClientCallbacks.h @@ -618,8 +618,8 @@ typedef void (*RvcOperationalStateAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*HepaFilterMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*HepaFilterMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*HepaFilterMonitoringAcceptedCommandListListAttributeCallback)( @@ -630,8 +630,8 @@ typedef void (*HepaFilterMonitoringAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*ActivatedCarbonFilterMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*ActivatedCarbonFilterMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*ActivatedCarbonFilterMonitoringAcceptedCommandListListAttributeCallback)( @@ -642,8 +642,8 @@ typedef void (*ActivatedCarbonFilterMonitoringAttributeListListAttributeCallback void * context, const chip::app::DataModel::DecodableList & data); typedef void (*CeramicFilterMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::CeramicFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*CeramicFilterMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*CeramicFilterMonitoringAcceptedCommandListListAttributeCallback)( @@ -654,8 +654,8 @@ typedef void (*CeramicFilterMonitoringAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*ElectrostaticFilterMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::ElectrostaticFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*ElectrostaticFilterMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*ElectrostaticFilterMonitoringAcceptedCommandListListAttributeCallback)( @@ -666,8 +666,8 @@ typedef void (*ElectrostaticFilterMonitoringAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*UvFilterMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::UvFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*UvFilterMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*UvFilterMonitoringAcceptedCommandListListAttributeCallback)( @@ -678,8 +678,8 @@ typedef void (*UvFilterMonitoringAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*IonizingFilterMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::IonizingFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*IonizingFilterMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*IonizingFilterMonitoringAcceptedCommandListListAttributeCallback)( @@ -690,8 +690,8 @@ typedef void (*IonizingFilterMonitoringAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*ZeoliteFilterMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::ZeoliteFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*ZeoliteFilterMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*ZeoliteFilterMonitoringAcceptedCommandListListAttributeCallback)( @@ -702,8 +702,8 @@ typedef void (*ZeoliteFilterMonitoringAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*OzoneFilterMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::OzoneFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*OzoneFilterMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*OzoneFilterMonitoringAcceptedCommandListListAttributeCallback)( @@ -714,8 +714,8 @@ typedef void (*OzoneFilterMonitoringAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*WaterTankMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::WaterTankMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*WaterTankMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*WaterTankMonitoringAcceptedCommandListListAttributeCallback)( @@ -726,8 +726,8 @@ typedef void (*WaterTankMonitoringAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*FuelTankMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::FuelTankMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*FuelTankMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*FuelTankMonitoringAcceptedCommandListListAttributeCallback)( @@ -738,8 +738,8 @@ typedef void (*FuelTankMonitoringAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*InkCartridgeMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::InkCartridgeMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*InkCartridgeMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*InkCartridgeMonitoringAcceptedCommandListListAttributeCallback)( @@ -750,8 +750,8 @@ typedef void (*InkCartridgeMonitoringAttributeListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*TonerCartridgeMonitoringReplacementProductListListAttributeCallback)( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::TonerCartridgeMonitoring::Structs::ReplacementProductStruct::DecodableType> & data); + const chip::app::DataModel::Nullable> & data); typedef void (*TonerCartridgeMonitoringGeneratedCommandListListAttributeCallback)( void * context, const chip::app::DataModel::DecodableList & data); typedef void (*TonerCartridgeMonitoringAcceptedCommandListListAttributeCallback)( diff --git a/src/controller/java/zap-generated/CHIPReadCallbacks.cpp b/src/controller/java/zap-generated/CHIPReadCallbacks.cpp index 9bdd599ecef5d8..3ce5c2784c23ae 100644 --- a/src/controller/java/zap-generated/CHIPReadCallbacks.cpp +++ b/src/controller/java/zap-generated/CHIPReadCallbacks.cpp @@ -25676,8 +25676,8 @@ CHIPHepaFilterMonitoringReplacementProductListAttributeCallback::~CHIPHepaFilter void CHIPHepaFilterMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -25699,43 +25699,50 @@ void CHIPHepaFilterMonitoringReplacementProductListAttributeCallback::CallbackFn VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$HepaFilterMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -26128,8 +26135,8 @@ CHIPActivatedCarbonFilterMonitoringReplacementProductListAttributeCallback:: void CHIPActivatedCarbonFilterMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -26152,44 +26159,52 @@ void CHIPActivatedCarbonFilterMonitoringReplacementProductListAttributeCallback: VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, - "Could not find ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, + "Could not find class ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError( + Zcl, "Could not find ChipStructs$ActivatedCarbonFilterMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -26583,8 +26598,8 @@ CHIPCeramicFilterMonitoringReplacementProductListAttributeCallback:: void CHIPCeramicFilterMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::CeramicFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -26606,43 +26621,50 @@ void CHIPCeramicFilterMonitoringReplacementProductListAttributeCallback::Callbac VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$CeramicFilterMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -27035,8 +27057,8 @@ CHIPElectrostaticFilterMonitoringReplacementProductListAttributeCallback:: void CHIPElectrostaticFilterMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::ElectrostaticFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -27058,44 +27080,51 @@ void CHIPElectrostaticFilterMonitoringReplacementProductListAttributeCallback::C VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, - "Could not find ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, + "Could not find ChipStructs$ElectrostaticFilterMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -27487,8 +27516,8 @@ CHIPUvFilterMonitoringReplacementProductListAttributeCallback::~CHIPUvFilterMoni void CHIPUvFilterMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::UvFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -27510,43 +27539,50 @@ void CHIPUvFilterMonitoringReplacementProductListAttributeCallback::CallbackFn( VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$UvFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$UvFilterMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$UvFilterMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$UvFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$UvFilterMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$UvFilterMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -27937,8 +27973,8 @@ CHIPIonizingFilterMonitoringReplacementProductListAttributeCallback:: void CHIPIonizingFilterMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::IonizingFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -27960,43 +27996,50 @@ void CHIPIonizingFilterMonitoringReplacementProductListAttributeCallback::Callba VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$IonizingFilterMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -28389,8 +28432,8 @@ CHIPZeoliteFilterMonitoringReplacementProductListAttributeCallback:: void CHIPZeoliteFilterMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::ZeoliteFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -28412,43 +28455,50 @@ void CHIPZeoliteFilterMonitoringReplacementProductListAttributeCallback::Callbac VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$ZeoliteFilterMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -28840,8 +28890,8 @@ CHIPOzoneFilterMonitoringReplacementProductListAttributeCallback:: void CHIPOzoneFilterMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::OzoneFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -28863,43 +28913,50 @@ void CHIPOzoneFilterMonitoringReplacementProductListAttributeCallback::CallbackF VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$OzoneFilterMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -29289,8 +29346,8 @@ CHIPWaterTankMonitoringReplacementProductListAttributeCallback::~CHIPWaterTankMo void CHIPWaterTankMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::WaterTankMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -29312,43 +29369,50 @@ void CHIPWaterTankMonitoringReplacementProductListAttributeCallback::CallbackFn( VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$WaterTankMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$WaterTankMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$WaterTankMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$WaterTankMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$WaterTankMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$WaterTankMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -29738,8 +29802,8 @@ CHIPFuelTankMonitoringReplacementProductListAttributeCallback::~CHIPFuelTankMoni void CHIPFuelTankMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::FuelTankMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -29761,43 +29825,50 @@ void CHIPFuelTankMonitoringReplacementProductListAttributeCallback::CallbackFn( VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$FuelTankMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$FuelTankMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$FuelTankMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$FuelTankMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$FuelTankMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$FuelTankMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -30188,8 +30259,8 @@ CHIPInkCartridgeMonitoringReplacementProductListAttributeCallback:: void CHIPInkCartridgeMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::InkCartridgeMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -30211,43 +30282,50 @@ void CHIPInkCartridgeMonitoringReplacementProductListAttributeCallback::Callback VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$InkCartridgeMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); @@ -30638,8 +30716,8 @@ CHIPTonerCartridgeMonitoringReplacementProductListAttributeCallback:: void CHIPTonerCartridgeMonitoringReplacementProductListAttributeCallback::CallbackFn( void * context, - const chip::app::DataModel::DecodableList< - chip::app::Clusters::TonerCartridgeMonitoring::Structs::ReplacementProductStruct::DecodableType> & list) + const chip::app::DataModel::Nullable> & list) { chip::DeviceLayer::StackUnlock unlock; CHIP_ERROR err = CHIP_NO_ERROR; @@ -30661,43 +30739,50 @@ void CHIPTonerCartridgeMonitoringReplacementProductListAttributeCallback::Callba VerifyOrReturn(err == CHIP_NO_ERROR, ChipLogError(Zcl, "Could not find onSuccess() method")); jobject arrayListObj; - chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - - auto iter_arrayListObj_0 = list.begin(); - while (iter_arrayListObj_0.Next()) + if (list.IsNull()) { - auto & entry_0 = iter_arrayListObj_0.GetValue(); - jobject newElement_0; - jobject newElement_0_productIdentifierType; - std::string newElement_0_productIdentifierTypeClassName = "java/lang/Integer"; - std::string newElement_0_productIdentifierTypeCtorSignature = "(I)V"; - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_productIdentifierTypeClassName.c_str(), newElement_0_productIdentifierTypeCtorSignature.c_str(), - static_cast(entry_0.productIdentifierType), newElement_0_productIdentifierType); - jobject newElement_0_productIdentifierValue; - LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.productIdentifierValue, - newElement_0_productIdentifierValue)); + arrayListObj = nullptr; + } + else + { + chip::JniReferences::GetInstance().CreateArrayList(arrayListObj); - jclass replacementProductStructStructClass_1; - err = chip::JniReferences::GetInstance().GetClassRef( - env, "chip/devicecontroller/ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct", - replacementProductStructStructClass_1); - if (err != CHIP_NO_ERROR) - { - ChipLogError(Zcl, "Could not find class ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct"); - return; - } - jmethodID replacementProductStructStructCtor_1 = - env->GetMethodID(replacementProductStructStructClass_1, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); - if (replacementProductStructStructCtor_1 == nullptr) + auto iter_arrayListObj_1 = list.Value().begin(); + while (iter_arrayListObj_1.Next()) { - ChipLogError(Zcl, "Could not find ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct constructor"); - return; - } + auto & entry_1 = iter_arrayListObj_1.GetValue(); + jobject newElement_1; + jobject newElement_1_productIdentifierType; + std::string newElement_1_productIdentifierTypeClassName = "java/lang/Integer"; + std::string newElement_1_productIdentifierTypeCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + newElement_1_productIdentifierTypeClassName.c_str(), newElement_1_productIdentifierTypeCtorSignature.c_str(), + static_cast(entry_1.productIdentifierType), newElement_1_productIdentifierType); + jobject newElement_1_productIdentifierValue; + LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.productIdentifierValue, + newElement_1_productIdentifierValue)); - newElement_0 = env->NewObject(replacementProductStructStructClass_1, replacementProductStructStructCtor_1, - newElement_0_productIdentifierType, newElement_0_productIdentifierValue); - chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_0); + jclass replacementProductStructStructClass_2; + err = chip::JniReferences::GetInstance().GetClassRef( + env, "chip/devicecontroller/ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct", + replacementProductStructStructClass_2); + if (err != CHIP_NO_ERROR) + { + ChipLogError(Zcl, "Could not find class ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct"); + return; + } + jmethodID replacementProductStructStructCtor_2 = + env->GetMethodID(replacementProductStructStructClass_2, "", "(Ljava/lang/Integer;Ljava/lang/String;)V"); + if (replacementProductStructStructCtor_2 == nullptr) + { + ChipLogError(Zcl, "Could not find ChipStructs$TonerCartridgeMonitoringClusterReplacementProductStruct constructor"); + return; + } + + newElement_1 = env->NewObject(replacementProductStructStructClass_2, replacementProductStructStructCtor_2, + newElement_1_productIdentifierType, newElement_1_productIdentifierValue); + chip::JniReferences::GetInstance().AddToList(arrayListObj, newElement_1); + } } env->ExceptionClear(); diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java index b12d5d9f86e5c3..f3616a26705bcc 100644 --- a/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java +++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipClusters.java @@ -17419,7 +17419,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -17712,7 +17712,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -18005,7 +18005,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -18298,7 +18298,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -18591,7 +18591,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -18884,7 +18884,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -19177,7 +19177,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -19470,7 +19470,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -19763,7 +19763,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -20056,7 +20056,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -20349,7 +20349,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } @@ -20642,7 +20642,7 @@ public interface LastChangedTimeAttributeCallback { default void onSubscriptionEstablished(long subscriptionId) {} } public interface ReplacementProductListAttributeCallback { - void onSuccess( List valueList); + void onSuccess(@Nullable List valueList); void onError(Exception ex); default void onSubscriptionEstablished(long subscriptionId) {} } diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java b/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java index d4ad7a16fc5b2d..aad7d76f1478a2 100644 --- a/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java +++ b/src/controller/java/zap-generated/chip/devicecontroller/ClusterInfoMapping.java @@ -7689,7 +7689,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -7804,7 +7804,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -7919,7 +7919,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -8034,7 +8034,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -8149,7 +8149,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -8264,7 +8264,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -8379,7 +8379,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -8494,7 +8494,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -8609,7 +8609,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -8724,7 +8724,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -8839,7 +8839,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); @@ -8954,7 +8954,7 @@ public void setCallbackDelegate(ClusterCommandCallback callback) { } @Override - public void onSuccess( List valueList) { + public void onSuccess(@Nullable List valueList) { Map responseValues = new LinkedHashMap<>(); CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List"); responseValues.put(commandResponseInfo, valueList); diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index aa2c6e474d06c9..63a50404a7aab9 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -19046,7 +19046,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=HepaFilterMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[HepaFilterMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[HepaFilterMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -19060,7 +19060,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'HepaFilterMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[HepaFilterMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[HepaFilterMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -19104,6 +19104,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -19226,9 +19227,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[HepaFilterMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[HepaFilterMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[HepaFilterMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[HepaFilterMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -19340,7 +19341,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=ActivatedCarbonFilterMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[ActivatedCarbonFilterMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[ActivatedCarbonFilterMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -19354,7 +19355,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'ActivatedCarbonFilterMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[ActivatedCarbonFilterMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[ActivatedCarbonFilterMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -19398,6 +19399,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -19520,9 +19522,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[ActivatedCarbonFilterMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[ActivatedCarbonFilterMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[ActivatedCarbonFilterMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[ActivatedCarbonFilterMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -19634,7 +19636,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=CeramicFilterMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[CeramicFilterMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[CeramicFilterMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -19648,7 +19650,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'CeramicFilterMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[CeramicFilterMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[CeramicFilterMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -19692,6 +19694,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -19814,9 +19817,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CeramicFilterMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[CeramicFilterMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[CeramicFilterMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[CeramicFilterMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -19928,7 +19931,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=ElectrostaticFilterMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[ElectrostaticFilterMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[ElectrostaticFilterMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -19942,7 +19945,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'ElectrostaticFilterMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[ElectrostaticFilterMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[ElectrostaticFilterMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -19986,6 +19989,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -20108,9 +20112,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[ElectrostaticFilterMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[ElectrostaticFilterMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[ElectrostaticFilterMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[ElectrostaticFilterMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -20222,7 +20226,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=UvFilterMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[UvFilterMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[UvFilterMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -20236,7 +20240,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'UvFilterMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[UvFilterMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[UvFilterMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -20280,6 +20284,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -20402,9 +20407,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[UvFilterMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[UvFilterMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[UvFilterMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[UvFilterMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -20516,7 +20521,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=IonizingFilterMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[IonizingFilterMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[IonizingFilterMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -20530,7 +20535,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'IonizingFilterMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[IonizingFilterMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[IonizingFilterMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -20574,6 +20579,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -20696,9 +20702,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[IonizingFilterMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[IonizingFilterMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[IonizingFilterMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[IonizingFilterMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -20810,7 +20816,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=ZeoliteFilterMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[ZeoliteFilterMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[ZeoliteFilterMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -20824,7 +20830,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'ZeoliteFilterMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[ZeoliteFilterMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[ZeoliteFilterMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -20868,6 +20874,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -20990,9 +20997,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[ZeoliteFilterMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[ZeoliteFilterMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[ZeoliteFilterMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[ZeoliteFilterMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -21104,7 +21111,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=OzoneFilterMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[OzoneFilterMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[OzoneFilterMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -21118,7 +21125,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'OzoneFilterMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[OzoneFilterMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[OzoneFilterMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -21162,6 +21169,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -21284,9 +21292,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[OzoneFilterMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[OzoneFilterMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[OzoneFilterMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[OzoneFilterMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -21398,7 +21406,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=WaterTankMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[WaterTankMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[WaterTankMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -21412,7 +21420,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'WaterTankMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[WaterTankMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[WaterTankMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -21456,6 +21464,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -21578,9 +21587,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[WaterTankMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[WaterTankMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[WaterTankMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[WaterTankMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -21692,7 +21701,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=FuelTankMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[FuelTankMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[FuelTankMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -21706,7 +21715,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'FuelTankMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[FuelTankMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[FuelTankMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -21750,6 +21759,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -21872,9 +21882,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[FuelTankMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[FuelTankMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[FuelTankMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[FuelTankMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -21986,7 +21996,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=InkCartridgeMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[InkCartridgeMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[InkCartridgeMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -22000,7 +22010,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'InkCartridgeMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[InkCartridgeMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[InkCartridgeMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -22044,6 +22054,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -22166,9 +22177,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[InkCartridgeMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[InkCartridgeMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[InkCartridgeMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[InkCartridgeMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): @@ -22280,7 +22291,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="changeIndication", Tag=0x00000002, Type=TonerCartridgeMonitoring.Enums.ChangeIndicationEnum), ClusterObjectFieldDescriptor(Label="inPlaceIndicator", Tag=0x00000003, Type=typing.Optional[bool]), ClusterObjectFieldDescriptor(Label="lastChangedTime", Tag=0x00000004, Type=typing.Union[None, Nullable, uint]), - ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Optional[typing.List[TonerCartridgeMonitoring.Structs.ReplacementProductStruct]]), + ClusterObjectFieldDescriptor(Label="replacementProductList", Tag=0x00000005, Type=typing.Union[None, Nullable, typing.List[TonerCartridgeMonitoring.Structs.ReplacementProductStruct]]), ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]), ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]), @@ -22294,7 +22305,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: changeIndication: 'TonerCartridgeMonitoring.Enums.ChangeIndicationEnum' = None inPlaceIndicator: 'typing.Optional[bool]' = None lastChangedTime: 'typing.Union[None, Nullable, uint]' = None - replacementProductList: 'typing.Optional[typing.List[TonerCartridgeMonitoring.Structs.ReplacementProductStruct]]' = None + replacementProductList: 'typing.Union[None, Nullable, typing.List[TonerCartridgeMonitoring.Structs.ReplacementProductStruct]]' = None generatedCommandList: 'typing.List[uint]' = None acceptedCommandList: 'typing.List[uint]' = None eventList: 'typing.List[uint]' = None @@ -22338,6 +22349,7 @@ class Bitmaps: class Feature(IntFlag): kCondition = 0x1 kWarning = 0x2 + kReplacementProductList = 0x3 class Structs: @dataclass @@ -22460,9 +22472,9 @@ def attribute_id(cls) -> int: @ChipUtility.classproperty def attribute_type(cls) -> ClusterObjectFieldDescriptor: - return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[TonerCartridgeMonitoring.Structs.ReplacementProductStruct]]) + return ClusterObjectFieldDescriptor(Type=typing.Union[None, Nullable, typing.List[TonerCartridgeMonitoring.Structs.ReplacementProductStruct]]) - value: 'typing.Optional[typing.List[TonerCartridgeMonitoring.Structs.ReplacementProductStruct]]' = None + value: 'typing.Union[None, Nullable, typing.List[TonerCartridgeMonitoring.Structs.ReplacementProductStruct]]' = None @dataclass class GeneratedCommandList(ClusterAttributeDescriptor): diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h index 67c365c6bec629..5829d31d2363e8 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h @@ -1903,8 +1903,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace HepaFilterMonitoring @@ -1953,8 +1954,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace ActivatedCarbonFilterMonitoring @@ -2003,8 +2005,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace CeramicFilterMonitoring @@ -2053,8 +2056,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace ElectrostaticFilterMonitoring @@ -2103,8 +2107,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace UvFilterMonitoring @@ -2153,8 +2158,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace IonizingFilterMonitoring @@ -2203,8 +2209,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace ZeoliteFilterMonitoring @@ -2253,8 +2260,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace OzoneFilterMonitoring @@ -2303,8 +2311,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace WaterTankMonitoring @@ -2353,8 +2362,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace FuelTankMonitoring @@ -2403,8 +2413,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace InkCartridgeMonitoring @@ -2453,8 +2464,9 @@ enum class ProductIdentifierTypeEnum : uint8_t // Bitmap for Feature enum class Feature : uint32_t { - kCondition = 0x1, - kWarning = 0x2, + kCondition = 0x1, + kWarning = 0x2, + kReplacementProductList = 0x3, }; } // namespace TonerCartridgeMonitoring diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h index 34cc96f868bcc7..38e174d15def9b 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h @@ -17617,12 +17617,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = - chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable< + chip::app::DataModel::List>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::HepaFilterMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -17825,12 +17825,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = chip::app::DataModel::List< - const chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::Type>; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::ActivatedCarbonFilterMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -18033,12 +18033,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = - chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::CeramicFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::CeramicFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable< + chip::app::DataModel::List>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::CeramicFilterMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -18241,12 +18241,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = chip::app::DataModel::List< - const chip::app::Clusters::ElectrostaticFilterMonitoring::Structs::ReplacementProductStruct::Type>; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::ElectrostaticFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::ElectrostaticFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::ElectrostaticFilterMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -18449,11 +18449,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::UvFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::UvFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable< + chip::app::DataModel::List>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::UvFilterMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -18656,12 +18657,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = - chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::IonizingFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::IonizingFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable< + chip::app::DataModel::List>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::IonizingFilterMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -18864,12 +18865,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = - chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::ZeoliteFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::ZeoliteFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable< + chip::app::DataModel::List>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::ZeoliteFilterMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -19072,12 +19073,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = - chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::OzoneFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::OzoneFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable< + chip::app::DataModel::List>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::OzoneFilterMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -19280,12 +19281,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = - chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::WaterTankMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::WaterTankMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable< + chip::app::DataModel::List>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::WaterTankMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -19488,11 +19489,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::FuelTankMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::FuelTankMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable< + chip::app::DataModel::List>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::FuelTankMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -19695,12 +19697,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = - chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::InkCartridgeMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::InkCartridgeMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable< + chip::app::DataModel::List>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::InkCartridgeMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } @@ -19903,12 +19905,12 @@ struct TypeInfo namespace ReplacementProductList { struct TypeInfo { - using Type = - chip::app::DataModel::List; - using DecodableType = chip::app::DataModel::DecodableList< - chip::app::Clusters::TonerCartridgeMonitoring::Structs::ReplacementProductStruct::DecodableType>; - using DecodableArgType = const chip::app::DataModel::DecodableList< - chip::app::Clusters::TonerCartridgeMonitoring::Structs::ReplacementProductStruct::DecodableType> &; + using Type = chip::app::DataModel::Nullable< + chip::app::DataModel::List>; + using DecodableType = chip::app::DataModel::Nullable>; + using DecodableArgType = const chip::app::DataModel::Nullable> &; static constexpr ClusterId GetClusterId() { return Clusters::TonerCartridgeMonitoring::Id; } static constexpr AttributeId GetAttributeId() { return Attributes::ReplacementProductList::Id; } diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h index c88a81c1ec38c7..43b44309349c35 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h @@ -15768,8 +15768,8 @@ void registerClusterHepaFilterMonitoring(Commands & commands, CredentialIssuerCo make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -15850,8 +15850,8 @@ void registerClusterActivatedCarbonFilterMonitoring(Commands & commands, Credent make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -15932,8 +15932,8 @@ void registerClusterCeramicFilterMonitoring(Commands & commands, CredentialIssue make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -16014,8 +16014,8 @@ void registerClusterElectrostaticFilterMonitoring(Commands & commands, Credentia make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -16096,8 +16096,8 @@ void registerClusterUvFilterMonitoring(Commands & commands, CredentialIssuerComm make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -16178,8 +16178,8 @@ void registerClusterIonizingFilterMonitoring(Commands & commands, CredentialIssu make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -16260,8 +16260,8 @@ void registerClusterZeoliteFilterMonitoring(Commands & commands, CredentialIssue make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -16342,8 +16342,8 @@ void registerClusterOzoneFilterMonitoring(Commands & commands, CredentialIssuerC make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -16424,8 +16424,8 @@ void registerClusterWaterTankMonitoring(Commands & commands, CredentialIssuerCom make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -16506,8 +16506,8 @@ void registerClusterFuelTankMonitoring(Commands & commands, CredentialIssuerComm make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -16588,8 +16588,8 @@ void registerClusterInkCartridgeMonitoring(Commands & commands, CredentialIssuer make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( @@ -16670,8 +16670,8 @@ void registerClusterTonerCartridgeMonitoring(Commands & commands, CredentialIssu make_unique>>(Id, "last-changed-time", 0, UINT32_MAX, Attributes::LastChangedTime::Id, WriteCommandType::kWrite, credsIssuerConfig), // - make_unique>>( + make_unique>>>( Id, "replacement-product-list", Attributes::ReplacementProductList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), // make_unique>>( diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp index 940b02f8c55ae8..cf2b85c80d6243 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp @@ -9106,8 +9106,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case HepaFilterMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9174,8 +9174,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case ActivatedCarbonFilterMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9242,8 +9242,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case CeramicFilterMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::CeramicFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9310,8 +9310,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case ElectrostaticFilterMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::ElectrostaticFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9378,8 +9378,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case UvFilterMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::UvFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9446,8 +9446,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case IonizingFilterMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::IonizingFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9514,8 +9514,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case ZeoliteFilterMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::ZeoliteFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9582,8 +9582,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case OzoneFilterMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::OzoneFilterMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9650,8 +9650,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case WaterTankMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::WaterTankMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9718,8 +9718,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case FuelTankMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::FuelTankMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9786,8 +9786,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case InkCartridgeMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::InkCartridgeMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value); @@ -9854,8 +9854,8 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP return DataModelLogger::LogValue("LastChangedTime", 1, value); } case TonerCartridgeMonitoring::Attributes::ReplacementProductList::Id: { - chip::app::DataModel::DecodableList< - chip::app::Clusters::TonerCartridgeMonitoring::Structs::ReplacementProductStruct::DecodableType> + chip::app::DataModel::Nullable> value; ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value)); return DataModelLogger::LogValue("ReplacementProductList", 1, value);