private void initialize()

in log4j-audit/log4j-audit-war/src/main/java/org/apache/logging/log4j/audit/service/catalog/AuditCatalogManager.java [121:184]


    private void initialize(CatalogModel catalogModel) {
        logger.debug("Updating static catalog");

        logger.debug("Loading attributes");
        List<AttributeModel> attributeModels = new ArrayList<>();
        Map<String, Attribute> attributeMap = new HashMap<>();
        for (Attribute attribute : catalogData.getAttributes()) {
            AttributeModel model = attributeConverter.convert(attribute);
            attributeService.saveAttribute(model);
            attributeModels.add(model);
            attributeMap.put(attribute.getName(), attribute);
        }
        for (AttributeModel attributeModel : attributeModels) {
            if (!attributeMap.containsKey(attributeModel.getName())) {
                attributeService.deleteAttribute(attributeModel.getId());
            }
        }
        Map<String, Event> eventMap = new HashMap<>();
        List<EventModel> eventModels = new ArrayList<>();
        logger.debug("Loading events");
        for (Event event : catalogData.getEvents()) {
            logger.debug("Processing Event: {}", event);
            EventModel model = eventConverter.convert(event);
            eventMap.put(event.getName(), event);
            eventModels.add(model);
            eventService.saveEvent(model);
        }
        for (EventModel eventModel : eventModels) {
            if (!eventMap.containsKey(eventModel.getName())) {
                eventService.deleteEvent(eventModel.getId());
            }
        }
        List<CategoryModel> categoryModels = new ArrayList<>();
        Map<String, Category> categoryMap = new HashMap<>();
        logger.debug("Loading categories");
        for (Category category : catalogData.getCategories()) {
            CategoryModel model = categoryConverter.convert(category);
            categoryModels.add(model);
            categoryMap.put(category.getName(), category);
            categoryService.saveCategory(model);
        }
        for (CategoryModel categoryModel : categoryModels) {
            if (!categoryMap.containsKey(categoryModel.getName())) {
                categoryService.deleteCategory(categoryModel.getId());
            }
        }
        List<ProductModel> productModels = new ArrayList<>();
        Map<String, Product> productMap = new HashMap<>();
        logger.debug("loading products");
        for (Product product : catalogData.getProducts()) {
            ProductModel model = productConverter.convert(product);
            productModels.add(model);
            productMap.put(product.getName(), product);
            productService.saveProduct(model);
        }
        for (ProductModel productModel : productModels) {
            if (!productMap.containsKey(productModel.getName())) {
                productService.deleteProduct(productModel.getId());
            }
        }

        catalogModel.setLastUpdate(Timestamp.from(Instant.now()));
        catalogService.saveCatalog(catalogModel);
    }