blob: 92552cd0fd1b713ff52aea5e7c3ee85e2ea62492 [file]
/*
*
* Copyright (c) 2022 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.
*/
/**
* @file casting-CHIPAttributeTLVValueDecoder.cpp
*
* Slim attribute TLV decoder for the TV Casting App.
* Contains DecodeAttributeValue() cases for ONLY the casting clusters.
*
* === Included Clusters (18) ===
* AccountLogin, ApplicationBasic, ApplicationLauncher, AudioOutput,
* Binding, Channel, ContentAppObserver, ContentControl,
* ContentLauncher, Descriptor, KeypadInput, LevelControl,
* LowPower, MediaInput, MediaPlayback, OnOff,
* TargetNavigator, WakeOnLAN
*
* To add a cluster:
* 1. Copy its case block from zap-generated/CHIPAttributeTLVValueDecoder.cpp
* 2. Add it to the switch statement below (keep alphabetical order)
* 3. Update this cluster list
* 4. Ensure the cluster's .ipp files are included in casting-cluster-objects.cpp
*/
#include <controller/java/CHIPAttributeTLVValueDecoder.h>
#include <app-common/zap-generated/cluster-objects.h>
#include <app-common/zap-generated/ids/Attributes.h>
#include <app-common/zap-generated/ids/Clusters.h>
#include <app/data-model/DecodableList.h>
#include <app/data-model/Decode.h>
#include <jni.h>
#include <lib/support/JniReferences.h>
#include <lib/support/JniTypeWrappers.h>
#include <lib/support/TypeTraits.h>
namespace chip {
jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVReader & aReader, CHIP_ERROR * aError)
{
JNIEnv * env = JniReferences::GetInstance().GetEnvForCurrentThread();
CHIP_ERROR err = CHIP_NO_ERROR;
switch (aPath.mClusterId)
{
// --- AccountLogin (0x050E) ---
case app::Clusters::AccountLogin::Id: {
using namespace app::Clusters::AccountLogin;
switch (aPath.mAttributeId)
{
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- ApplicationBasic (0x050D) ---
case app::Clusters::ApplicationBasic::Id: {
using namespace app::Clusters::ApplicationBasic;
switch (aPath.mAttributeId)
{
case Attributes::VendorName::Id: {
using TypeInfo = Attributes::VendorName::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue, value));
return value;
}
case Attributes::VendorID::Id: {
using TypeInfo = Attributes::VendorID::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ApplicationName::Id: {
using TypeInfo = Attributes::ApplicationName::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue, value));
return value;
}
case Attributes::ProductID::Id: {
using TypeInfo = Attributes::ProductID::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::Application::Id: {
using TypeInfo = Attributes::Application::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
jobject value_catalogVendorID;
std::string value_catalogVendorIDClassName = "java/lang/Integer";
std::string value_catalogVendorIDCtorSignature = "(I)V";
jint jnivalue_catalogVendorID = static_cast<jint>(cppValue.catalogVendorID);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
value_catalogVendorIDClassName.c_str(), value_catalogVendorIDCtorSignature.c_str(), jnivalue_catalogVendorID,
value_catalogVendorID);
jobject value_applicationID;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue.applicationID, value_applicationID));
{
jclass applicationStructStructClass_0;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ApplicationBasicClusterApplicationStruct",
applicationStructStructClass_0);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ApplicationBasicClusterApplicationStruct");
return nullptr;
}
jmethodID applicationStructStructCtor_0;
err = chip::JniReferences::GetInstance().FindMethod(env, applicationStructStructClass_0, "<init>",
"(Ljava/lang/Integer;Ljava/lang/String;)V",
&applicationStructStructCtor_0);
if (err != CHIP_NO_ERROR || applicationStructStructCtor_0 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ApplicationBasicClusterApplicationStruct constructor");
return nullptr;
}
value = env->NewObject(applicationStructStructClass_0, applicationStructStructCtor_0, value_catalogVendorID,
value_applicationID);
}
return value;
}
case Attributes::Status::Id: {
using TypeInfo = Attributes::Status::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ApplicationVersion::Id: {
using TypeInfo = Attributes::ApplicationVersion::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue, value));
return value;
}
case Attributes::AllowedVendorList::Id: {
using TypeInfo = Attributes::AllowedVendorList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Integer";
std::string newElement_0CtorSignature = "(I)V";
jint jninewElement_0 = static_cast<jint>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- ApplicationLauncher (0x050C) ---
case app::Clusters::ApplicationLauncher::Id: {
using namespace app::Clusters::ApplicationLauncher;
switch (aPath.mAttributeId)
{
case Attributes::CatalogList::Id: {
using TypeInfo = Attributes::CatalogList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Integer";
std::string newElement_0CtorSignature = "(I)V";
jint jninewElement_0 = static_cast<jint>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::CurrentApp::Id: {
using TypeInfo = Attributes::CurrentApp::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
jobject value_application;
jobject value_application_catalogVendorID;
std::string value_application_catalogVendorIDClassName = "java/lang/Integer";
std::string value_application_catalogVendorIDCtorSignature = "(I)V";
jint jnivalue_application_catalogVendorID = static_cast<jint>(cppValue.Value().application.catalogVendorID);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
value_application_catalogVendorIDClassName.c_str(), value_application_catalogVendorIDCtorSignature.c_str(),
jnivalue_application_catalogVendorID, value_application_catalogVendorID);
jobject value_application_applicationID;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue.Value().application.applicationID,
value_application_applicationID));
{
jclass applicationStructStructClass_2;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ApplicationLauncherClusterApplicationStruct",
applicationStructStructClass_2);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ApplicationLauncherClusterApplicationStruct");
return nullptr;
}
jmethodID applicationStructStructCtor_2;
err = chip::JniReferences::GetInstance().FindMethod(env, applicationStructStructClass_2, "<init>",
"(Ljava/lang/Integer;Ljava/lang/String;)V",
&applicationStructStructCtor_2);
if (err != CHIP_NO_ERROR || applicationStructStructCtor_2 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ApplicationLauncherClusterApplicationStruct constructor");
return nullptr;
}
value_application = env->NewObject(applicationStructStructClass_2, applicationStructStructCtor_2,
value_application_catalogVendorID, value_application_applicationID);
}
jobject value_endpoint;
if (!cppValue.Value().endpoint.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, value_endpoint);
}
else
{
jobject value_endpointInsideOptional;
std::string value_endpointInsideOptionalClassName = "java/lang/Integer";
std::string value_endpointInsideOptionalCtorSignature = "(I)V";
jint jnivalue_endpointInsideOptional = static_cast<jint>(cppValue.Value().endpoint.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
value_endpointInsideOptionalClassName.c_str(), value_endpointInsideOptionalCtorSignature.c_str(),
jnivalue_endpointInsideOptional, value_endpointInsideOptional);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(value_endpointInsideOptional,
value_endpoint);
}
{
jclass applicationEPStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ApplicationLauncherClusterApplicationEPStruct",
applicationEPStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ApplicationLauncherClusterApplicationEPStruct");
return nullptr;
}
jmethodID applicationEPStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, applicationEPStructStructClass_1, "<init>",
"(Lchip/devicecontroller/ChipStructs$ApplicationLauncherClusterApplicationStruct;Ljava/util/Optional;)V",
&applicationEPStructStructCtor_1);
if (err != CHIP_NO_ERROR || applicationEPStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ApplicationLauncherClusterApplicationEPStruct constructor");
return nullptr;
}
value = env->NewObject(applicationEPStructStructClass_1, applicationEPStructStructCtor_1, value_application,
value_endpoint);
}
}
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- AudioOutput (0x050B) ---
case app::Clusters::AudioOutput::Id: {
using namespace app::Clusters::AudioOutput;
switch (aPath.mAttributeId)
{
case Attributes::OutputList::Id: {
using TypeInfo = Attributes::OutputList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_index;
std::string newElement_0_indexClassName = "java/lang/Integer";
std::string newElement_0_indexCtorSignature = "(I)V";
jint jninewElement_0_index = static_cast<jint>(entry_0.index);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_indexClassName.c_str(), newElement_0_indexCtorSignature.c_str(), jninewElement_0_index,
newElement_0_index);
jobject newElement_0_outputType;
std::string newElement_0_outputTypeClassName = "java/lang/Integer";
std::string newElement_0_outputTypeCtorSignature = "(I)V";
jint jninewElement_0_outputType = static_cast<jint>(entry_0.outputType);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_outputTypeClassName.c_str(), newElement_0_outputTypeCtorSignature.c_str(),
jninewElement_0_outputType, newElement_0_outputType);
jobject newElement_0_name;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.name, newElement_0_name));
{
jclass outputInfoStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$AudioOutputClusterOutputInfoStruct", outputInfoStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$AudioOutputClusterOutputInfoStruct");
return nullptr;
}
jmethodID outputInfoStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, outputInfoStructStructClass_1, "<init>", "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;)V",
&outputInfoStructStructCtor_1);
if (err != CHIP_NO_ERROR || outputInfoStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$AudioOutputClusterOutputInfoStruct constructor");
return nullptr;
}
newElement_0 = env->NewObject(outputInfoStructStructClass_1, outputInfoStructStructCtor_1, newElement_0_index,
newElement_0_outputType, newElement_0_name);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::CurrentOutput::Id: {
using TypeInfo = Attributes::CurrentOutput::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- Binding (0x001E) ---
case app::Clusters::Binding::Id: {
using namespace app::Clusters::Binding;
switch (aPath.mAttributeId)
{
case Attributes::Binding::Id: {
using TypeInfo = Attributes::Binding::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_node;
if (!entry_0.node.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_node);
}
else
{
jobject newElement_0_nodeInsideOptional;
std::string newElement_0_nodeInsideOptionalClassName = "java/lang/Long";
std::string newElement_0_nodeInsideOptionalCtorSignature = "(J)V";
jlong jninewElement_0_nodeInsideOptional = static_cast<jlong>(entry_0.node.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0_nodeInsideOptionalClassName.c_str(), newElement_0_nodeInsideOptionalCtorSignature.c_str(),
jninewElement_0_nodeInsideOptional, newElement_0_nodeInsideOptional);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(newElement_0_nodeInsideOptional,
newElement_0_node);
}
jobject newElement_0_group;
if (!entry_0.group.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_group);
}
else
{
jobject newElement_0_groupInsideOptional;
std::string newElement_0_groupInsideOptionalClassName = "java/lang/Integer";
std::string newElement_0_groupInsideOptionalCtorSignature = "(I)V";
jint jninewElement_0_groupInsideOptional = static_cast<jint>(entry_0.group.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_groupInsideOptionalClassName.c_str(), newElement_0_groupInsideOptionalCtorSignature.c_str(),
jninewElement_0_groupInsideOptional, newElement_0_groupInsideOptional);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(newElement_0_groupInsideOptional,
newElement_0_group);
}
jobject newElement_0_endpoint;
if (!entry_0.endpoint.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_endpoint);
}
else
{
jobject newElement_0_endpointInsideOptional;
std::string newElement_0_endpointInsideOptionalClassName = "java/lang/Integer";
std::string newElement_0_endpointInsideOptionalCtorSignature = "(I)V";
jint jninewElement_0_endpointInsideOptional = static_cast<jint>(entry_0.endpoint.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_endpointInsideOptionalClassName.c_str(),
newElement_0_endpointInsideOptionalCtorSignature.c_str(), jninewElement_0_endpointInsideOptional,
newElement_0_endpointInsideOptional);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(newElement_0_endpointInsideOptional,
newElement_0_endpoint);
}
jobject newElement_0_cluster;
if (!entry_0.cluster.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_cluster);
}
else
{
jobject newElement_0_clusterInsideOptional;
std::string newElement_0_clusterInsideOptionalClassName = "java/lang/Long";
std::string newElement_0_clusterInsideOptionalCtorSignature = "(J)V";
jlong jninewElement_0_clusterInsideOptional = static_cast<jlong>(entry_0.cluster.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0_clusterInsideOptionalClassName.c_str(),
newElement_0_clusterInsideOptionalCtorSignature.c_str(), jninewElement_0_clusterInsideOptional,
newElement_0_clusterInsideOptional);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(newElement_0_clusterInsideOptional,
newElement_0_cluster);
}
jobject newElement_0_fabricIndex;
std::string newElement_0_fabricIndexClassName = "java/lang/Integer";
std::string newElement_0_fabricIndexCtorSignature = "(I)V";
jint jninewElement_0_fabricIndex = static_cast<jint>(entry_0.fabricIndex);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_fabricIndexClassName.c_str(), newElement_0_fabricIndexCtorSignature.c_str(),
jninewElement_0_fabricIndex, newElement_0_fabricIndex);
{
jclass targetStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$BindingClusterTargetStruct", targetStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$BindingClusterTargetStruct");
return nullptr;
}
jmethodID targetStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, targetStructStructClass_1, "<init>",
"(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/Integer;)V",
&targetStructStructCtor_1);
if (err != CHIP_NO_ERROR || targetStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$BindingClusterTargetStruct constructor");
return nullptr;
}
newElement_0 =
env->NewObject(targetStructStructClass_1, targetStructStructCtor_1, newElement_0_node, newElement_0_group,
newElement_0_endpoint, newElement_0_cluster, newElement_0_fabricIndex);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- Channel (0x0504) ---
case app::Clusters::Channel::Id: {
using namespace app::Clusters::Channel;
switch (aPath.mAttributeId)
{
case Attributes::ChannelList::Id: {
using TypeInfo = Attributes::ChannelList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_majorNumber;
std::string newElement_0_majorNumberClassName = "java/lang/Integer";
std::string newElement_0_majorNumberCtorSignature = "(I)V";
jint jninewElement_0_majorNumber = static_cast<jint>(entry_0.majorNumber);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_majorNumberClassName.c_str(), newElement_0_majorNumberCtorSignature.c_str(),
jninewElement_0_majorNumber, newElement_0_majorNumber);
jobject newElement_0_minorNumber;
std::string newElement_0_minorNumberClassName = "java/lang/Integer";
std::string newElement_0_minorNumberCtorSignature = "(I)V";
jint jninewElement_0_minorNumber = static_cast<jint>(entry_0.minorNumber);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_minorNumberClassName.c_str(), newElement_0_minorNumberCtorSignature.c_str(),
jninewElement_0_minorNumber, newElement_0_minorNumber);
jobject newElement_0_name;
if (!entry_0.name.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_name);
}
else
{
jobject newElement_0_nameInsideOptional;
LogErrorOnFailure(
chip::JniReferences::GetInstance().CharToStringUTF(entry_0.name.Value(), newElement_0_nameInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(newElement_0_nameInsideOptional,
newElement_0_name);
}
jobject newElement_0_callSign;
if (!entry_0.callSign.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_callSign);
}
else
{
jobject newElement_0_callSignInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.callSign.Value(),
newElement_0_callSignInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(newElement_0_callSignInsideOptional,
newElement_0_callSign);
}
jobject newElement_0_affiliateCallSign;
if (!entry_0.affiliateCallSign.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr,
newElement_0_affiliateCallSign);
}
else
{
jobject newElement_0_affiliateCallSignInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
entry_0.affiliateCallSign.Value(), newElement_0_affiliateCallSignInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
newElement_0_affiliateCallSignInsideOptional, newElement_0_affiliateCallSign);
}
jobject newElement_0_identifier;
if (!entry_0.identifier.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_identifier);
}
else
{
jobject newElement_0_identifierInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.identifier.Value(),
newElement_0_identifierInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
newElement_0_identifierInsideOptional, newElement_0_identifier);
}
jobject newElement_0_type;
if (!entry_0.type.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_type);
}
else
{
jobject newElement_0_typeInsideOptional;
std::string newElement_0_typeInsideOptionalClassName = "java/lang/Integer";
std::string newElement_0_typeInsideOptionalCtorSignature = "(I)V";
jint jninewElement_0_typeInsideOptional = static_cast<jint>(entry_0.type.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_typeInsideOptionalClassName.c_str(), newElement_0_typeInsideOptionalCtorSignature.c_str(),
jninewElement_0_typeInsideOptional, newElement_0_typeInsideOptional);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(newElement_0_typeInsideOptional,
newElement_0_type);
}
{
jclass channelInfoStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ChannelClusterChannelInfoStruct", channelInfoStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ChannelClusterChannelInfoStruct");
return nullptr;
}
jmethodID channelInfoStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, channelInfoStructStructClass_1, "<init>",
"(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/"
"util/Optional;Ljava/util/Optional;)V",
&channelInfoStructStructCtor_1);
if (err != CHIP_NO_ERROR || channelInfoStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ChannelClusterChannelInfoStruct constructor");
return nullptr;
}
newElement_0 =
env->NewObject(channelInfoStructStructClass_1, channelInfoStructStructCtor_1, newElement_0_majorNumber,
newElement_0_minorNumber, newElement_0_name, newElement_0_callSign,
newElement_0_affiliateCallSign, newElement_0_identifier, newElement_0_type);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::Lineup::Id: {
using TypeInfo = Attributes::Lineup::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
jobject value_operatorName;
LogErrorOnFailure(
chip::JniReferences::GetInstance().CharToStringUTF(cppValue.Value().operatorName, value_operatorName));
jobject value_lineupName;
if (!cppValue.Value().lineupName.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, value_lineupName);
}
else
{
jobject value_lineupNameInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue.Value().lineupName.Value(),
value_lineupNameInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(value_lineupNameInsideOptional,
value_lineupName);
}
jobject value_postalCode;
if (!cppValue.Value().postalCode.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, value_postalCode);
}
else
{
jobject value_postalCodeInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue.Value().postalCode.Value(),
value_postalCodeInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(value_postalCodeInsideOptional,
value_postalCode);
}
jobject value_lineupInfoType;
std::string value_lineupInfoTypeClassName = "java/lang/Integer";
std::string value_lineupInfoTypeCtorSignature = "(I)V";
jint jnivalue_lineupInfoType = static_cast<jint>(cppValue.Value().lineupInfoType);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
value_lineupInfoTypeClassName.c_str(), value_lineupInfoTypeCtorSignature.c_str(), jnivalue_lineupInfoType,
value_lineupInfoType);
{
jclass lineupInfoStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ChannelClusterLineupInfoStruct", lineupInfoStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ChannelClusterLineupInfoStruct");
return nullptr;
}
jmethodID lineupInfoStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, lineupInfoStructStructClass_1, "<init>",
"(Ljava/lang/String;Ljava/util/Optional;Ljava/util/Optional;Ljava/lang/Integer;)V",
&lineupInfoStructStructCtor_1);
if (err != CHIP_NO_ERROR || lineupInfoStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ChannelClusterLineupInfoStruct constructor");
return nullptr;
}
value = env->NewObject(lineupInfoStructStructClass_1, lineupInfoStructStructCtor_1, value_operatorName,
value_lineupName, value_postalCode, value_lineupInfoType);
}
}
return value;
}
case Attributes::CurrentChannel::Id: {
using TypeInfo = Attributes::CurrentChannel::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
jobject value_majorNumber;
std::string value_majorNumberClassName = "java/lang/Integer";
std::string value_majorNumberCtorSignature = "(I)V";
jint jnivalue_majorNumber = static_cast<jint>(cppValue.Value().majorNumber);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
value_majorNumberClassName.c_str(), value_majorNumberCtorSignature.c_str(), jnivalue_majorNumber,
value_majorNumber);
jobject value_minorNumber;
std::string value_minorNumberClassName = "java/lang/Integer";
std::string value_minorNumberCtorSignature = "(I)V";
jint jnivalue_minorNumber = static_cast<jint>(cppValue.Value().minorNumber);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
value_minorNumberClassName.c_str(), value_minorNumberCtorSignature.c_str(), jnivalue_minorNumber,
value_minorNumber);
jobject value_name;
if (!cppValue.Value().name.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, value_name);
}
else
{
jobject value_nameInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue.Value().name.Value(),
value_nameInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(value_nameInsideOptional,
value_name);
}
jobject value_callSign;
if (!cppValue.Value().callSign.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, value_callSign);
}
else
{
jobject value_callSignInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue.Value().callSign.Value(),
value_callSignInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(value_callSignInsideOptional,
value_callSign);
}
jobject value_affiliateCallSign;
if (!cppValue.Value().affiliateCallSign.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, value_affiliateCallSign);
}
else
{
jobject value_affiliateCallSignInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue.Value().affiliateCallSign.Value(),
value_affiliateCallSignInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
value_affiliateCallSignInsideOptional, value_affiliateCallSign);
}
jobject value_identifier;
if (!cppValue.Value().identifier.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, value_identifier);
}
else
{
jobject value_identifierInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue.Value().identifier.Value(),
value_identifierInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(value_identifierInsideOptional,
value_identifier);
}
jobject value_type;
if (!cppValue.Value().type.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, value_type);
}
else
{
jobject value_typeInsideOptional;
std::string value_typeInsideOptionalClassName = "java/lang/Integer";
std::string value_typeInsideOptionalCtorSignature = "(I)V";
jint jnivalue_typeInsideOptional = static_cast<jint>(cppValue.Value().type.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
value_typeInsideOptionalClassName.c_str(), value_typeInsideOptionalCtorSignature.c_str(),
jnivalue_typeInsideOptional, value_typeInsideOptional);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(value_typeInsideOptional,
value_type);
}
{
jclass channelInfoStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ChannelClusterChannelInfoStruct", channelInfoStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ChannelClusterChannelInfoStruct");
return nullptr;
}
jmethodID channelInfoStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, channelInfoStructStructClass_1, "<init>",
"(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/"
"util/Optional;Ljava/util/Optional;)V",
&channelInfoStructStructCtor_1);
if (err != CHIP_NO_ERROR || channelInfoStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ChannelClusterChannelInfoStruct constructor");
return nullptr;
}
value = env->NewObject(channelInfoStructStructClass_1, channelInfoStructStructCtor_1, value_majorNumber,
value_minorNumber, value_name, value_callSign, value_affiliateCallSign, value_identifier,
value_type);
}
}
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- ContentAppObserver (0x0510) ---
case app::Clusters::ContentAppObserver::Id: {
using namespace app::Clusters::ContentAppObserver;
switch (aPath.mAttributeId)
{
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- ContentControl (0x050F) ---
case app::Clusters::ContentControl::Id: {
using namespace app::Clusters::ContentControl;
switch (aPath.mAttributeId)
{
case Attributes::Enabled::Id: {
using TypeInfo = Attributes::Enabled::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Boolean";
std::string valueCtorSignature = "(Z)V";
jboolean jnivalue = static_cast<jboolean>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::OnDemandRatings::Id: {
using TypeInfo = Attributes::OnDemandRatings::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_ratingName;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.ratingName, newElement_0_ratingName));
jobject newElement_0_ratingNameDesc;
if (!entry_0.ratingNameDesc.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr,
newElement_0_ratingNameDesc);
}
else
{
jobject newElement_0_ratingNameDescInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
entry_0.ratingNameDesc.Value(), newElement_0_ratingNameDescInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
newElement_0_ratingNameDescInsideOptional, newElement_0_ratingNameDesc);
}
{
jclass ratingNameStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ContentControlClusterRatingNameStruct",
ratingNameStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ContentControlClusterRatingNameStruct");
return nullptr;
}
jmethodID ratingNameStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(env, ratingNameStructStructClass_1, "<init>",
"(Ljava/lang/String;Ljava/util/Optional;)V",
&ratingNameStructStructCtor_1);
if (err != CHIP_NO_ERROR || ratingNameStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ContentControlClusterRatingNameStruct constructor");
return nullptr;
}
newElement_0 = env->NewObject(ratingNameStructStructClass_1, ratingNameStructStructCtor_1,
newElement_0_ratingName, newElement_0_ratingNameDesc);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::OnDemandRatingThreshold::Id: {
using TypeInfo = Attributes::OnDemandRatingThreshold::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue, value));
return value;
}
case Attributes::ScheduledContentRatings::Id: {
using TypeInfo = Attributes::ScheduledContentRatings::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_ratingName;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.ratingName, newElement_0_ratingName));
jobject newElement_0_ratingNameDesc;
if (!entry_0.ratingNameDesc.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr,
newElement_0_ratingNameDesc);
}
else
{
jobject newElement_0_ratingNameDescInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
entry_0.ratingNameDesc.Value(), newElement_0_ratingNameDescInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
newElement_0_ratingNameDescInsideOptional, newElement_0_ratingNameDesc);
}
{
jclass ratingNameStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ContentControlClusterRatingNameStruct",
ratingNameStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ContentControlClusterRatingNameStruct");
return nullptr;
}
jmethodID ratingNameStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(env, ratingNameStructStructClass_1, "<init>",
"(Ljava/lang/String;Ljava/util/Optional;)V",
&ratingNameStructStructCtor_1);
if (err != CHIP_NO_ERROR || ratingNameStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ContentControlClusterRatingNameStruct constructor");
return nullptr;
}
newElement_0 = env->NewObject(ratingNameStructStructClass_1, ratingNameStructStructCtor_1,
newElement_0_ratingName, newElement_0_ratingNameDesc);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::ScheduledContentRatingThreshold::Id: {
using TypeInfo = Attributes::ScheduledContentRatingThreshold::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue, value));
return value;
}
case Attributes::ScreenDailyTime::Id: {
using TypeInfo = Attributes::ScreenDailyTime::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::RemainingScreenTime::Id: {
using TypeInfo = Attributes::RemainingScreenTime::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::BlockUnrated::Id: {
using TypeInfo = Attributes::BlockUnrated::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Boolean";
std::string valueCtorSignature = "(Z)V";
jboolean jnivalue = static_cast<jboolean>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::BlockChannelList::Id: {
using TypeInfo = Attributes::BlockChannelList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_blockChannelIndex;
if (entry_0.blockChannelIndex.IsNull())
{
newElement_0_blockChannelIndex = nullptr;
}
else
{
std::string newElement_0_blockChannelIndexClassName = "java/lang/Integer";
std::string newElement_0_blockChannelIndexCtorSignature = "(I)V";
jint jninewElement_0_blockChannelIndex = static_cast<jint>(entry_0.blockChannelIndex.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_blockChannelIndexClassName.c_str(), newElement_0_blockChannelIndexCtorSignature.c_str(),
jninewElement_0_blockChannelIndex, newElement_0_blockChannelIndex);
}
jobject newElement_0_majorNumber;
std::string newElement_0_majorNumberClassName = "java/lang/Integer";
std::string newElement_0_majorNumberCtorSignature = "(I)V";
jint jninewElement_0_majorNumber = static_cast<jint>(entry_0.majorNumber);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_majorNumberClassName.c_str(), newElement_0_majorNumberCtorSignature.c_str(),
jninewElement_0_majorNumber, newElement_0_majorNumber);
jobject newElement_0_minorNumber;
std::string newElement_0_minorNumberClassName = "java/lang/Integer";
std::string newElement_0_minorNumberCtorSignature = "(I)V";
jint jninewElement_0_minorNumber = static_cast<jint>(entry_0.minorNumber);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_minorNumberClassName.c_str(), newElement_0_minorNumberCtorSignature.c_str(),
jninewElement_0_minorNumber, newElement_0_minorNumber);
jobject newElement_0_identifier;
if (!entry_0.identifier.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_identifier);
}
else
{
jobject newElement_0_identifierInsideOptional;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.identifier.Value(),
newElement_0_identifierInsideOptional));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
newElement_0_identifierInsideOptional, newElement_0_identifier);
}
{
jclass blockChannelStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ContentControlClusterBlockChannelStruct",
blockChannelStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ContentControlClusterBlockChannelStruct");
return nullptr;
}
jmethodID blockChannelStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, blockChannelStructStructClass_1, "<init>",
"(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)V",
&blockChannelStructStructCtor_1);
if (err != CHIP_NO_ERROR || blockChannelStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ContentControlClusterBlockChannelStruct constructor");
return nullptr;
}
newElement_0 = env->NewObject(blockChannelStructStructClass_1, blockChannelStructStructCtor_1,
newElement_0_blockChannelIndex, newElement_0_majorNumber,
newElement_0_minorNumber, newElement_0_identifier);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::BlockApplicationList::Id: {
using TypeInfo = Attributes::BlockApplicationList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_catalogVendorID;
std::string newElement_0_catalogVendorIDClassName = "java/lang/Integer";
std::string newElement_0_catalogVendorIDCtorSignature = "(I)V";
jint jninewElement_0_catalogVendorID = static_cast<jint>(entry_0.catalogVendorID);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_catalogVendorIDClassName.c_str(), newElement_0_catalogVendorIDCtorSignature.c_str(),
jninewElement_0_catalogVendorID, newElement_0_catalogVendorID);
jobject newElement_0_applicationID;
LogErrorOnFailure(
chip::JniReferences::GetInstance().CharToStringUTF(entry_0.applicationID, newElement_0_applicationID));
{
jclass appInfoStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ContentControlClusterAppInfoStruct", appInfoStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ContentControlClusterAppInfoStruct");
return nullptr;
}
jmethodID appInfoStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(env, appInfoStructStructClass_1, "<init>",
"(Ljava/lang/Integer;Ljava/lang/String;)V",
&appInfoStructStructCtor_1);
if (err != CHIP_NO_ERROR || appInfoStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ContentControlClusterAppInfoStruct constructor");
return nullptr;
}
newElement_0 = env->NewObject(appInfoStructStructClass_1, appInfoStructStructCtor_1,
newElement_0_catalogVendorID, newElement_0_applicationID);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::BlockContentTimeWindow::Id: {
using TypeInfo = Attributes::BlockContentTimeWindow::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_timeWindowIndex;
if (entry_0.timeWindowIndex.IsNull())
{
newElement_0_timeWindowIndex = nullptr;
}
else
{
std::string newElement_0_timeWindowIndexClassName = "java/lang/Integer";
std::string newElement_0_timeWindowIndexCtorSignature = "(I)V";
jint jninewElement_0_timeWindowIndex = static_cast<jint>(entry_0.timeWindowIndex.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_timeWindowIndexClassName.c_str(), newElement_0_timeWindowIndexCtorSignature.c_str(),
jninewElement_0_timeWindowIndex, newElement_0_timeWindowIndex);
}
jobject newElement_0_dayOfWeek;
std::string newElement_0_dayOfWeekClassName = "java/lang/Integer";
std::string newElement_0_dayOfWeekCtorSignature = "(I)V";
jint jninewElement_0_dayOfWeek = static_cast<jint>(entry_0.dayOfWeek.Raw());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_dayOfWeekClassName.c_str(), newElement_0_dayOfWeekCtorSignature.c_str(), jninewElement_0_dayOfWeek,
newElement_0_dayOfWeek);
jobject newElement_0_timePeriod;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(newElement_0_timePeriod);
auto iter_newElement_0_timePeriod_2 = entry_0.timePeriod.begin();
while (iter_newElement_0_timePeriod_2.Next())
{
auto & entry_2 = iter_newElement_0_timePeriod_2.GetValue();
jobject newElement_2;
jobject newElement_2_startHour;
std::string newElement_2_startHourClassName = "java/lang/Integer";
std::string newElement_2_startHourCtorSignature = "(I)V";
jint jninewElement_2_startHour = static_cast<jint>(entry_2.startHour);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_2_startHourClassName.c_str(), newElement_2_startHourCtorSignature.c_str(),
jninewElement_2_startHour, newElement_2_startHour);
jobject newElement_2_startMinute;
std::string newElement_2_startMinuteClassName = "java/lang/Integer";
std::string newElement_2_startMinuteCtorSignature = "(I)V";
jint jninewElement_2_startMinute = static_cast<jint>(entry_2.startMinute);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_2_startMinuteClassName.c_str(), newElement_2_startMinuteCtorSignature.c_str(),
jninewElement_2_startMinute, newElement_2_startMinute);
jobject newElement_2_endHour;
std::string newElement_2_endHourClassName = "java/lang/Integer";
std::string newElement_2_endHourCtorSignature = "(I)V";
jint jninewElement_2_endHour = static_cast<jint>(entry_2.endHour);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_2_endHourClassName.c_str(), newElement_2_endHourCtorSignature.c_str(), jninewElement_2_endHour,
newElement_2_endHour);
jobject newElement_2_endMinute;
std::string newElement_2_endMinuteClassName = "java/lang/Integer";
std::string newElement_2_endMinuteCtorSignature = "(I)V";
jint jninewElement_2_endMinute = static_cast<jint>(entry_2.endMinute);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_2_endMinuteClassName.c_str(), newElement_2_endMinuteCtorSignature.c_str(),
jninewElement_2_endMinute, newElement_2_endMinute);
{
jclass timePeriodStructStructClass_3;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ContentControlClusterTimePeriodStruct",
timePeriodStructStructClass_3);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ContentControlClusterTimePeriodStruct");
return nullptr;
}
jmethodID timePeriodStructStructCtor_3;
err = chip::JniReferences::GetInstance().FindMethod(
env, timePeriodStructStructClass_3, "<init>",
"(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V",
&timePeriodStructStructCtor_3);
if (err != CHIP_NO_ERROR || timePeriodStructStructCtor_3 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ContentControlClusterTimePeriodStruct constructor");
return nullptr;
}
newElement_2 =
env->NewObject(timePeriodStructStructClass_3, timePeriodStructStructCtor_3, newElement_2_startHour,
newElement_2_startMinute, newElement_2_endHour, newElement_2_endMinute);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(newElement_0_timePeriod, newElement_2);
}
{
jclass timeWindowStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$ContentControlClusterTimeWindowStruct",
timeWindowStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$ContentControlClusterTimeWindowStruct");
return nullptr;
}
jmethodID timeWindowStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, timeWindowStructStructClass_1, "<init>",
"(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/ArrayList;)V", &timeWindowStructStructCtor_1);
if (err != CHIP_NO_ERROR || timeWindowStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$ContentControlClusterTimeWindowStruct constructor");
return nullptr;
}
newElement_0 = env->NewObject(timeWindowStructStructClass_1, timeWindowStructStructCtor_1,
newElement_0_timeWindowIndex, newElement_0_dayOfWeek, newElement_0_timePeriod);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- ContentLauncher (0x050A) ---
case app::Clusters::ContentLauncher::Id: {
using namespace app::Clusters::ContentLauncher;
switch (aPath.mAttributeId)
{
case Attributes::AcceptHeader::Id: {
using TypeInfo = Attributes::AcceptHeader::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0, newElement_0));
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::SupportedStreamingProtocols::Id: {
using TypeInfo = Attributes::SupportedStreamingProtocols::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue.Raw());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- Descriptor (0x001D) ---
case app::Clusters::Descriptor::Id: {
using namespace app::Clusters::Descriptor;
switch (aPath.mAttributeId)
{
case Attributes::DeviceTypeList::Id: {
using TypeInfo = Attributes::DeviceTypeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_deviceType;
std::string newElement_0_deviceTypeClassName = "java/lang/Long";
std::string newElement_0_deviceTypeCtorSignature = "(J)V";
jlong jninewElement_0_deviceType = static_cast<jlong>(entry_0.deviceType);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0_deviceTypeClassName.c_str(), newElement_0_deviceTypeCtorSignature.c_str(),
jninewElement_0_deviceType, newElement_0_deviceType);
jobject newElement_0_revision;
std::string newElement_0_revisionClassName = "java/lang/Integer";
std::string newElement_0_revisionCtorSignature = "(I)V";
jint jninewElement_0_revision = static_cast<jint>(entry_0.revision);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_revisionClassName.c_str(), newElement_0_revisionCtorSignature.c_str(), jninewElement_0_revision,
newElement_0_revision);
{
jclass deviceTypeStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$DescriptorClusterDeviceTypeStruct", deviceTypeStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$DescriptorClusterDeviceTypeStruct");
return nullptr;
}
jmethodID deviceTypeStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(env, deviceTypeStructStructClass_1, "<init>",
"(Ljava/lang/Long;Ljava/lang/Integer;)V",
&deviceTypeStructStructCtor_1);
if (err != CHIP_NO_ERROR || deviceTypeStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$DescriptorClusterDeviceTypeStruct constructor");
return nullptr;
}
newElement_0 = env->NewObject(deviceTypeStructStructClass_1, deviceTypeStructStructCtor_1,
newElement_0_deviceType, newElement_0_revision);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::ServerList::Id: {
using TypeInfo = Attributes::ServerList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::ClientList::Id: {
using TypeInfo = Attributes::ClientList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::PartsList::Id: {
using TypeInfo = Attributes::PartsList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Integer";
std::string newElement_0CtorSignature = "(I)V";
jint jninewElement_0 = static_cast<jint>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::TagList::Id: {
using TypeInfo = Attributes::TagList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_mfgCode;
if (entry_0.mfgCode.IsNull())
{
newElement_0_mfgCode = nullptr;
}
else
{
std::string newElement_0_mfgCodeClassName = "java/lang/Integer";
std::string newElement_0_mfgCodeCtorSignature = "(I)V";
jint jninewElement_0_mfgCode = static_cast<jint>(entry_0.mfgCode.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_mfgCodeClassName.c_str(), newElement_0_mfgCodeCtorSignature.c_str(), jninewElement_0_mfgCode,
newElement_0_mfgCode);
}
jobject newElement_0_namespaceID;
std::string newElement_0_namespaceIDClassName = "java/lang/Integer";
std::string newElement_0_namespaceIDCtorSignature = "(I)V";
jint jninewElement_0_namespaceID = static_cast<jint>(entry_0.namespaceID);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_namespaceIDClassName.c_str(), newElement_0_namespaceIDCtorSignature.c_str(),
jninewElement_0_namespaceID, newElement_0_namespaceID);
jobject newElement_0_tag;
std::string newElement_0_tagClassName = "java/lang/Integer";
std::string newElement_0_tagCtorSignature = "(I)V";
jint jninewElement_0_tag = static_cast<jint>(entry_0.tag);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_tagClassName.c_str(), newElement_0_tagCtorSignature.c_str(), jninewElement_0_tag,
newElement_0_tag);
jobject newElement_0_label;
if (!entry_0.label.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_label);
}
else
{
jobject newElement_0_labelInsideOptional;
if (entry_0.label.Value().IsNull())
{
newElement_0_labelInsideOptional = nullptr;
}
else
{
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.label.Value().Value(),
newElement_0_labelInsideOptional));
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(newElement_0_labelInsideOptional,
newElement_0_label);
}
{
jclass semanticTagStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$DescriptorClusterSemanticTagStruct",
semanticTagStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$DescriptorClusterSemanticTagStruct");
return nullptr;
}
jmethodID semanticTagStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, semanticTagStructStructClass_1, "<init>",
"(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/util/Optional;)V",
&semanticTagStructStructCtor_1);
if (err != CHIP_NO_ERROR || semanticTagStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$DescriptorClusterSemanticTagStruct constructor");
return nullptr;
}
newElement_0 =
env->NewObject(semanticTagStructStructClass_1, semanticTagStructStructCtor_1, newElement_0_mfgCode,
newElement_0_namespaceID, newElement_0_tag, newElement_0_label);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::EndpointUniqueID::Id: {
using TypeInfo = Attributes::EndpointUniqueID::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue, value));
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- KeypadInput (0x0509) ---
case app::Clusters::KeypadInput::Id: {
using namespace app::Clusters::KeypadInput;
switch (aPath.mAttributeId)
{
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- LevelControl (0x0008) ---
case app::Clusters::LevelControl::Id: {
using namespace app::Clusters::LevelControl;
switch (aPath.mAttributeId)
{
case Attributes::CurrentLevel::Id: {
using TypeInfo = Attributes::CurrentLevel::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::RemainingTime::Id: {
using TypeInfo = Attributes::RemainingTime::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::MinLevel::Id: {
using TypeInfo = Attributes::MinLevel::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::MaxLevel::Id: {
using TypeInfo = Attributes::MaxLevel::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::CurrentFrequency::Id: {
using TypeInfo = Attributes::CurrentFrequency::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::MinFrequency::Id: {
using TypeInfo = Attributes::MinFrequency::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::MaxFrequency::Id: {
using TypeInfo = Attributes::MaxFrequency::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::Options::Id: {
using TypeInfo = Attributes::Options::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue.Raw());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::OnOffTransitionTime::Id: {
using TypeInfo = Attributes::OnOffTransitionTime::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::OnLevel::Id: {
using TypeInfo = Attributes::OnLevel::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::OnTransitionTime::Id: {
using TypeInfo = Attributes::OnTransitionTime::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::OffTransitionTime::Id: {
using TypeInfo = Attributes::OffTransitionTime::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::DefaultMoveRate::Id: {
using TypeInfo = Attributes::DefaultMoveRate::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::StartUpCurrentLevel::Id: {
using TypeInfo = Attributes::StartUpCurrentLevel::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- LowPower (0x0508) ---
case app::Clusters::LowPower::Id: {
using namespace app::Clusters::LowPower;
switch (aPath.mAttributeId)
{
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- MediaInput (0x0507) ---
case app::Clusters::MediaInput::Id: {
using namespace app::Clusters::MediaInput;
switch (aPath.mAttributeId)
{
case Attributes::InputList::Id: {
using TypeInfo = Attributes::InputList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_index;
std::string newElement_0_indexClassName = "java/lang/Integer";
std::string newElement_0_indexCtorSignature = "(I)V";
jint jninewElement_0_index = static_cast<jint>(entry_0.index);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_indexClassName.c_str(), newElement_0_indexCtorSignature.c_str(), jninewElement_0_index,
newElement_0_index);
jobject newElement_0_inputType;
std::string newElement_0_inputTypeClassName = "java/lang/Integer";
std::string newElement_0_inputTypeCtorSignature = "(I)V";
jint jninewElement_0_inputType = static_cast<jint>(entry_0.inputType);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_inputTypeClassName.c_str(), newElement_0_inputTypeCtorSignature.c_str(), jninewElement_0_inputType,
newElement_0_inputType);
jobject newElement_0_name;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.name, newElement_0_name));
jobject newElement_0_description;
LogErrorOnFailure(
chip::JniReferences::GetInstance().CharToStringUTF(entry_0.description, newElement_0_description));
{
jclass inputInfoStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$MediaInputClusterInputInfoStruct", inputInfoStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$MediaInputClusterInputInfoStruct");
return nullptr;
}
jmethodID inputInfoStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, inputInfoStructStructClass_1, "<init>",
"(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;)V",
&inputInfoStructStructCtor_1);
if (err != CHIP_NO_ERROR || inputInfoStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$MediaInputClusterInputInfoStruct constructor");
return nullptr;
}
newElement_0 = env->NewObject(inputInfoStructStructClass_1, inputInfoStructStructCtor_1, newElement_0_index,
newElement_0_inputType, newElement_0_name, newElement_0_description);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::CurrentInput::Id: {
using TypeInfo = Attributes::CurrentInput::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- MediaPlayback (0x0506) ---
case app::Clusters::MediaPlayback::Id: {
using namespace app::Clusters::MediaPlayback;
switch (aPath.mAttributeId)
{
case Attributes::CurrentState::Id: {
using TypeInfo = Attributes::CurrentState::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::StartTime::Id: {
using TypeInfo = Attributes::StartTime::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::Duration::Id: {
using TypeInfo = Attributes::Duration::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::SampledPosition::Id: {
using TypeInfo = Attributes::SampledPosition::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
jobject value_updatedAt;
std::string value_updatedAtClassName = "java/lang/Long";
std::string value_updatedAtCtorSignature = "(J)V";
jlong jnivalue_updatedAt = static_cast<jlong>(cppValue.Value().updatedAt);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
value_updatedAtClassName.c_str(), value_updatedAtCtorSignature.c_str(), jnivalue_updatedAt, value_updatedAt);
jobject value_position;
if (cppValue.Value().position.IsNull())
{
value_position = nullptr;
}
else
{
std::string value_positionClassName = "java/lang/Long";
std::string value_positionCtorSignature = "(J)V";
jlong jnivalue_position = static_cast<jlong>(cppValue.Value().position.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
value_positionClassName.c_str(), value_positionCtorSignature.c_str(), jnivalue_position, value_position);
}
{
jclass playbackPositionStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$MediaPlaybackClusterPlaybackPositionStruct",
playbackPositionStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$MediaPlaybackClusterPlaybackPositionStruct");
return nullptr;
}
jmethodID playbackPositionStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(env, playbackPositionStructStructClass_1, "<init>",
"(Ljava/lang/Long;Ljava/lang/Long;)V",
&playbackPositionStructStructCtor_1);
if (err != CHIP_NO_ERROR || playbackPositionStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$MediaPlaybackClusterPlaybackPositionStruct constructor");
return nullptr;
}
value = env->NewObject(playbackPositionStructStructClass_1, playbackPositionStructStructCtor_1, value_updatedAt,
value_position);
}
}
return value;
}
case Attributes::PlaybackSpeed::Id: {
using TypeInfo = Attributes::PlaybackSpeed::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Float";
std::string valueCtorSignature = "(F)V";
jfloat jnivalue = static_cast<jfloat>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jfloat>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::SeekRangeEnd::Id: {
using TypeInfo = Attributes::SeekRangeEnd::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::SeekRangeStart::Id: {
using TypeInfo = Attributes::SeekRangeStart::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::ActiveAudioTrack::Id: {
using TypeInfo = Attributes::ActiveAudioTrack::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
jobject value_id;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue.Value().id, value_id));
jobject value_trackAttributes;
if (cppValue.Value().trackAttributes.IsNull())
{
value_trackAttributes = nullptr;
}
else
{
jobject value_trackAttributes_languageCode;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
cppValue.Value().trackAttributes.Value().languageCode, value_trackAttributes_languageCode));
jobject value_trackAttributes_displayName;
if (!cppValue.Value().trackAttributes.Value().displayName.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
nullptr, value_trackAttributes_displayName);
}
else
{
jobject value_trackAttributes_displayNameInsideOptional;
if (cppValue.Value().trackAttributes.Value().displayName.Value().IsNull())
{
value_trackAttributes_displayNameInsideOptional = nullptr;
}
else
{
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
cppValue.Value().trackAttributes.Value().displayName.Value().Value(),
value_trackAttributes_displayNameInsideOptional));
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
value_trackAttributes_displayNameInsideOptional, value_trackAttributes_displayName);
}
{
jclass trackAttributesStructStructClass_3;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackAttributesStruct",
trackAttributesStructStructClass_3);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$MediaPlaybackClusterTrackAttributesStruct");
return nullptr;
}
jmethodID trackAttributesStructStructCtor_3;
err = chip::JniReferences::GetInstance().FindMethod(env, trackAttributesStructStructClass_3, "<init>",
"(Ljava/lang/String;Ljava/util/Optional;)V",
&trackAttributesStructStructCtor_3);
if (err != CHIP_NO_ERROR || trackAttributesStructStructCtor_3 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$MediaPlaybackClusterTrackAttributesStruct constructor");
return nullptr;
}
value_trackAttributes =
env->NewObject(trackAttributesStructStructClass_3, trackAttributesStructStructCtor_3,
value_trackAttributes_languageCode, value_trackAttributes_displayName);
}
}
{
jclass trackStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackStruct", trackStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$MediaPlaybackClusterTrackStruct");
return nullptr;
}
jmethodID trackStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, trackStructStructClass_1, "<init>",
"(Ljava/lang/String;Lchip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackAttributesStruct;)V",
&trackStructStructCtor_1);
if (err != CHIP_NO_ERROR || trackStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$MediaPlaybackClusterTrackStruct constructor");
return nullptr;
}
value = env->NewObject(trackStructStructClass_1, trackStructStructCtor_1, value_id, value_trackAttributes);
}
}
return value;
}
case Attributes::AvailableAudioTracks::Id: {
using TypeInfo = Attributes::AvailableAudioTracks::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_1 = cppValue.Value().begin();
while (iter_value_1.Next())
{
auto & entry_1 = iter_value_1.GetValue();
jobject newElement_1;
jobject newElement_1_id;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.id, newElement_1_id));
jobject newElement_1_trackAttributes;
if (entry_1.trackAttributes.IsNull())
{
newElement_1_trackAttributes = nullptr;
}
else
{
jobject newElement_1_trackAttributes_languageCode;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
entry_1.trackAttributes.Value().languageCode, newElement_1_trackAttributes_languageCode));
jobject newElement_1_trackAttributes_displayName;
if (!entry_1.trackAttributes.Value().displayName.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
nullptr, newElement_1_trackAttributes_displayName);
}
else
{
jobject newElement_1_trackAttributes_displayNameInsideOptional;
if (entry_1.trackAttributes.Value().displayName.Value().IsNull())
{
newElement_1_trackAttributes_displayNameInsideOptional = nullptr;
}
else
{
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
entry_1.trackAttributes.Value().displayName.Value().Value(),
newElement_1_trackAttributes_displayNameInsideOptional));
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
newElement_1_trackAttributes_displayNameInsideOptional, newElement_1_trackAttributes_displayName);
}
{
jclass trackAttributesStructStructClass_4;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackAttributesStruct",
trackAttributesStructStructClass_4);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$MediaPlaybackClusterTrackAttributesStruct");
return nullptr;
}
jmethodID trackAttributesStructStructCtor_4;
err = chip::JniReferences::GetInstance().FindMethod(env, trackAttributesStructStructClass_4, "<init>",
"(Ljava/lang/String;Ljava/util/Optional;)V",
&trackAttributesStructStructCtor_4);
if (err != CHIP_NO_ERROR || trackAttributesStructStructCtor_4 == nullptr)
{
ChipLogError(Zcl,
"Could not find ChipStructs$MediaPlaybackClusterTrackAttributesStruct constructor");
return nullptr;
}
newElement_1_trackAttributes =
env->NewObject(trackAttributesStructStructClass_4, trackAttributesStructStructCtor_4,
newElement_1_trackAttributes_languageCode, newElement_1_trackAttributes_displayName);
}
}
{
jclass trackStructStructClass_2;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackStruct", trackStructStructClass_2);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$MediaPlaybackClusterTrackStruct");
return nullptr;
}
jmethodID trackStructStructCtor_2;
err = chip::JniReferences::GetInstance().FindMethod(
env, trackStructStructClass_2, "<init>",
"(Ljava/lang/String;Lchip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackAttributesStruct;)V",
&trackStructStructCtor_2);
if (err != CHIP_NO_ERROR || trackStructStructCtor_2 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$MediaPlaybackClusterTrackStruct constructor");
return nullptr;
}
newElement_1 = env->NewObject(trackStructStructClass_2, trackStructStructCtor_2, newElement_1_id,
newElement_1_trackAttributes);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_1);
}
}
return value;
}
case Attributes::ActiveTextTrack::Id: {
using TypeInfo = Attributes::ActiveTextTrack::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
jobject value_id;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue.Value().id, value_id));
jobject value_trackAttributes;
if (cppValue.Value().trackAttributes.IsNull())
{
value_trackAttributes = nullptr;
}
else
{
jobject value_trackAttributes_languageCode;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
cppValue.Value().trackAttributes.Value().languageCode, value_trackAttributes_languageCode));
jobject value_trackAttributes_displayName;
if (!cppValue.Value().trackAttributes.Value().displayName.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
nullptr, value_trackAttributes_displayName);
}
else
{
jobject value_trackAttributes_displayNameInsideOptional;
if (cppValue.Value().trackAttributes.Value().displayName.Value().IsNull())
{
value_trackAttributes_displayNameInsideOptional = nullptr;
}
else
{
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
cppValue.Value().trackAttributes.Value().displayName.Value().Value(),
value_trackAttributes_displayNameInsideOptional));
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
value_trackAttributes_displayNameInsideOptional, value_trackAttributes_displayName);
}
{
jclass trackAttributesStructStructClass_3;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackAttributesStruct",
trackAttributesStructStructClass_3);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$MediaPlaybackClusterTrackAttributesStruct");
return nullptr;
}
jmethodID trackAttributesStructStructCtor_3;
err = chip::JniReferences::GetInstance().FindMethod(env, trackAttributesStructStructClass_3, "<init>",
"(Ljava/lang/String;Ljava/util/Optional;)V",
&trackAttributesStructStructCtor_3);
if (err != CHIP_NO_ERROR || trackAttributesStructStructCtor_3 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$MediaPlaybackClusterTrackAttributesStruct constructor");
return nullptr;
}
value_trackAttributes =
env->NewObject(trackAttributesStructStructClass_3, trackAttributesStructStructCtor_3,
value_trackAttributes_languageCode, value_trackAttributes_displayName);
}
}
{
jclass trackStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackStruct", trackStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$MediaPlaybackClusterTrackStruct");
return nullptr;
}
jmethodID trackStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(
env, trackStructStructClass_1, "<init>",
"(Ljava/lang/String;Lchip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackAttributesStruct;)V",
&trackStructStructCtor_1);
if (err != CHIP_NO_ERROR || trackStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$MediaPlaybackClusterTrackStruct constructor");
return nullptr;
}
value = env->NewObject(trackStructStructClass_1, trackStructStructCtor_1, value_id, value_trackAttributes);
}
}
return value;
}
case Attributes::AvailableTextTracks::Id: {
using TypeInfo = Attributes::AvailableTextTracks::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_1 = cppValue.Value().begin();
while (iter_value_1.Next())
{
auto & entry_1 = iter_value_1.GetValue();
jobject newElement_1;
jobject newElement_1_id;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_1.id, newElement_1_id));
jobject newElement_1_trackAttributes;
if (entry_1.trackAttributes.IsNull())
{
newElement_1_trackAttributes = nullptr;
}
else
{
jobject newElement_1_trackAttributes_languageCode;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
entry_1.trackAttributes.Value().languageCode, newElement_1_trackAttributes_languageCode));
jobject newElement_1_trackAttributes_displayName;
if (!entry_1.trackAttributes.Value().displayName.HasValue())
{
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
nullptr, newElement_1_trackAttributes_displayName);
}
else
{
jobject newElement_1_trackAttributes_displayNameInsideOptional;
if (entry_1.trackAttributes.Value().displayName.Value().IsNull())
{
newElement_1_trackAttributes_displayNameInsideOptional = nullptr;
}
else
{
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(
entry_1.trackAttributes.Value().displayName.Value().Value(),
newElement_1_trackAttributes_displayNameInsideOptional));
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateOptional(
newElement_1_trackAttributes_displayNameInsideOptional, newElement_1_trackAttributes_displayName);
}
{
jclass trackAttributesStructStructClass_4;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackAttributesStruct",
trackAttributesStructStructClass_4);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$MediaPlaybackClusterTrackAttributesStruct");
return nullptr;
}
jmethodID trackAttributesStructStructCtor_4;
err = chip::JniReferences::GetInstance().FindMethod(env, trackAttributesStructStructClass_4, "<init>",
"(Ljava/lang/String;Ljava/util/Optional;)V",
&trackAttributesStructStructCtor_4);
if (err != CHIP_NO_ERROR || trackAttributesStructStructCtor_4 == nullptr)
{
ChipLogError(Zcl,
"Could not find ChipStructs$MediaPlaybackClusterTrackAttributesStruct constructor");
return nullptr;
}
newElement_1_trackAttributes =
env->NewObject(trackAttributesStructStructClass_4, trackAttributesStructStructCtor_4,
newElement_1_trackAttributes_languageCode, newElement_1_trackAttributes_displayName);
}
}
{
jclass trackStructStructClass_2;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackStruct", trackStructStructClass_2);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$MediaPlaybackClusterTrackStruct");
return nullptr;
}
jmethodID trackStructStructCtor_2;
err = chip::JniReferences::GetInstance().FindMethod(
env, trackStructStructClass_2, "<init>",
"(Ljava/lang/String;Lchip/devicecontroller/ChipStructs$MediaPlaybackClusterTrackAttributesStruct;)V",
&trackStructStructCtor_2);
if (err != CHIP_NO_ERROR || trackStructStructCtor_2 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$MediaPlaybackClusterTrackStruct constructor");
return nullptr;
}
newElement_1 = env->NewObject(trackStructStructClass_2, trackStructStructCtor_2, newElement_1_id,
newElement_1_trackAttributes);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_1);
}
}
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- OnOff (0x0006) ---
case app::Clusters::OnOff::Id: {
using namespace app::Clusters::OnOff;
switch (aPath.mAttributeId)
{
case Attributes::OnOff::Id: {
using TypeInfo = Attributes::OnOff::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Boolean";
std::string valueCtorSignature = "(Z)V";
jboolean jnivalue = static_cast<jboolean>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::GlobalSceneControl::Id: {
using TypeInfo = Attributes::GlobalSceneControl::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Boolean";
std::string valueCtorSignature = "(Z)V";
jboolean jnivalue = static_cast<jboolean>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::OnTime::Id: {
using TypeInfo = Attributes::OnTime::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::OffWaitTime::Id: {
using TypeInfo = Attributes::OffWaitTime::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::StartUpOnOff::Id: {
using TypeInfo = Attributes::StartUpOnOff::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
if (cppValue.IsNull())
{
value = nullptr;
}
else
{
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue.Value());
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
}
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- TargetNavigator (0x0505) ---
case app::Clusters::TargetNavigator::Id: {
using namespace app::Clusters::TargetNavigator;
switch (aPath.mAttributeId)
{
case Attributes::TargetList::Id: {
using TypeInfo = Attributes::TargetList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
jobject newElement_0_identifier;
std::string newElement_0_identifierClassName = "java/lang/Integer";
std::string newElement_0_identifierCtorSignature = "(I)V";
jint jninewElement_0_identifier = static_cast<jint>(entry_0.identifier);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
newElement_0_identifierClassName.c_str(), newElement_0_identifierCtorSignature.c_str(),
jninewElement_0_identifier, newElement_0_identifier);
jobject newElement_0_name;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.name, newElement_0_name));
{
jclass targetInfoStructStructClass_1;
err = chip::JniReferences::GetInstance().GetLocalClassRef(
env, "chip/devicecontroller/ChipStructs$TargetNavigatorClusterTargetInfoStruct",
targetInfoStructStructClass_1);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "Could not find class ChipStructs$TargetNavigatorClusterTargetInfoStruct");
return nullptr;
}
jmethodID targetInfoStructStructCtor_1;
err = chip::JniReferences::GetInstance().FindMethod(env, targetInfoStructStructClass_1, "<init>",
"(Ljava/lang/Integer;Ljava/lang/String;)V",
&targetInfoStructStructCtor_1);
if (err != CHIP_NO_ERROR || targetInfoStructStructCtor_1 == nullptr)
{
ChipLogError(Zcl, "Could not find ChipStructs$TargetNavigatorClusterTargetInfoStruct constructor");
return nullptr;
}
newElement_0 = env->NewObject(targetInfoStructStructClass_1, targetInfoStructStructCtor_1,
newElement_0_identifier, newElement_0_name);
}
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::CurrentTarget::Id: {
using TypeInfo = Attributes::CurrentTarget::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
// --- WakeOnLAN (0x0503) ---
case app::Clusters::WakeOnLan::Id: {
using namespace app::Clusters::WakeOnLan;
switch (aPath.mAttributeId)
{
case Attributes::MACAddress::Id: {
using TypeInfo = Attributes::MACAddress::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(cppValue, value));
return value;
}
case Attributes::LinkLocalAddress::Id: {
using TypeInfo = Attributes::LinkLocalAddress::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
jbyteArray valueByteArray = env->NewByteArray(static_cast<jsize>(cppValue.size()));
env->SetByteArrayRegion(valueByteArray, 0, static_cast<jsize>(cppValue.size()),
reinterpret_cast<const jbyte *>(cppValue.data()));
value = valueByteArray;
return value;
}
case Attributes::GeneratedCommandList::Id: {
using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AcceptedCommandList::Id: {
using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::AttributeList::Id: {
using TypeInfo = Attributes::AttributeList::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateArrayList(value);
auto iter_value_0 = cppValue.begin();
while (iter_value_0.Next())
{
auto & entry_0 = iter_value_0.GetValue();
jobject newElement_0;
std::string newElement_0ClassName = "java/lang/Long";
std::string newElement_0CtorSignature = "(J)V";
jlong jninewElement_0 = static_cast<jlong>(entry_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().AddToList(value, newElement_0);
}
return value;
}
case Attributes::FeatureMap::Id: {
using TypeInfo = Attributes::FeatureMap::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Long";
std::string valueCtorSignature = "(J)V";
jlong jnivalue = static_cast<jlong>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
case Attributes::ClusterRevision::Id: {
using TypeInfo = Attributes::ClusterRevision::TypeInfo;
TypeInfo::DecodableType cppValue;
*aError = app::DataModel::Decode(aReader, cppValue);
if (*aError != CHIP_NO_ERROR)
{
return nullptr;
}
jobject value;
std::string valueClassName = "java/lang/Integer";
std::string valueCtorSignature = "(I)V";
jint jnivalue = static_cast<jint>(cppValue);
TEMPORARY_RETURN_IGNORED chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue, value);
return value;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
break;
}
default:
*aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
break;
}
return nullptr;
}
} // namespace chip