diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/customizers/RecordCustomizerUtilityInterface.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/customizers/RecordCustomizerUtilityInterface.java index fa91e9ab..53947578 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/customizers/RecordCustomizerUtilityInterface.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/actions/customizers/RecordCustomizerUtilityInterface.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import com.kingsrook.qqq.backend.core.context.QContext; import com.kingsrook.qqq.backend.core.logging.QLogger; import com.kingsrook.qqq.backend.core.model.actions.tables.update.UpdateInput; @@ -160,4 +161,18 @@ public interface RecordCustomizerUtilityInterface return (oldRecordMap); } + + /*************************************************************************** + ** + ***************************************************************************/ + static T getValueFromRecordOrOldRecord(String fieldName, QRecord record, Serializable primaryKey, Optional> oldRecordMap) + { + T value = (T) record.getValue(fieldName); + if(value == null && primaryKey != null && oldRecordMap.isPresent() && oldRecordMap.get().containsKey(primaryKey)) + { + value = (T) oldRecordMap.get().get(primaryKey).getValue(fieldName); + } + return value; + } + }