1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.logging.log4j.catalog.jpa.converter;
17
18 import java.util.ArrayList;
19 import java.util.List;
20 import java.util.Map;
21
22 import org.apache.logging.log4j.catalog.api.Category;
23 import org.apache.logging.log4j.catalog.jpa.model.CategoryModel;
24 import org.apache.logging.log4j.catalog.jpa.model.EventModel;
25 import org.apache.logging.log4j.catalog.jpa.service.EventService;
26 import org.modelmapper.AbstractConverter;
27 import org.springframework.beans.factory.annotation.Autowired;
28 import org.springframework.stereotype.Component;
29
30 @Component
31 public class CategoryConverter extends AbstractConverter<Category, CategoryModel> {
32
33 @Autowired
34 private EventService eventService;
35
36 public CategoryModel convert(Category category) {
37 Map<String, EventModel> eventMap = eventService.getEventMap();
38 CategoryModel model = new CategoryModel();
39 model.setId(category.getId());
40 model.setCatalogId(category.getCatalogId());
41 model.setName(category.getName());
42 model.setDescription(category.getDescription());
43 model.setDisplayName(category.getDisplayName());
44 List<EventModel> events = new ArrayList<>(category.getEvents().size());
45 for (String name : category.getEvents()) {
46 EventModel event = eventMap.get(name);
47 if (event != null) {
48 events.add(event);
49 } else {
50 throw new IllegalArgumentException("Unknown event " + name + " for category " + category.getName());
51 }
52 }
53 model.setEvents(events);
54 return model;
55 }
56 }