public EventModel convert()

in log4j-catalog/log4j-catalog-jpa/src/main/java/org/apache/logging/log4j/catalog/jpa/converter/EventConverter.java [52:93]


    public  EventModel convert(Event event) {
        LOGGER.traceEntry(event.getName());
        EventModel model;
        if (event.getId() != null) {
            model = eventService.getEvent(event.getId()).orElseGet(EventModel::new);
        } else {
            model = new EventModel();
        }
        model.setCatalogId(event.getCatalogId());
        model.setName(event.getName());
        model.setAliases(event.getAliases());
        model.setDescription(event.getDescription());
        model.setDisplayName(event.getDisplayName());
        if (model.getAttributes() == null) {
            model.setAttributes(new HashSet<>());
        }
        Set<EventAttributeModel> eventAttributeModels = model.getAttributes() != null ? model.getAttributes() :
                new HashSet<>();
        List<EventAttribute> eventAttributes = event.getAttributes() != null ? event.getAttributes() : new ArrayList<>();
        if (!eventAttributes.isEmpty()) {
            for (EventAttribute eventAttribute : eventAttributes) {
                EventAttributeModel eventAttributeModel = model.getAttribute(eventAttribute.getName());
                if (eventAttributeModel != null) {
                    eventAttributeModel.setRequired(eventAttribute.isRequired());
                } else {
                    Optional<AttributeModel> optional = getAttribute(event.getCatalogId(), eventAttribute.getName());
                    if (optional.isPresent()) {
                        eventAttributeModel = new EventAttributeModel();
                        eventAttributeModel.setRequired(eventAttribute.isRequired());
                        eventAttributeModel.setEvent(model);
                        eventAttributeModel.setAttribute(optional.get());
                        eventAttributeModels.add(eventAttributeModel);
                    } else {
                        throw new CatalogModificationException("No catalog entry for " + eventAttribute.getName());
                    }
                }
            }
        }
        eventAttributeModels.removeIf(a -> eventAttributes.stream().noneMatch(b -> b.getName().equals(a.getAttribute().getName())));
        model.setAttributes(eventAttributeModels);
        return LOGGER.traceExit(model);
    }