Migrate `EnergyPreference` cluster to codedriven implementation PR #1 (file rename) (#73085)

* File rename

* Restyled by whitespace

* Add includes

* Add `#pragma once`

* Restyled by whitespace

---------

Co-authored-by: Restyled.io <commits@restyled.io>
diff --git a/src/app/clusters/energy-preference-server/energy-preference-server.cpp b/src/app/clusters/energy-preference-server/CodegenIntegration.cpp
similarity index 100%
rename from src/app/clusters/energy-preference-server/energy-preference-server.cpp
rename to src/app/clusters/energy-preference-server/CodegenIntegration.cpp
diff --git a/src/app/clusters/energy-preference-server/app_config_dependent_sources.cmake b/src/app/clusters/energy-preference-server/app_config_dependent_sources.cmake
index 75b2685..c8d00a5 100644
--- a/src/app/clusters/energy-preference-server/app_config_dependent_sources.cmake
+++ b/src/app/clusters/energy-preference-server/app_config_dependent_sources.cmake
@@ -16,6 +16,7 @@
 TARGET_SOURCES(
   ${APP_TARGET}
   PRIVATE
-    "${CLUSTER_DIR}/energy-preference-server.cpp"
+    "${CLUSTER_DIR}/CodegenIntegration.cpp"
+    "${CLUSTER_DIR}/energy-preference-delegate.h"
     "${CLUSTER_DIR}/energy-preference-server.h"
 )
\ No newline at end of file
diff --git a/src/app/clusters/energy-preference-server/app_config_dependent_sources.gni b/src/app/clusters/energy-preference-server/app_config_dependent_sources.gni
index cc6b5b7..5ec1ae9 100644
--- a/src/app/clusters/energy-preference-server/app_config_dependent_sources.gni
+++ b/src/app/clusters/energy-preference-server/app_config_dependent_sources.gni
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 app_config_dependent_sources = [
-  "energy-preference-server.cpp",
+  "CodegenIntegration.cpp",
+  "energy-preference-delegate.h",
   "energy-preference-server.h",
 ]
