Skip to content

Annotation Processor updates for Procedural Constraints #1571

Open
@dandelany

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:

procedural/processor/src/main/java/gov/nasa/ammos/aerie/procedural/processor/SchedulingProcedureProcessor.java

Requirements

  • Define a new annotation for constraints - @SchedulingConstraint or @ProceduralConstraint?
    • or could re-use existing @SchedulingProcedure annotation, but might be confusing
  • 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

#1572, NASA-AMMOS/aerie-ui#1478

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Labels

constraintsAnything related to the constraints domainfeatureA new feature or feature request

Type

No type

Projects

  • Status

    Todo

Relationships

None yet

Development

No branches or pull requests

Issue actions