Skip to content

Commit 94cf82d

Browse files
author
Alexander Ben Nasrallah
committed
Fix usage of entity type
VEST-1
1 parent 64edb8c commit 94cf82d

File tree

2 files changed

+38
-5
lines changed

2 files changed

+38
-5
lines changed

verinice-persistence/src/main/java/org/verinice/persistence/entities/ElementConverter.java

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ public static Velement elementForEntity(CnaTreeElement dbEntity) {
5555
return null;
5656
}
5757
Velement element = new Velement();
58-
element.setUuid(dbEntity.getUuid());
59-
element.setType(dbEntity.getType());
58+
element.setUuid(dbEntity.getUuid());
59+
element.setType(dbEntity.getEntity().getEntitytype());
6060
element.setProperties(convertPropertyLists(dbEntity));
6161
element.setTitle(getTitle(element, dbEntity));
6262
if (dbEntity.getScopeId() != null)
@@ -133,17 +133,17 @@ public static CnaTreeElement elementToEntity(Velement velement, Entity entityEnt
133133
}
134134
CnaTreeElement element = new CnaTreeElement();
135135
element.setDbid(velement.getDbid());
136-
element.setEntity(entityToEntity(velement, entityEntity));
136+
element.setEntity(updateOrCreateEntity(velement, entityEntity));
137137
element.setExtId(velement.getExtId());
138138
element.setParentId(velement.getParentId());
139139
element.setScopeId(velement.getScopeId());
140140
element.setSourceId(velement.getSourceId());
141-
element.setType(velement.getType());
141+
element.setType(getElementType(velement.getType()));
142142
element.setUuid(velement.getUuid());
143143
return element;
144144
}
145145

146-
private static Entity entityToEntity(Velement element, Entity entity) {
146+
private static Entity updateOrCreateEntity(Velement element, Entity entity) {
147147
if (entity == null) {
148148
entity = new Entity();
149149
entity.setPropertyLists(new HashMap<>(element.getProperties().size()));
@@ -163,6 +163,37 @@ private static Entity entityToEntity(Velement element, Entity entity) {
163163
return entity;
164164
}
165165

166+
// Is this mapping really useful? Why do we have to write the wrong types
167+
// back to the database?
168+
public static String getElementType(String elementType) {
169+
Map<String, String> entityTypeToElementType = new HashMap<>();
170+
entityTypeToElementType.put("itverbund","it-verbund");
171+
entityTypeToElementType.put("serverkategorie", "server-kategorie");
172+
entityTypeToElementType.put("gebaeudekategorie", "gebaeude-kategorie");
173+
entityTypeToElementType.put("sonstitkategorie", "sonstige-it-kategorie");
174+
entityTypeToElementType.put("anwendungenkategorie", "anwendungen-kategorie");
175+
entityTypeToElementType.put("clientskategorie", "clients-kategorie");
176+
entityTypeToElementType.put("netzkategorie", "nk-kategorie");
177+
entityTypeToElementType.put("personkategorie", "personen-kategorie");
178+
entityTypeToElementType.put("raeumekategorie", "raeume-kategorie");
179+
entityTypeToElementType.put("tkkategorie", "tk-kategorie");
180+
entityTypeToElementType.put("sonstit", "sonst-it");
181+
entityTypeToElementType.put("tkkomponente", "telefon-komponente");
182+
entityTypeToElementType.put("gefaehrdungsumsetzung", "gefaehrdungs-umsetzung");
183+
entityTypeToElementType.put("netzkomponente", "netz-komponente");
184+
entityTypeToElementType.put("mnums", "massnahmen-umsetzung");
185+
entityTypeToElementType.put("bstumsetzung", "baustein-umsetzung");
186+
entityTypeToElementType.put("riskanalysis", "finished-risk-analysis");
187+
entityTypeToElementType.put("incident_group", "incidentgroup");
188+
189+
String hibernateType = entityTypeToElementType.get(elementType);
190+
if (hibernateType != null) {
191+
return hibernateType;
192+
}
193+
// Other types are the same
194+
return elementType;
195+
}
196+
166197
private static PropertyList newPropertyList(List<String> propertyValues, String propertyType) {
167198
PropertyList list = new PropertyList();
168199
list.setProperties(new HashSet<>(propertyValues.size()));

verinice-service/src/test/java/org/verinice/service/test/ElementServiceTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.verinice.persistence.entities.MockBuilder;
4141
import org.verinice.service.ElementServiceImpl;
4242
import org.verinice.persistence.CnaTreeElementDao;
43+
import org.verinice.persistence.entities.Entity;
4344
/**
4445
*
4546
* @author Daniel Murygin
@@ -76,6 +77,7 @@ public void tearDown() {
7677
public void loadElement() {
7778
String uuid = "123";
7879
CnaTreeElement dbEntity = MockBuilder.createAsset(uuid);
80+
dbEntity.setEntity(new Entity());
7981
when(dao.findByUuid(dbEntity.getUuid())).thenReturn(dbEntity);
8082

8183
Velement element = elementService.loadElement(uuid);

0 commit comments

Comments
 (0)