Typescript angular discriminator mapping (#8929)

* remove trailing spaces

* add support of discriminator mapping for typecript-angular generator

* PR comment
This commit is contained in:
Florian Verger
2021-06-29 13:01:58 +02:00
committed by GitHub
parent 919945b65b
commit b9b539459a
@@ -517,6 +517,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
if (cm.discriminator != null && cm.children != null) {
for (CodegenModel child : cm.children) {
cm.imports.add(child.classname);
setChildDiscriminatorValue(cm, child);
}
}
if (cm.parent != null) {
@@ -531,6 +532,25 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
return result;
}
private void setChildDiscriminatorValue(CodegenModel parent, CodegenModel child) {
if (
child.vendorExtensions.isEmpty() ||
!child.vendorExtensions.containsKey("x-discriminator-value")
) {
for (CodegenProperty prop : child.allVars) {
if (prop.baseName.equals(parent.discriminator.getPropertyName())) {
for (CodegenDiscriminator.MappedModel mappedModel : parent.discriminator.getMappedModels()) {
if (mappedModel.getModelName().equals(child.classname)) {
prop.discriminatorValue = mappedModel.getMappingName();
}
}
}
}
}
}
/**
* Parse imports
*/