mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 05:01:07 +00:00
Fix formatting of booleans when value is string (e.g., format based on QFieldMetaData type, not value object class)
This commit is contained in:
@ -68,7 +68,7 @@ public class QValueFormatter
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public static String formatValue(QFieldMetaData field, Serializable value)
|
public static String formatValue(QFieldMetaData field, Serializable value)
|
||||||
{
|
{
|
||||||
return (formatValue(field.getDisplayFormat(), field.getName(), value));
|
return (formatValue(field.getDisplayFormat(), field.getType(), field.getName(), value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ public class QValueFormatter
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public static String formatValue(String displayFormat, Serializable value)
|
public static String formatValue(String displayFormat, Serializable value)
|
||||||
{
|
{
|
||||||
return (formatValue(displayFormat, "", value));
|
return (formatValue(displayFormat, null, "", value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ public class QValueFormatter
|
|||||||
** For a display format string, an optional fieldName (only used for logging),
|
** For a display format string, an optional fieldName (only used for logging),
|
||||||
** and a value, apply the format.
|
** and a value, apply the format.
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
private static String formatValue(String displayFormat, String fieldName, Serializable value)
|
private static String formatValue(String displayFormat, QFieldType fieldType, String fieldName, Serializable value)
|
||||||
{
|
{
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
// null values get null results //
|
// null values get null results //
|
||||||
@ -107,6 +107,11 @@ public class QValueFormatter
|
|||||||
return formatBoolean(b);
|
return formatBoolean(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(QFieldType.BOOLEAN.equals(fieldType))
|
||||||
|
{
|
||||||
|
return formatBoolean(ValueUtils.getValueAsBoolean(value));
|
||||||
|
}
|
||||||
|
|
||||||
if(value instanceof LocalTime lt)
|
if(value instanceof LocalTime lt)
|
||||||
{
|
{
|
||||||
return formatLocalTime(lt);
|
return formatLocalTime(lt);
|
||||||
@ -404,6 +409,7 @@ public class QValueFormatter
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
** For a single record, set its display values - where caller (meant to stay private)
|
** For a single record, set its display values - where caller (meant to stay private)
|
||||||
** can specify if they've already done fieldBehaviors (to avoid re-doing).
|
** can specify if they've already done fieldBehaviors (to avoid re-doing).
|
||||||
|
@ -36,10 +36,10 @@ import com.kingsrook.qqq.backend.core.BaseTest;
|
|||||||
import com.kingsrook.qqq.backend.core.context.QContext;
|
import com.kingsrook.qqq.backend.core.context.QContext;
|
||||||
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
import com.kingsrook.qqq.backend.core.model.data.QRecord;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
||||||
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.DateTimeDisplayValueBehavior;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.DisplayFormat;
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.DisplayFormat;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
|
import com.kingsrook.qqq.backend.core.model.metadata.fields.QFieldType;
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.fields.DateTimeDisplayValueBehavior;
|
|
||||||
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.utils.TestUtils;
|
import com.kingsrook.qqq.backend.core.utils.TestUtils;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@ -89,6 +89,10 @@ class QValueFormatterTest extends BaseTest
|
|||||||
assertNull(QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), null));
|
assertNull(QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), null));
|
||||||
assertEquals("Yes", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), true));
|
assertEquals("Yes", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), true));
|
||||||
assertEquals("No", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), false));
|
assertEquals("No", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), false));
|
||||||
|
assertEquals("Yes", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), "true"));
|
||||||
|
assertEquals("No", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.BOOLEAN), "false"));
|
||||||
|
assertEquals("true", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.STRING), "true"));
|
||||||
|
assertEquals("false", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.STRING), "false"));
|
||||||
|
|
||||||
assertNull(QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.TIME), null));
|
assertNull(QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.TIME), null));
|
||||||
assertEquals("5:00:00 AM", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.TIME), LocalTime.of(5, 0)));
|
assertEquals("5:00:00 AM", QValueFormatter.formatValue(new QFieldMetaData().withType(QFieldType.TIME), LocalTime.of(5, 0)));
|
||||||
|
Reference in New Issue
Block a user