code: public static WriterInitializer newInstace(State state, WorkUnitStream workUnits) {
      int branches = state.getPropAsInt(ConfigurationKeys.FORK_BRANCHES_KEY, 1);
      if (branches == 1) {
        return newSingleInstance(state, workUnits, branches, 0);
      }
  
      List<WriterInitializer> wis = Lists.newArrayList();
      for (int branchId = 0; branchId < branches; branchId++) {
        wis.add(newSingleInstance(state, workUnits, branches, branchId));
      }
      return new MultiWriterInitializer(wis);
    }
docs: Provides WriterInitializer based on the writer. Mostly writer is decided by the Writer builder (and destination) that user passes.
  If there's more than one branch, it will instantiate same number of WriterInitializer instance as number of branches and combine it into MultiWriterInitializer.
  
  @param state
  @return WriterInitializer