Feature activity type value mappers
- Tickets addressed: #1280
- Review: By commit
- Merge strategy: Merge (no squash)
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.