diff --git a/src/app/clusters/energy-preference-server/energy-preference-delegate.h b/src/app/clusters/energy-preference-server/energy-preference-delegate.h
new file mode 100644
index 0000000..9a5eab7
--- /dev/null
+++ b/src/app/clusters/energy-preference-server/energy-preference-delegate.h
@@ -0,0 +1,109 @@
+/**
+ *
+ *    Copyright (c) 2024 Project CHIP Authors
+ *
+ *    Licensed under the Apache License, Version 2.0 (the "License");
+ *    you may not use this file except in compliance with the License.
+ *    You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ */
+
+#pragma once
+
+#include <stddef.h>
+
+#include <app-common/zap-generated/cluster-enums.h>
+#include <app-common/zap-generated/cluster-objects.h>
+#include <app/util/basic-types.h>
+#include <lib/core/CHIPError.h>
+#include <lib/core/Optional.h>
+#include <lib/support/Span.h>
+
+namespace chip::app::Clusters::EnergyPreference {
+
+struct Delegate
+{
+    // Note: This delegate does not handle the "Current Active" indexes attributes storage.
+    // eg: Current Energy Balance and Current Low Power Mode Sensitivity.  These can be handled using
+    // ember built in storage, or via the external callbacks as desired by the implementer.
+
+    virtual ~Delegate() {}
+
+    /**
+     * Get an Energy Balance.
+     *
+     * The delegate method is called by the cluster to fill out the
+     * values for the list in EnergyBalances attribute. Storage for
+     * both aOutStep and aOutLabel is provided by the caller.
+     *
+     * @param aEndpoint The endpoint to query.
+     * @param aIndex The index of the balance, with 0 representing the first one.
+     * @param aOutStep The Step value from BalanceStruct
+     *
+     * @param aOutLabel The Label value from BalanceStruct. Storage is
+     * provided by the caller, and is large enough to accomodate the
+     * longest label (64 chars), on successful return the size of the span must be
+     * adjusted to reflect the length of the value, or ClearValue() called on the Optional to indicate there is no label.
+     *
+     * @return CHIP_ERROR_NOT_FOUND if the index is out of range.
+     */
+    virtual CHIP_ERROR GetEnergyBalanceAtIndex(chip::EndpointId aEndpoint, size_t aIndex, chip::Percent & aOutStep,
+                                               chip::Optional<chip::MutableCharSpan> & aOutLabel) = 0;
+
+    /**
+     * Get an Energy Priority.
+     * @param aEndpoint The endpoint to query.
+     * @param aIndex The index of the priority, with 0 representing the first one.
+     * @param aOutPriority The EnergyPriorityEnum to copy the data into.
+     * @return CHIP_ERROR_NOT_FOUND if the index is out of range.
+     */
+    virtual CHIP_ERROR GetEnergyPriorityAtIndex(chip::EndpointId aEndpoint, size_t aIndex,
+                                                chip::app::Clusters::EnergyPreference::EnergyPriorityEnum & aOutPriority) = 0;
+
+    /**
+     * Get a Power Sensitity Balance Struct data at the specified index.
+     *
+     * The delegate method is called by the cluster to fill out the
+     * values for the list in LowPowerSensitivities attribute. Storage for
+     * both aOutStep and aOutLabel is provided by the caller.
+     *
+     * @param aEndpoint The endpoint to query.
+     * @param aIndex The index of the priority, with 0 representing the first one.
+     * @param aOutStep The Step value from BalanceStruct
+     *
+     * @param aOutLabel The Label value from BalanceStruct. Storage is
+     * provided by the caller, and is large enough to accomodate the
+     * longest label (64 chars), on successful return the size of the span must be
+     * adjusted to reflect the length of the value, or ClearValue() called on the Optional to indicate there is no label.
+     *
+     * @return CHIP_ERROR_NOT_FOUND if the index is out of range.
+     */
+    virtual CHIP_ERROR GetLowPowerModeSensitivityAtIndex(chip::EndpointId aEndpoint, size_t aIndex, chip::Percent & aOutStep,
+                                                         chip::Optional<chip::MutableCharSpan> & aOutLabel) = 0;
+
+    /**
+     * Get the number of energy balances this endpoint has.
+     * @param aEndpoint The endpoint to query.
+     * @return the number of balance structs in the list.
+     */
+    virtual size_t GetNumEnergyBalances(chip::EndpointId aEndpoint) = 0;
+
+    /**
+     * Get the number of low power mode sensitivities this endpoint has.
+     * @param aEndpoint The endpoint to query.
+     * @return the number of balance structs in the list.
+     */
+    virtual size_t GetNumLowPowerModeSensitivities(chip::EndpointId aEndpoint) = 0;
+};
+
+void SetDelegate(Delegate * aDelegate);
+Delegate * GetDelegate();
+
+} // namespace chip::app::Clusters::EnergyPreference
diff --git a/src/app/clusters/energy-preference-server/energy-preference-server.h b/src/app/clusters/energy-preference-server/energy-preference-server.h
index 7710578..f194326 100644
--- a/src/app/clusters/energy-preference-server/energy-preference-server.h
+++ b/src/app/clusters/energy-preference-server/energy-preference-server.h
@@ -1,107 +1,2 @@
-/**
- *
- *    Copyright (c) 2024 Project CHIP Authors
- *
- *    Licensed under the Apache License, Version 2.0 (the "License");
- *    you may not use this file except in compliance with the License.
- *    You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- */
-
 #pragma once
