@ -66,29 +66,28 @@ public class RelatedEntitiesArgumentEntry implements ArgumentEntry, HasLatestTs
@Override
public boolean updateEntry ( ArgumentEntry entry , CalculatedFieldCtx ctx ) {
if ( entry instanceof RelatedEntitiesArgumentEntry relatedEntitiesArgumentEntry ) {
checkMaxRelatedEntitiesPerArgument ( ctx ) ;
checkRelatedEntitiesNumber ( ctx ) ;
entityInputs . putAll ( relatedEntitiesArgumentEntry . entityInputs ) ;
return true ;
} else if ( entry instanceof SingleValueArgumentEntry singleValueArgumentEntry ) {
if ( entry . isForceResetPrevious ( ) ) {
checkMaxRelatedEntitiesPerArgument ( ctx ) ;
checkRelatedEntitiesNumber ( ctx ) ;
entityInputs . put ( singleValueArgumentEntry . getEntityId ( ) , singleValueArgumentEntry ) ;
return true ;
}
ArgumentEntry argumentEntry = entityInputs . get ( singleValueArgumentEntry . getEntityId ( ) ) ;
if ( argumentEntry ! = null ) {
argumentEntry . updateEntry ( singleValueArgumentEntry , ctx ) ;
} else {
checkMaxRelatedEntitiesPerArgument ( ctx ) ;
entityInputs . put ( singleValueArgumentEntry . getEntityId ( ) , singleValueArgumentEntry ) ;
ArgumentEntry argumentEntry = entityInputs . get ( singleValueArgumentEntry . getEntityId ( ) ) ;
if ( argumentEntry ! = null ) {
argumentEntry . updateEntry ( singleValueArgumentEntry , ctx ) ;
} else {
checkRelatedEntitiesNumber ( ctx ) ;
entityInputs . put ( singleValueArgumentEntry . getEntityId ( ) , singleValueArgumentEntry ) ;
}
}
return true ;
} else {
throw new IllegalArgumentException ( "Unsupported argument entry type for aggregation argument entry: " + entry . getType ( ) ) ;
}
return true ;
}
private void checkMaxRelatedEntitiesPerArgument ( CalculatedFieldCtx ctx ) {
private void checkRelatedEntitiesNumber ( CalculatedFieldCtx ctx ) {
if ( entityInputs . size ( ) > = ctx . getMaxRelatedEntitiesPerCfArgument ( ) ) {
throw new IllegalArgumentException (
"Exceeded the maximum allowed related entities per argument '"