code: public <A, B, C> void publishEvents(EventTranslatorThreeArg<E, A, B, C> translator, int batchStartsAt, int batchSize, A[] arg0, B[] arg1, C[] arg2) {
          checkBounds(arg0, arg1, arg2, batchStartsAt, batchSize);
          final long finalSequence = sequencer.next(batchSize);
          translateAndPublishBatch(translator, arg0, arg1, arg2, batchStartsAt, batchSize, finalSequence);
      }
docs: Allows three user supplied arguments per event.
  
  @param translator The user specified translation for the event
  @param batchStartsAt The first element of the array which is within the batch.
  @param batchSize The number of elements in the batch.
  @param arg0 An array of user supplied arguments, one element per event.
  @param arg1 An array of user supplied arguments, one element per event.
  @param arg2 An array of user supplied arguments, one element per event.
  @see #publishEvents(EventTranslator[])