Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit b99b00c

Browse files
authored
v2 reduces qty of logged warnings (#140)
* Adds todo * Eliminates composed schema renaming warnings * Regen with response module name fix * Fixes response doc generation * Replaces componentModule usages with jsonPathPiece.snakeCase * Converts componentModule to boolean to reduce warning logging qty * Only logs a name or reserved warning if the name is for a component * Removes comment * Adds and uses modelNameCache * Removes multiple discriminator warning * Fixes java tests * sample regen
1 parent 99078c9 commit b99b00c

30 files changed

+283
-287
lines changed

modules/openapi-json-schema-generator/src/main/java/org/openapijsonschematools/codegen/CodegenConfig.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public interface CodegenConfig {
102102

103103
String toApiVarName(String name);
104104

105-
String toModelName(String name);
105+
String toModelName(String name, String jsonPath);
106106

107107
String toParamName(String name);
108108

@@ -194,9 +194,9 @@ public interface CodegenConfig {
194194

195195
String toApiFilename(String name);
196196

197-
String toModelFilename(String name);
197+
String toModelFilename(String name, String jsonPath);
198198

199-
String toModuleFilename(String name);
199+
String toModuleFilename(String name, String jsonPath);
200200

201201
String toApiTestFilename(String name);
202202

@@ -206,17 +206,17 @@ public interface CodegenConfig {
206206

207207
String toRequestBodyFilename(String componentName);
208208

209-
String toHeaderFilename(String componentName);
209+
String toHeaderFilename(String componentName, String jsonPath);
210210

211-
String toPathFilename(String path);
211+
String toPathFilename(String path, String jsonPath);
212212

213-
String toParameterFilename(String baseName);
213+
String toParameterFilename(String baseName, String jsonPath);
214214

215-
String toSecuritySchemeFilename(String baseName);
215+
String toSecuritySchemeFilename(String baseName, String jsonPath);
216216

217-
String toServerFilename(String baseName);
217+
String toServerFilename(String baseName, String jsonPath);
218218

219-
String toSecurityRequirementObjectFilename(String baseName);
219+
String toSecurityRequirementObjectFilename(String baseName, String jsonPath);
220220

221221
String getCamelCaseServer(String baseName);
222222

modules/openapi-json-schema-generator/src/main/java/org/openapijsonschematools/codegen/DefaultCodegen.java

+80-115
Large diffs are not rendered by default.

modules/openapi-json-schema-generator/src/main/java/org/openapijsonschematools/codegen/DefaultGenerator.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ private TreeMap<String, CodegenResponse> generateResponses(List<File> files) {
686686
templateData.put("identifierToHeadingQty", new HashMap<>());
687687
templateData.put("response", response);
688688
// TODO make this a property that can be turned off and on
689-
generateXs(files, sourceJsonPath, CodegenConstants.JSON_PATH_LOCATION_TYPE.RESPONSE, CodegenConstants.RESPONSE_DOCS, templateData, true);
689+
generateXDocs(files, sourceJsonPath, CodegenConstants.JSON_PATH_LOCATION_TYPE.RESPONSE, CodegenConstants.RESPONSE_DOCS, templateData, true);
690690
}
691691
return responses;
692692
}

modules/openapi-json-schema-generator/src/main/java/org/openapijsonschematools/codegen/languages/AbstractJavaCodegen.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -750,7 +750,7 @@ public String toApiTestFilename(String name) {
750750

751751
@Override
752752
public String toModelTestFilename(String name) {
753-
return toModelName(name) + "Test";
753+
return toModelName(name, null) + "Test";
754754
}
755755

756756
@Override
@@ -825,7 +825,7 @@ public String toParamName(String name) {
825825
}
826826

827827
@Override
828-
public String toModelName(final String name) {
828+
public String toModelName(final String name, String jsonPath) {
829829
// We need to check if schema-mapping has a different model for this class, so we use it
830830
// instead of the auto-generated one.
831831
if (schemaMapping.containsKey(name)) {
@@ -878,9 +878,9 @@ public String toModelName(final String name) {
878878
}
879879

880880
@Override
881-
public String toModelFilename(String name) {
881+
public String toModelFilename(String name, String jsonPath) {
882882
// should be the same as the model name
883-
return toModelName(name);
883+
return toModelName(name, jsonPath);
884884
}
885885

886886
/**

modules/openapi-json-schema-generator/src/main/java/org/openapijsonschematools/codegen/languages/AbstractKotlinCodegen.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,7 @@ public String toModelImport(String name) {
604604
* @return capitalized model name
605605
*/
606606
@Override
607-
public String toModelName(final String name) {
607+
public String toModelName(final String name, String jsonPath) {
608608
// memoization
609609
String origName = name;
610610
if (schemaKeyToModelNameCache.containsKey(origName)) {
@@ -664,9 +664,9 @@ public String toModelName(final String name) {
664664
}
665665

666666
@Override
667-
public String toModelFilename(String name) {
667+
public String toModelFilename(String name, String jsonPath) {
668668
// Should be the same as the model name
669-
return toModelName(name);
669+
return toModelName(name, jsonPath);
670670
}
671671

672672
/**

modules/openapi-json-schema-generator/src/main/java/org/openapijsonschematools/codegen/languages/AbstractPythonCodegen.java

+3-50
Original file line numberDiff line numberDiff line change
@@ -455,63 +455,16 @@ public void setPackageVersion(String packageVersion) {
455455
}
456456

457457
@Override
458-
public String toModelName(String name) {
459-
String sanitizedName = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
460-
// remove dollar sign
461-
sanitizedName = sanitizedName.replaceAll("$", "");
462-
// remove whitespace
463-
sanitizedName = sanitizedName.replaceAll("\\s+", "");
464-
465-
String nameWithPrefixSuffix = sanitizedName;
466-
if (!StringUtils.isEmpty(modelNamePrefix)) {
467-
// add '_' so that model name can be camelized correctly
468-
nameWithPrefixSuffix = modelNamePrefix + "_" + nameWithPrefixSuffix;
469-
}
470-
471-
if (!StringUtils.isEmpty(modelNameSuffix)) {
472-
// add '_' so that model name can be camelized correctly
473-
nameWithPrefixSuffix = nameWithPrefixSuffix + "_" + modelNameSuffix;
474-
}
475-
476-
// camelize the model name
477-
// phone_number => PhoneNumber
478-
String camelizedName = camelize(nameWithPrefixSuffix);
479-
480-
// model name cannot use reserved keyword, e.g. return
481-
if (isReservedWord(camelizedName)) {
482-
String modelName = "_" + camelizedName; // e.g. return => ModelReturn (after camelize)
483-
LOGGER.warn("{} (reserved word) cannot be used as model name. Renamed to {}", camelizedName, modelName);
484-
return modelName;
485-
}
486-
487-
// model name starts with number
488-
if (camelizedName.matches("^\\d.*")) {
489-
String modelName = "_" + camelizedName; // e.g. return => ModelReturn (after camelize)
490-
LOGGER.warn("{} (model name starts with number) cannot be used as model name. Renamed to {}", camelizedName, modelName);
491-
return modelName;
492-
}
493-
494-
return camelizedName;
495-
}
496-
497-
@Override
498-
public String toModelFilename(String name) {
499-
// underscore the model file name
500-
// PhoneNumber => phone_number
501-
return toModuleFilename(name);
502-
}
503-
504-
@Override
505-
public String toModuleFilename(String name) {
458+
public String toModelFilename(String name, String jsonPath) {
506459
// underscore the model file name
507460
// PhoneNumber => phone_number
508-
return underscore(dropDots(toModelName(name)));
461+
return toModuleFilename(name, jsonPath);
509462
}
510463

511464

512465
@Override
513466
public String toModelTestFilename(String name) {
514-
return "test_" + toModelFilename(name);
467+
return "test_" + toModelFilename(name, null);
515468
}
516469

517470
@Override

0 commit comments

Comments
 (0)