Обработка исходящего значения#
Позволяет перехватить, обработать и отформатировать исходящее значение атрибута при чтении юнита.
Варианты использования#
определение формата типа при отображении
Подключение#
реализуем -
ru.sbt.swtr.track.core.service.hook.attribute.type.output.ConvertValueToViewаннотируем -
ru.sbt.swtr.track.core.service.hook.attribute.type.annotation.AttributeTypeMapper
Пример#
Простой тип:
@AttributeMapper(code = "custom_date") public class CustomTypeDateTimeView implements ConvertValueToView<Instant, String> { @Override public String convert(final Instant output) {return output.toString();} }Мультиселект:
@AttributeTypeMapper(code = "multiselect_type") public class CustomTypeLabelsView implements ConvertValueToView<Collection<ExampleValueEntity>, Collection<String>> { @Override public Collection<String> convert(Collection<LabelValueEntity> output) { return output.stream() .filter(Objects::nonNull) .map(ExampleValueEntity::getCode) //<= {"example" : ["code1", "code2"]} .toList(); } }
Использование#
Сервис будет добавлен в контекст и выполнен для всех атрибутов с типом custom_date.