feat: interaction activities in withinday replanning #2969
Merged
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.
I just noticed something interesting: I'm working with within-day replanning and I'm using
RoutingModule
s to replace certain parts of the agent schedule at the beginning of the simulation. The predefinedRoutingModule
s may createInteractionActivity
s which I then integrate into the modifiable plan of an agent. This is a problem, becauseBasicAgentImpl
eventually will callsetStartTime
on the activity one the agent arrives there, but this method is not defined for the specializedInteractionActivity
. The reason why things work normally is that upon simulation start-up allInteractionActivity
are automatically copied into a classicActivity
that is used in the modifiable plan of the agent during the QSim.This means that whenever we use
RoutingModule
s and insert the results in an ongoing agent plan within-day, we need to be able to manually convert the interaction activities to standard activity objects. This PR adds this functionaity:PopulationUtils.convertInteractionToStandardActivity
converts an activity to a standard one if it is an interaction activityWithinDayAgentUtils.convertInteractionActivities
fixes a list of plan elements coming from a routing module if necessary