question: private List < FahrzeitEvent > addFahrtInfoToFahrzeitEvents ( List < FahrtEvent > fahrtEvents , List < FahrzeitEvent > fahrzeitEvents , boolean keepFahrzeitEventsWithoutFahrtEvent ) { List < FahrzeitEvent > fahrzeitEventsOut = new LinkedList < FahrzeitEvent > ( ) ; Map < String , FahrtEvent > rblDateKursDateTimeIst2FahrtEventMap = new HashMap < String , FahrtEvent > ( ) ; Set < String > searchStrings = new TreeSet < String > ( ) ; for ( FahrtEvent fahrtEvent : fahrtEvents ) { String searchId = String . valueOf ( fahrtEvent . getRblDate ( ) ) + String . valueOf ( fahrtEvent . getKurs ( ) ) + fahrtEvent . getDepartureDateIst ( ) + fahrtEvent . getDepartureTimeIst ( ) ; if ( searchStrings . contains ( searchId ) ) { log . warn ( "Search string already exists. This should not happen. " + searchId ) ; } else { searchStrings . add ( searchId ) ; rblDateKursDateTimeIst2FahrtEventMap . put ( searchId , fahrtEvent ) ; } } int numberOfMissingFahrtEvents = 0 ; for ( FahrzeitEvent fahrzeitEvent : fahrzeitEvents ) { String searchId = String . valueOf ( fahrzeitEvent . getRblDate ( ) ) + String . valueOf ( fahrzeitEvent . getKurs ( ) ) + fahrzeitEvent . getDepartureDateIst ( ) + fahrzeitEvent . getDepartureTimeIst ( ) ; FahrtEvent fahrtEvent = rblDateKursDateTimeIst2FahrtEventMap . get ( searchId ) ; if ( fahrtEvent == null ) { numberOfMissingFahrtEvents ++ ; if ( keepFahrzeitEventsWithoutFahrtEvent ) { fahrzeitEventsOut . add ( fahrzeitEvent ) ; } } else { fahrzeitEvent . add ( fahrtEvent ) ; fahrzeitEventsOut . add ( fahrzeitEvent ) ; } } log . info ( numberOfMissingFahrtEvents + " fahrzeit events could not be linked to a fahrt event" ) ; log . info ( "Returning " + fahrzeitEventsOut . size ( ) + " fahrzeitEvents" ) ; return fahrzeitEventsOut ; }
target:  Link fahrzeit events to the corresponding fahrt event