Description
Background
Now that Procedural Scheduling has been released, we are working on implementing Procedural Constraints. The workflow for using them will be very similar to scheduling goals: write a constraint in Java, compile a JAR, upload it via the Aerie UI, and add it to a plan using the same list UI that is used for eDSL constraints. Whereas procedural scheduling goals create activities on an editable plan, procedural constraints will return violations, ie. windows of time when the constraint is violated, and will not be able to edit the plan directly.
Procedural Scheduling goals use an annotation processor to look for classes with the annotation @SchedulingProcedure
and process them with ValueMappers
to generate the final goal/procedure code. It's located here:
Requirements
- Define a new annotation for constraints -
@SchedulingConstraint
or@ProceduralConstraint
?- or could re-use existing
@SchedulingProcedure
annotation, but might be confusing
- or could re-use existing
- Update the annotation processor (or create a new one) to process constraints and generate code that implements the correct interface
- Populate constraint parameter schemas stored in the DB based on the parameters from the generated code
Related Issues
Metadata
Assignees
Type
Projects
Status
Todo
Activity