code: @Override
      public void addListener(@Nonnull final LifecycleStage lifecycleStage, @Nonnull final LifecycleListener lifecycleListener)
      {
          if (!listeners.containsKey(lifecycleStage)) {
              throw illegalStage(lifecycleStage);
          }
          listeners.get(lifecycleStage).add(lifecycleListener);
      }
docs: Adds a listener to a lifecycle stage.
  
  @param lifecycleStage    The Lifecycle stage on which to be notified.
  @param lifecycleListener Callback to be invoked when the lifecycle stage is executed.