mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 21:20:45 +00:00
Add processing of subFilters to interpretValues
This commit is contained in:
@ -659,6 +659,21 @@ public class QQueryFilter implements Serializable, Cloneable, QMetaDataObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////
|
||||||
|
// recursively process sub filters! //
|
||||||
|
//////////////////////////////////////
|
||||||
|
for(QQueryFilter subFilter : CollectionUtils.nonNullList(getSubFilters()))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
subFilter.interpretValues(inputValues, useCase);
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
caughtExceptions.add(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(!caughtExceptions.isEmpty())
|
if(!caughtExceptions.isEmpty())
|
||||||
{
|
{
|
||||||
String message = "Error interpreting filter values: " + StringUtils.joinWithCommasAndAnd(caughtExceptions.stream().map(e -> e.getMessage()).toList());
|
String message = "Error interpreting filter values: " + StringUtils.joinWithCommasAndAnd(caughtExceptions.stream().map(e -> e.getMessage()).toList());
|
||||||
@ -824,6 +839,7 @@ public class QQueryFilter implements Serializable, Cloneable, QMetaDataObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
** Getter for subFilterSetOperator
|
** Getter for subFilterSetOperator
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
@ -854,6 +870,7 @@ public class QQueryFilter implements Serializable, Cloneable, QMetaDataObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
**
|
**
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
@ -73,6 +73,27 @@ class QQueryFilterTest extends BaseTest
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
**
|
||||||
|
*******************************************************************************/
|
||||||
|
@Test
|
||||||
|
void testInterpretValuesSubFilter() throws QException
|
||||||
|
{
|
||||||
|
Map<String, Serializable> inputValues = new HashMap<>();
|
||||||
|
inputValues.put("clientIdEquals1", "value");
|
||||||
|
|
||||||
|
AbstractFilterExpression<Serializable> expression = new FilterVariableExpression()
|
||||||
|
.withVariableName("clientIdEquals1");
|
||||||
|
|
||||||
|
QQueryFilter qQueryFilter = new QQueryFilter()
|
||||||
|
.withSubFilter(new QQueryFilter(new QFilterCriteria("id", EQUALS, expression)));
|
||||||
|
qQueryFilter.interpretValues(inputValues);
|
||||||
|
|
||||||
|
assertEquals("value", qQueryFilter.getSubFilters().get(0).getCriteria().get(0).getValues().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
Reference in New Issue
Block a user