@Override
    public void renderFinalOutput(List<T> data, EventModel eventModel) {
        if (StartMusicRequest.verify(eventModel, capabilities, this, activators)) {
            if (isOutputRunning()) {
                playerError(PlayerError.ERROR_ALREADY_PLAYING, eventModel.getSource());
            } else {
                handleEventRequest(eventModel);
            }
        } else if (eventModel.getListResourceContainer()
                .providesResource(Collections.singletonList(MusicUsageResource.ID))){
            if (isOutputRunning()) {
                eventModel.getListResourceContainer()
                        .provideResource(MusicUsageResource.ID)
                        .forEach(resourceModel ->
                                playerError(PlayerError.ERROR_ALREADY_PLAYING, resourceModel.getProvider()));
            } else {
                handleResourceRequest(eventModel);
            }
        } else {
            handleCommands(eventModel);
        }
    }
@ Override public void renderFinalOutput ( List < T > data , EventModel eventModel ) { if ( StartMusicRequest . verify ( eventModel , capabilities , this , activators ) ) { if ( isOutputRunning ( ) ) { playerError ( PlayerError . ERROR_ALREADY_PLAYING , eventModel . getSource ( ) ) ; } else { handleEventRequest ( eventModel ) ; } } else if ( eventModel . getListResourceContainer ( ) . providesResource ( Collections . singletonList ( MusicUsageResource . ID ) ) ) { if ( isOutputRunning ( ) ) { eventModel . getListResourceContainer ( ) . provideResource ( MusicUsageResource . ID ) . forEach ( resourceModel -> playerError ( PlayerError . ERROR_ALREADY_PLAYING , resourceModel . getProvider ( ) ) ) ; } else { handleResourceRequest ( eventModel ) ; } } else { handleCommands ( eventModel ) ; } }
method that uses the data from the OutputExtensions to generate a final output that will then be rendered.

@param data       the data generated
@param eventModel the Event which caused the whole thing