Информация об изменениях

Сообщение Re[2]: Уменьшить Cognitive Complexity метода. рефакторинг. от 14.09.2018 10:42

Изменено 14.09.2018 10:44 HAXT

Re[2]: Уменьшить Cognitive Complexity метода. рефакторинг.
Здравствуйте, Artem Korneev, Вы писали:

Спасибо Артём,

Product то нормально в саму мапу встраивается а вот zoneId, dateFormat передаются с верхнего вызова и если dateFormat можно заинжектить в этом классе, то zoneId передаётся из UI через контроллер, и тут проблемы с объявлением мапы.

    private static Map<ExportColumnEnum, Function<IndexedDraftOrderDto, Object>> dataSources = ImmutableMap.of(
        ExportColumnEnum.NGP_ORDER_CODE,    (o) -> o.getOrderCode(),
        ExportColumnEnum.CUSTOMER,          (o) -> nonNull(o.getCustomer()) ? o.getCustomer().getName() : "",
        ExportColumnEnum.ANIMAL_COUNT,      (o) -> o.getNumberOfAnimals(),
        ExportColumnEnum.SAVED,        (o) -> formatDate(o.getSavedDate(), zoneId, dateFormat),
        ExportColumnEnum.PRODUCT,           (o) -> Optional.ofNullable(o.getProducts()).orElse(Collections.emptyList()).stream()
                                                    .map(IndexedProductDto::getProductName)
                                                    .collect(Collectors.toList()),
        ExportColumnEnum.MARKET,       (o) -> o.getMarket()
    );
Re[2]: Уменьшить Cognitive Complexity метода. рефакторинг.
Здравствуйте, Artem Korneev, Вы писали:

Спасибо Артём,

Product то нормально в саму мапу встраивается а вот zoneId, dateFormat передаются с верхнего вызова и если dateFormat можно заинжектить в этом классе, то zoneId передаётся из UI через контроллер, и тут проблемы с объявлением мапы.

    private static Map<ExportColumnEnum, Function<IndexedDraftOrderDto, Object>> dataSources = ImmutableMap.of(
        ExportColumnEnum.ORDER_CODE,    (o) -> o.getOrderCode(),
        ExportColumnEnum.CUSTOMER,          (o) -> nonNull(o.getCustomer()) ? o.getCustomer().getName() : "",
        ExportColumnEnum.ANIMAL_COUNT,      (o) -> o.getNumberOfAnimals(),
        ExportColumnEnum.SAVED,        (o) -> formatDate(o.getSavedDate(), zoneId, dateFormat),
        ExportColumnEnum.PRODUCT,           (o) -> Optional.ofNullable(o.getProducts()).orElse(Collections.emptyList()).stream()
                                                    .map(IndexedProductDto::getProductName)
                                                    .collect(Collectors.toList()),
        ExportColumnEnum.MARKET,       (o) -> o.getMarket()
    );