From c683794343c2b0b235dbd17c35a1e950bab5dc57 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Wed, 27 Mar 2024 19:56:01 -0500 Subject: [PATCH] CE-881 - Add DynamicDefaultValueBehavior to @QField --- .../com/kingsrook/qqq/backend/core/model/data/QField.java | 6 ++++++ .../backend/core/model/metadata/fields/QFieldMetaData.java | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QField.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QField.java index 8744362c..c13b87f5 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QField.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/data/QField.java @@ -26,6 +26,7 @@ import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import com.kingsrook.qqq.backend.core.model.metadata.fields.DynamicDefaultValueBehavior; import com.kingsrook.qqq.backend.core.model.metadata.fields.ValueTooLongBehavior; @@ -88,6 +89,11 @@ public @interface QField *******************************************************************************/ ValueTooLongBehavior valueTooLongBehavior() default ValueTooLongBehavior.PASS_THROUGH; + /******************************************************************************* + ** + *******************************************************************************/ + DynamicDefaultValueBehavior dynamicDefaultValueBehavior() default DynamicDefaultValueBehavior.NONE; + ////////////////////////////////////////////////////////////////////////////////////////// // new attributes here likely need implementation in QFieldMetaData.constructFromGetter // ////////////////////////////////////////////////////////////////////////////////////////// diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldMetaData.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldMetaData.java index 3a72dedb..a1d7ea4d 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldMetaData.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/fields/QFieldMetaData.java @@ -221,11 +221,16 @@ public class QFieldMetaData implements Cloneable setMaxLength(fieldAnnotation.maxLength()); } - if(fieldAnnotation.valueTooLongBehavior() != ValueTooLongBehavior.PASS_THROUGH) + if(fieldAnnotation.valueTooLongBehavior() != ValueTooLongBehavior.values()[0].getDefault()) { withBehavior(fieldAnnotation.valueTooLongBehavior()); } + if(fieldAnnotation.dynamicDefaultValueBehavior() != DynamicDefaultValueBehavior.values()[0].getDefault()) + { + withBehavior(fieldAnnotation.dynamicDefaultValueBehavior()); + } + if(StringUtils.hasContent(fieldAnnotation.defaultValue())) { ValueUtils.getValueAsFieldType(this.type, fieldAnnotation.defaultValue());