One goal of our Procedural Scheduling project is to support passing parameters to the new Java scheduling procedures to modify their behavior.
When writing the code for their scheduling procedures, users should be able to define parameters (and their types) which are allowed to be passed in as arguments.
Since the parameter values will be sent in serialized/JSON form, procedures must be able to deserialize them to their expected Java types.
This is analogous to how activity parameters are deserialized for simulation and we should reuse the same approach/code as much as possible (ValueMappers & code generation)
Aerie will need to support having multiple instances/invocations of the same Scheduling Procedure with different parameters in a single plan, whereas we are currently limited to one instance of a given Scheduling Goal.
The UI will need to display auto-generated form elements for the proper parameter types, to allow users to specify the parameter values (this could be a separate ticket).
Note that some of this overlaps with the DB changes noted in #1296 that @skovati is working on, but this ticket is focused on the backend logic/changes that are necessary to support parameters whereas #1296 is just for the DB structure.
Description & Requirements
One goal of our Procedural Scheduling project is to support passing parameters to the new Java scheduling procedures to modify their behavior.
Note that some of this overlaps with the DB changes noted in #1296 that @skovati is working on, but this ticket is focused on the backend logic/changes that are necessary to support parameters whereas #1296 is just for the DB structure.