/** @return a new instance of the jdbcMapper based on the current state of the builder. */
  public final M mapper() {
    Mapper<S, T> mapper = fieldMapperMapperBuilder.mapper();

    if (fieldMapperMapperBuilder.hasJoin()) {
      return newJoinJdbcMapper(mapper);
    } else {
      return newStaticJdbcMapper(mapper);
    }
  }