Skip to content

Commit 6769e30

Browse files
authored
Merge pull request #12302 from OsztosA/feature/java-interface-discriminator-helper
fix for #804 subtypeName for discriminator mapping
2 parents 375d7b6 + 88e4002 commit 6769e30

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/v3/CodegenModel.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import io.swagger.v3.oas.models.media.Discriminator;
55

66
import java.util.ArrayList;
7-
import java.util.HashMap;
87
import java.util.List;
98
import java.util.Map;
109
import java.util.Objects;
@@ -509,4 +508,26 @@ public boolean getIsComposedModel() {
509508
public void setIsComposedModel(boolean isComposedModel) {
510509
this.isComposedModel = isComposedModel;
511510
}
511+
512+
/**
513+
* Get the subtype name from the interface model
514+
* @return name : the name assigned to the class by the discriminator mapping or classname if mapping not found
515+
*/
516+
public String getSubtypeName() {
517+
if (getInterfaceModels()!=null) {
518+
for (CodegenModel interfaceModel : getInterfaceModels()) {
519+
if (interfaceModel.getDiscriminator() != null && interfaceModel.getDiscriminator().getMapping() != null) {
520+
String subTypeName = interfaceModel.getDiscriminator().getMapping().get(classname);
521+
if (subTypeName!=null) {
522+
return subTypeName;
523+
}
524+
}
525+
}
526+
}
527+
if (getParentModel()!=null && getParentModel().getDiscriminator()!=null && getParentModel().getDiscriminator().getMapping()!=null) {
528+
String subTypeName = getParentModel().getDiscriminator().getMapping().get(classname);
529+
return subTypeName!=null?subTypeName:name;
530+
}
531+
return name;
532+
}
512533
}

0 commit comments

Comments
 (0)