code: private Wave createWave(final WaveGroup waveGroup, final WaveType waveType, final Class<?> componentClass, final WaveData<?>... waveData) {
  
          final Wave wave = wave()
                                  .waveGroup(waveGroup)
                                  .waveType(waveType)
                                  .fromClass(this.getClass())
                                  .componentClass(componentClass)
                                  .addDatas(waveData);
  
          // Track wave creation
          localFacade().globalFacade().trackEvent(JRebirthEventType.CREATE_WAVE, this.getClass(), wave.getClass());
  
          return wave;
      }
docs: Build a wave object.
  
  @param waveGroup the group of the wave
  @param waveType the type of the wave
  @param componentClass the component class if any
  @param waveData wave data to use
  
  @return the wave built