CE-881 - Add DynamicDefaultValueBehavior to @QField

This commit is contained in:
2024-03-27 19:56:01 -05:00
parent e86d581fe4
commit c683794343
2 changed files with 12 additions and 1 deletions

View File

@ -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 //
//////////////////////////////////////////////////////////////////////////////////////////

View File

@ -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());