Add method addJoinedRecordValues

This commit is contained in:
2025-01-16 10:22:02 -06:00
parent 459629b449
commit 84d41858b2
2 changed files with 39 additions and 1 deletions

View File

@ -154,7 +154,7 @@ public class QRecord implements Serializable
return (null); return (null);
} }
Map<String, V> clone = new LinkedHashMap<>(); Map<String, V> clone = new LinkedHashMap<>(map.size());
for(Map.Entry<String, V> entry : map.entrySet()) for(Map.Entry<String, V> entry : map.entrySet())
{ {
Serializable value = entry.getValue(); Serializable value = entry.getValue();
@ -246,6 +246,24 @@ public class QRecord implements Serializable
} }
/***************************************************************************
** copy all values from 'joinedRecord' into this record's values map,
** prefixing field names with joinTableNam + "."
***************************************************************************/
public void addJoinedRecordValues(String joinTableName, QRecord joinedRecord)
{
if(joinedRecord == null)
{
return;
}
for(Map.Entry<String, Serializable> entry : joinedRecord.getValues().entrySet())
{
setValue(joinTableName + "." + entry.getKey(), entry.getValue());
}
}
/******************************************************************************* /*******************************************************************************
** **

View File

@ -291,4 +291,24 @@ class QRecordTest extends BaseTest
assertFalse(jsonObject.has("errorsAsString")); assertFalse(jsonObject.has("errorsAsString"));
} }
/*******************************************************************************
**
*******************************************************************************/
@Test
void testAddJoinedRecordValues()
{
QRecord order = new QRecord().withValue("id", 1).withValue("shipTo", "St. Louis");
order.addJoinedRecordValues("orderInstructions", null);
assertEquals(2, order.getValues().size());
QRecord orderInstructions = new QRecord().withValue("id", 100).withValue("instructions", "Be Careful");
order.addJoinedRecordValues("orderInstructions", orderInstructions);
assertEquals(4, order.getValues().size());
assertEquals(100, order.getValue("orderInstructions.id"));
assertEquals("Be Careful", order.getValue("orderInstructions.instructions"));
}
} }