-
-#include <stddef.h>
-
-#include <app-common/zap-generated/cluster-enums.h>
-#include <app-common/zap-generated/cluster-objects.h>
-#include <app/util/basic-types.h>
-#include <lib/core/CHIPError.h>
-
-namespace chip::app::Clusters::EnergyPreference {
-
-struct Delegate
-{
-    // Note: This delegate does not handle the "Current Active" indexes attributes storage.
-    // eg: Current Energy Balance and Current Low Power Mode Sensitivity.  These can be handled using
-    // ember built in storage, or via the external callbacks as desired by the implementer.
-
-    virtual ~Delegate() {}
-
-    /**
-     * Get an Energy Balance.
-     *
-     * The delegate method is called by the cluster to fill out the
-     * values for the list in EnergyBalances attribute. Storage for
-     * both aOutStep and aOutLabel is provided by the caller.
-     *
-     * @param aEndpoint The endpoint to query.
-     * @param aIndex The index of the balance, with 0 representing the first one.
-     * @param aOutStep The Step value from BalanceStruct
-     *
-     * @param aOutLabel The Label value from BalanceStruct. Storage is
-     * provided by the caller, and is large enough to accomodate the
-     * longest label (64 chars), on successful return the size of the span must be
-     * adjusted to reflect the length of the value, or ClearValue() called on the Optional to indicate there is no label.
-     *
-     * @return CHIP_ERROR_NOT_FOUND if the index is out of range.
-     */
-    virtual CHIP_ERROR GetEnergyBalanceAtIndex(chip::EndpointId aEndpoint, size_t aIndex, chip::Percent & aOutStep,
-                                               chip::Optional<chip::MutableCharSpan> & aOutLabel) = 0;
-
-    /**
-     * Get an Energy Priority.
-     * @param aEndpoint The endpoint to query.
-     * @param aIndex The index of the priority, with 0 representing the first one.
-     * @param aOutPriority The EnergyPriorityEnum to copy the data into.
-     * @return CHIP_ERROR_NOT_FOUND if the index is out of range.
-     */
-    virtual CHIP_ERROR GetEnergyPriorityAtIndex(chip::EndpointId aEndpoint, size_t aIndex,
-                                                chip::app::Clusters::EnergyPreference::EnergyPriorityEnum & aOutPriority) = 0;
-
-    /**
-     * Get a Power Sensitity Balance Struct data at the specified index.
-     *
-     * The delegate method is called by the cluster to fill out the
-     * values for the list in LowPowerSensitivities attribute. Storage for
-     * both aOutStep and aOutLabel is provided by the caller.
-     *
-     * @param aEndpoint The endpoint to query.
-     * @param aIndex The index of the priority, with 0 representing the first one.
-     * @param aOutStep The Step value from BalanceStruct
-     *
-     * @param aOutLabel The Label value from BalanceStruct. Storage is
-     * provided by the caller, and is large enough to accomodate the
-     * longest label (64 chars), on successful return the size of the span must be
-     * adjusted to reflect the length of the value, or ClearValue() called on the Optional to indicate there is no label.
-     *
-     * @return CHIP_ERROR_NOT_FOUND if the index is out of range.
-     */
-    virtual CHIP_ERROR GetLowPowerModeSensitivityAtIndex(chip::EndpointId aEndpoint, size_t aIndex, chip::Percent & aOutStep,
-                                                         chip::Optional<chip::MutableCharSpan> & aOutLabel) = 0;
-
-    /**
-     * Get the number of energy balances this endpoint has.
-     * @param aEndpoint The endpoint to query.
-     * @return the number of balance structs in the list.
-     */
-    virtual size_t GetNumEnergyBalances(chip::EndpointId aEndpoint) = 0;
-
-    /**
-     * Get the number of low power mode sensitivities this endpoint has.
-     * @param aEndpoint The endpoint to query.
-     * @return the number of balance structs in the list.
-     */
-    virtual size_t GetNumLowPowerModeSensitivities(chip::EndpointId aEndpoint) = 0;
-};
-
-void SetDelegate(Delegate * aDelegate);
-Delegate * GetDelegate();
-
-} // namespace chip::app::Clusters::EnergyPreference
+#include "energy-preference-delegate.h"