From ff7abe89f57424798f1650e931876fa324d35cfd Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Fri, 23 May 2025 12:15:45 -0500 Subject: [PATCH] Add overload constructor that takes al ist of field names (e.g., in support of api-versioning) --- .../frontend/QFrontendTableMetaData.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/frontend/QFrontendTableMetaData.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/frontend/QFrontendTableMetaData.java index 01b7832e..512ce091 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/frontend/QFrontendTableMetaData.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/frontend/QFrontendTableMetaData.java @@ -85,23 +85,35 @@ public class QFrontendTableMetaData // do not add setters. take values from the source-object in the constructor!! // ////////////////////////////////////////////////////////////////////////////////// + /*************************************************************************** + ** standard constructor - uses all fields on the table. + ***************************************************************************/ + public QFrontendTableMetaData(AbstractActionInput actionInput, QBackendMetaData backendForTable, QTableMetaData tableMetaData, boolean includeFullMetaData, boolean includeJoins) + { + this(actionInput, backendForTable, tableMetaData, includeFullMetaData, includeJoins, tableMetaData.getFields()); + } + + /******************************************************************************* - ** + ** alternative constructor - takes a map of fields to use (e.g., for an old + ** api version of the table w/ different fields!) *******************************************************************************/ - public QFrontendTableMetaData(AbstractActionInput actionInput, QBackendMetaData backendForTable, QTableMetaData tableMetaData, boolean includeFullMetaData, boolean includeJoins) + public QFrontendTableMetaData(AbstractActionInput actionInput, QBackendMetaData backendForTable, QTableMetaData tableMetaData, boolean includeFullMetaData, boolean includeJoins, Map overrideFields) { this.name = tableMetaData.getName(); this.label = tableMetaData.getLabel(); this.isHidden = tableMetaData.getIsHidden(); + Map inputFields = overrideFields == null ? tableMetaData.getFields() : overrideFields; + if(includeFullMetaData) { this.primaryKeyField = tableMetaData.getPrimaryKeyField(); this.fields = new HashMap<>(); - for(String fieldName : tableMetaData.getFields().keySet()) + for(String fieldName : inputFields.keySet()) { - QFieldMetaData field = tableMetaData.getField(fieldName); + QFieldMetaData field = inputFields.get(fieldName); if(!field.getIsHidden()) { this.fields.put(fieldName, new QFrontendFieldMetaData(field));