code: public BType getBuilder(int index) {
      ensureBuilders();
      SingleFieldBuilder<MType, BType, IType> builder = builders.get(index);
      if (builder == null) {
        MType message = messages.get(index);
        builder = new SingleFieldBuilder<MType, BType, IType>(
            message, this, isClean);
        builders.set(index, builder);
      }
      return builder.getBuilder();
    }
docs: Gets a builder for the specified index. If no builder has been created for
  that index, a builder is created on demand by calling
  {@link Message#toBuilder}.
  
  @param index the index of the message to get
  @return The builder for that index