Skip to content

Commit bda0801

Browse files
committed
Improve readability of discriminator detection logic
Extract predicates into named boolean variables to make the discriminator variant detection code easier to follow. Replace the nested loop with a stream-based lookup for finding variant models.
1 parent 46dd226 commit bda0801

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptFetchClientCodegen.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -483,22 +483,23 @@ public Map<String, ModelsMap> postProcessAllModels(Map<String, ModelsMap> objs)
483483
// in TypeScript when stringEnums is enabled.
484484
for (ExtendedCodegenModel rootModel : allModels) {
485485
CodegenDiscriminator discriminator = rootModel.discriminator;
486-
if (discriminator == null || discriminator.getMappedModels() == null
487-
|| discriminator.getMappedModels().isEmpty()) {
486+
boolean hasDiscriminator = discriminator != null;
487+
boolean hasMappedModels = hasDiscriminator
488+
&& discriminator.getMappedModels() != null
489+
&& !discriminator.getMappedModels().isEmpty();
490+
if (!hasMappedModels) {
488491
continue;
489492
}
490493
String discPropBaseName = discriminator.getPropertyBaseName();
491494
boolean allVariantsHaveDiscriminator = true;
492495
for (CodegenDiscriminator.MappedModel mm : discriminator.getMappedModels()) {
493-
boolean variantHasProp = false;
494-
for (ExtendedCodegenModel model : allModels) {
495-
if (model.classname.equals(mm.getModelName())) {
496-
variantHasProp = model.vars.stream()
497-
.anyMatch(v -> v.baseName.equals(discPropBaseName));
498-
break;
499-
}
500-
}
501-
if (!variantHasProp) {
496+
boolean variantDeclaresDiscriminatorProperty = allModels.stream()
497+
.filter(model -> model.classname.equals(mm.getModelName()))
498+
.findFirst()
499+
.map(model -> model.vars.stream()
500+
.anyMatch(v -> v.baseName.equals(discPropBaseName)))
501+
.orElse(false);
502+
if (!variantDeclaresDiscriminatorProperty) {
502503
allVariantsHaveDiscriminator = false;
503504
break;
504505
}

0 commit comments

Comments
 (0)