code: @Override
      public Wave addDatas(final WaveData<?>... waveDatas) {
  
          for (final WaveData<?> waveData : waveDatas) {
  
              // Init the order of the wave Data
              waveData.order(waveDatas().size());
  
              // Grab the previous value if any
              final WaveData<?> previous = this.waveItemsMap.get(waveData.key());
  
              // Store into the map to allow access by WaveItem
              this.waveItemsMap.put(waveData.key(), waveData);
  
              // Remove the old value from the list
              if (previous != null) {
                  this.waveDataList.remove(previous);
              }
  
              // Add into the list to enable sorting
              this.waveDataList.add(waveData);
  
              // Sort the list
              Collections.sort(this.waveDataList);
          }
          return this;
      }
docs: {@inheritDoc}