forked from loafle/openapi-generator-original
[Refactor] create a static function to build map of codegen model (#18138)
* refactor to build map of codegen model * update
This commit is contained in:
@@ -791,6 +791,8 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
|
||||
|
||||
additionalProperties.put("x-http-statuses-with-return", httpStatusesWithReturn);
|
||||
|
||||
HashMap<String, CodegenModel> modelMaps = ModelMap.toCodegenModelMap(allModels);
|
||||
|
||||
if (objs != null) {
|
||||
OperationMap operations = objs.getOperations();
|
||||
if (operations != null) {
|
||||
@@ -1041,57 +1043,57 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.allParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.bodyParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.cookieParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.formParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.headerParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.implicitHeadersParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.optionalParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.pathParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.queryParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.notNullableParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
for (CodegenParameter parameter : operation.requiredParams) {
|
||||
CodegenModel model = getModelFromParameter(allModels, parameter);
|
||||
CodegenModel model = getModelFromParameter(modelMaps, parameter);
|
||||
patchParameter(model, parameter);
|
||||
}
|
||||
|
||||
@@ -1118,10 +1120,12 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
|
||||
/**
|
||||
* Returns the model related to the given parameter
|
||||
*/
|
||||
private CodegenModel getModelFromParameter(List<ModelMap> allModels, CodegenParameter parameter) {
|
||||
return parameter.isModel || parameter.getIsEnumOrRef()
|
||||
? allModels.stream().map(m -> m.getModel()).filter(m -> m.getClassname().equals(parameter.dataType)).findFirst().orElse(null)
|
||||
: null;
|
||||
private CodegenModel getModelFromParameter(HashMap<String, CodegenModel> allModels, CodegenParameter parameter) {
|
||||
if (parameter.isModel || parameter.getIsEnumOrRef()) {
|
||||
return allModels.getOrDefault(parameter.dataType, null);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -599,14 +599,9 @@ public class CrystalClientCodegen extends DefaultCodegen {
|
||||
return objs;
|
||||
}
|
||||
OperationMap operations = objs.getOperations();
|
||||
HashMap<String, CodegenModel> modelMaps = new HashMap<>();
|
||||
HashMap<String, CodegenModel> modelMaps = ModelMap.toCodegenModelMap(allModels);
|
||||
HashMap<String, Integer> processedModelMaps = new HashMap<>();
|
||||
|
||||
for (ModelMap modelMap : allModels) {
|
||||
CodegenModel m = modelMap.getModel();
|
||||
modelMaps.put(m.classname, m);
|
||||
}
|
||||
|
||||
List<CodegenOperation> operationList = operations.getOperation();
|
||||
for (CodegenOperation op : operationList) {
|
||||
for (CodegenParameter p : op.allParams) {
|
||||
|
||||
@@ -533,14 +533,9 @@ public class GoClientCodegen extends AbstractGoCodegen {
|
||||
public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels) {
|
||||
objs = super.postProcessOperationsWithModels(objs, allModels);
|
||||
OperationMap operations = objs.getOperations();
|
||||
HashMap<String, CodegenModel> modelMaps = new HashMap<>();
|
||||
HashMap<String, CodegenModel> modelMaps = ModelMap.toCodegenModelMap(allModels);
|
||||
HashMap<String, ArrayList<Integer>> processedModelMaps = new HashMap<>();
|
||||
|
||||
for (ModelMap modelMap : allModels) {
|
||||
CodegenModel m = modelMap.getModel();
|
||||
modelMaps.put(m.classname, m);
|
||||
}
|
||||
|
||||
List<CodegenOperation> operationList = operations.getOperation();
|
||||
for (CodegenOperation op : operationList) {
|
||||
for (CodegenParameter p : op.allParams) {
|
||||
|
||||
@@ -1043,14 +1043,9 @@ public class PowerShellClientCodegen extends DefaultCodegen implements CodegenCo
|
||||
@Override
|
||||
public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels) {
|
||||
OperationMap operations = objs.getOperations();
|
||||
HashMap<String, CodegenModel> modelMaps = new HashMap<>();
|
||||
HashMap<String, CodegenModel> modelMaps = ModelMap.toCodegenModelMap(allModels);
|
||||
HashMap<String, Integer> processedModelMaps = new HashMap<>();
|
||||
|
||||
for (ModelMap modelMap : allModels) {
|
||||
CodegenModel m = modelMap.getModel();
|
||||
modelMaps.put(m.classname, m);
|
||||
}
|
||||
|
||||
List<CodegenOperation> operationList = operations.getOperation();
|
||||
for (CodegenOperation op : operationList) {
|
||||
int index = 0;
|
||||
|
||||
@@ -911,13 +911,7 @@ public class RClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
@Override
|
||||
public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels) {
|
||||
OperationMap objectMap = objs.getOperations();
|
||||
|
||||
HashMap<String, CodegenModel> modelMaps = new HashMap<>();
|
||||
for (ModelMap modelMap : allModels) {
|
||||
CodegenModel m = modelMap.getModel();
|
||||
modelMaps.put(m.classname, m);
|
||||
}
|
||||
|
||||
HashMap<String, CodegenModel> modelMaps = ModelMap.toCodegenModelMap(allModels);
|
||||
List<CodegenOperation> operations = objectMap.getOperation();
|
||||
for (CodegenOperation operation : operations) {
|
||||
for (CodegenParameter cp : operation.allParams) {
|
||||
|
||||
@@ -651,14 +651,9 @@ public class RubyClientCodegen extends AbstractRubyCodegen {
|
||||
public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels) {
|
||||
objs = super.postProcessOperationsWithModels(objs, allModels);
|
||||
OperationMap operations = objs.getOperations();
|
||||
HashMap<String, CodegenModel> modelMaps = new HashMap<>();
|
||||
HashMap<String, CodegenModel> modelMaps = ModelMap.toCodegenModelMap(allModels);
|
||||
HashMap<String, Integer> processedModelMaps = new HashMap<>();
|
||||
|
||||
for (ModelMap modelMap : allModels) {
|
||||
CodegenModel m = modelMap.getModel();
|
||||
modelMaps.put(m.classname, m);
|
||||
}
|
||||
|
||||
List<CodegenOperation> operationList = operations.getOperation();
|
||||
for (CodegenOperation op : operationList) {
|
||||
for (CodegenParameter p : op.allParams) {
|
||||
|
||||
@@ -1256,11 +1256,7 @@ public class Swift5ClientCodegen extends DefaultCodegen implements CodegenConfig
|
||||
public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels) {
|
||||
OperationMap objectMap = objs.getOperations();
|
||||
|
||||
HashMap<String, CodegenModel> modelMaps = new HashMap<>();
|
||||
for (ModelMap modelMap : allModels) {
|
||||
CodegenModel m = modelMap.getModel();
|
||||
modelMaps.put(m.classname, m);
|
||||
}
|
||||
HashMap<String, CodegenModel> modelMaps = ModelMap.toCodegenModelMap(allModels);
|
||||
|
||||
List<CodegenOperation> operations = objectMap.getOperation();
|
||||
for (CodegenOperation operation : operations) {
|
||||
|
||||
@@ -729,12 +729,7 @@ public class SwiftCombineClientCodegen extends DefaultCodegen implements Codegen
|
||||
public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<ModelMap> allModels) {
|
||||
Map<String, Object> objectMap = (Map<String, Object>) objs.get("operations");
|
||||
|
||||
HashMap<String, CodegenModel> modelMaps = new HashMap<String, CodegenModel>();
|
||||
for (Object o : allModels) {
|
||||
HashMap<String, Object> h = (HashMap<String, Object>) o;
|
||||
CodegenModel m = (CodegenModel) h.get("model");
|
||||
modelMaps.put(m.classname, m);
|
||||
}
|
||||
HashMap<String, CodegenModel> modelMaps = ModelMap.toCodegenModelMap(allModels);
|
||||
|
||||
List<CodegenOperation> operations = (List<CodegenOperation>) objectMap.get("operation");
|
||||
for (CodegenOperation operation : operations) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.openapitools.codegen.model;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.openapitools.codegen.CodegenModel;
|
||||
@@ -22,4 +23,21 @@ public class ModelMap extends HashMap<String, Object> {
|
||||
public CodegenModel getModel() {
|
||||
return (CodegenModel) get("model");
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a list of ModelMap to map of CodegenModel.
|
||||
*
|
||||
* @param allModels list of model map
|
||||
* @return map of Codegen Model
|
||||
*/
|
||||
static public HashMap<String, CodegenModel> toCodegenModelMap(List<ModelMap> allModels) {
|
||||
HashMap<String, CodegenModel> modelMaps = new HashMap<>();
|
||||
|
||||
for (ModelMap modelMap : allModels) {
|
||||
CodegenModel m = modelMap.getModel();
|
||||
modelMaps.put(m.classname, m);
|
||||
}
|
||||
|
||||
return modelMaps;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user