public ReturnValue factory(Field field) {
    if (ColumnUtil.INTANCE.isEnumField(field)) {
      return new EnumReturnValue();
    }
    if (ColumnUtil.INTANCE.isList(field)) {
      return new ListReturnValue();
    }
    if (ColumnUtil.INTANCE.isSet(field)) {
      return new SetReturnValue();
    }
    if (ColumnUtil.INTANCE.isMap(field)) {
      return new MapReturnValue();
    }
    if (ColumnUtil.INTANCE.isCustom(field)) {
      return new CustomReturnValue();
    }

    return new DefaultGetObject();
  }