public DistributedLogMultiStreamWriter build(){
  Preconditions.checkArgument((null != _streams && !_streams.isEmpty()),"No streams provided");
  Preconditions.checkNotNull(_client,"No distributedlog client provided");
  Preconditions.checkNotNull(_codec,"No compression codec provided");
  Preconditions.checkArgument(_firstSpeculativeTimeoutMs > 0 && _firstSpeculativeTimeoutMs <= _maxSpeculativeTimeoutMs && _speculativeBackoffMultiplier > 0 && _maxSpeculativeTimeoutMs < _requestTimeoutMs,"Invalid speculative timeout settings");
  return new DistributedLogMultiStreamWriter(_streams,_client,Math.min(_bufferSize,MAX_LOGRECORDSET_SIZE),_flushIntervalMs,_requestTimeoutMs,_firstSpeculativeTimeoutMs,_maxSpeculativeTimeoutMs,_speculativeBackoffMultiplier,_codec,_ticker,_executorService);
}

public DistributedLogMultiStreamWriter build ( ) { Preconditions . checkArgument ( ( null != _streams && ! _streams . isEmpty ( ) ) , "No streams provided" ) ; Preconditions . checkNotNull ( _client , "No distributedlog client provided" ) ; Preconditions . checkNotNull ( _codec , "No compression codec provided" ) ; Preconditions . checkArgument ( _firstSpeculativeTimeoutMs > 0 && _firstSpeculativeTimeoutMs <= _maxSpeculativeTimeoutMs && _speculativeBackoffMultiplier > 0 && _maxSpeculativeTimeoutMs < _requestTimeoutMs , "Invalid speculative timeout settings" ) ; return new DistributedLogMultiStreamWriter ( _streams , _client , Math . min ( _bufferSize , MAX_LOGRECORDSET_SIZE ) , _flushIntervalMs , _requestTimeoutMs , _firstSpeculativeTimeoutMs , _maxSpeculativeTimeoutMs , _speculativeBackoffMultiplier , _codec , _ticker , _executorService ) ; }
build the multi stream writer .
