@@ -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 ()));
0 commit comments