class ReflectionGetterFactory implements GetterFactory {

  @Override
  public List<FieldValueGetter> generateGetters(Class pojoClass) {
    ImmutableList.Builder<FieldValueGetter> getters = ImmutableList.builder();

    for (Method getterMethod : getPublicGetters(pojoClass)) {
      getters.add(new ReflectionGetter(getterMethod));
    }

    return getters.build();
  }

}