package ru.hflabs.rcd.history; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import ru.hflabs.rcd.service.IDifferenceService; import ru.hflabs.util.core.FormatUtil; import java.lang.reflect.UndeclaredThrowableException; import java.util.Collection; import java.util.Map; /** * Класс <class>DifferenceServiceTemplate</class> реализует базовый сервис работы с информацией об изменении сущностей * * @author Nazin Alexander */ public abstract class DifferenceService<E> implements IDifferenceService<E> { /** Сервис конвертации объектов */ private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); protected static String formatObject(Object object) { if (object != null) { try { return OBJECT_MAPPER.writeValueAsString(object); } catch (JsonProcessingException ex) { throw new UndeclaredThrowableException(ex); } } else { return FormatUtil.EMPTY_STRING; } } protected static String formatCollection(Collection<?> collection) { return formatObject(collection); } protected static String formatMap(Map<?, ?> collection) { return formatObject(collection); } }