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);
}