code: @Override
      public void sendWave(final Wave wave) throws JRebirthThreadException {
  
          wave.status(Status.Processing);
  
          JRebirth.checkJIT();
  
          // Perform different action according to Wave Group used
          try {
              switch (wave.waveGroup()) {
                  case CALL_COMMAND:
                      callCommand(wave);
                      break;
                  case RETURN_DATA:
                      returnData(wave);
                      break;
                  case ATTACH_UI:
                      displayUi(wave);
                      break;
                  case UNDEFINED:
                  default:
                      processUndefinedWave(wave);
              }
          } catch (final WaveException e) {
              LOGGER.error(WAVE_SENDING_ERROR, e);
          }
      }
docs: {@inheritDoc}