Feature activity type value mappers #1294
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This pr adds support for using activity types as parameters from within activities. New type rules were added to recognize activity types and point to their value mappers when generating the activityMapper code. This ability required the addition of ActivityMapperRecords and ActivityValueMapperRecords for InputType records to point to the correct locations for the old ActivityMappers and new ActivityValueMappers as part of the MissionModelGenerator. One aditional autogenerated file called ActivityValueMappers will be added to the generate files of a model and will contain helper methods to retrieve value mappers for activity types to be used by activityMapper files. The ActivityValueMapper record is the interstitial layer which takes in an activityMapper and returns a valid valueMapper for said activity.
A new activity called RussianNestingBanana illustrates the various use cases for these types of parameters and has been added to the Banananation model.
Verification
There is a unit test script called RussianNestingActivityTest which tests we are able to serialize an example activity utilizing this feature (RussianNestingBanana) and simulate with calls to child activities.
Documentation
At the moment we just have comments in the RussianNestingBananaActivity but we could add info to the docs if necessary.
Future work
Perhaps we will need further testing in aerie. Further work on the aerie-ui and database is not necessary to allow this pr to work, however, applying custom UI elements for selecting presets to apply on specific activity type parameters would be very useful to help certain pointing planning workflows for the clipper model.