Skip to content

Solution for overlapping child classes

Nicola Stoira requested to merge sphnc-374 into main
  • In the oneOf list of objects, all project specific objects that define the exact same structure except for the object description, ID description, and target concept enum value, are grouped together. The enum values of the individual target concepts are then listed in the newly created object. A general description and ID description is created.
  • When creating database tables, we check if the number of enum values listed is larger than one. If it's not the case we use the same logic as before, if it is, we treat the target_concept field as a normal column and therefore we'll have that column in the database as well. The column will also have a defined type that lists all the enum values defined in the target concept.
  • Same logic is applied when extracting the data from the database. In case the target concept field has multiple values we will extract the data from the new column.
  • It's possible that some classes in range are grouped into different sets. In that case we will have an issue when creating the database table as we will have duplicated column names. We added some logic to avoid this scenario: we check that the column name is not already used, and in the case it is used we skip it. There is an exception for repeated target concept column, in that case we add the new enum values to the existing type (and we still skip the column creation).

Merge request reports

Loading