IFC-1348 Make templates for generics generics #5938
Draft
+63
−29
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A generic cannot be created as an object until we decide which implementation of the generic should be used. This also applies to templates, a generic cannot be used to create an object when the instantiation happends through templating.
To avoid issues where a user would use a relationships pointing to a generic, templates for each implementation of the generic are now computed. This means that if we have a relationship setup like:
With inheritance layout setup like:
We will generate 1 generic called
TemplateDcimInterface
and 2 templates calledTemplateDcimPhysicalInterface
andTemplateDcimVirtualInterface
. Both templates will inherit fromTemplateDcimInterface
.The relationship mentioned above, in the corresponding template, will be represented as:
This will allow us to create and attach either
TemplateDcimPhysicalInterface
orTemplateDcimVirtualInterface
to the template node.