forked from loafle/openapi-generator-original
made selective generation of models
This commit is contained in:
parent
4723f51c63
commit
723cf9b823
@ -29,16 +29,7 @@ import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.Reader;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
public class DefaultGenerator extends AbstractGenerator implements Generator {
|
||||
Logger LOGGER = LoggerFactory.getLogger(DefaultGenerator.class);
|
||||
@ -60,6 +51,22 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
||||
|
||||
@Override
|
||||
public List<File> generate() {
|
||||
boolean generateApis = true;
|
||||
boolean generateModels = true;
|
||||
boolean generateSupportingFiles = true;
|
||||
|
||||
Set<String> modelsToGenerate = null;
|
||||
|
||||
// allows generating only models by specifying a CSV of models to generate, or empty for all
|
||||
if(System.getProperty("models") != null) {
|
||||
generateApis = false;
|
||||
generateSupportingFiles = false;
|
||||
String modelNames = System.getProperty("models");
|
||||
if(!modelNames.isEmpty()) {
|
||||
modelsToGenerate = new HashSet<String>(Arrays.asList(modelNames.split(",")));
|
||||
}
|
||||
}
|
||||
|
||||
if (swagger == null || config == null) {
|
||||
throw new RuntimeException("missing swagger input or config!");
|
||||
}
|
||||
@ -139,10 +146,20 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
||||
if (definitions != null) {
|
||||
List<String> sortedModelKeys = sortModelsByInheritance(definitions);
|
||||
|
||||
if(generateModels) {
|
||||
if(modelsToGenerate != null) {
|
||||
List<String> updatedKeys = new ArrayList<String>();
|
||||
for(String m : sortedModelKeys) {
|
||||
if(modelsToGenerate.contains(m)) {
|
||||
updatedKeys.add(m);
|
||||
}
|
||||
}
|
||||
sortedModelKeys = updatedKeys;
|
||||
}
|
||||
|
||||
for (String name : sortedModelKeys) {
|
||||
try {
|
||||
|
||||
//dont generate models that have an import mapping
|
||||
//don't generate models that have an import mapping
|
||||
if(config.importMapping().containsKey(name)) {
|
||||
continue;
|
||||
}
|
||||
@ -180,6 +197,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (System.getProperty("debugModels") != null) {
|
||||
System.out.println("############ Model info ############");
|
||||
Json.prettyPrint(allModels);
|
||||
@ -187,6 +205,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
||||
|
||||
// apis
|
||||
Map<String, List<CodegenOperation>> paths = processPaths(swagger.getPaths());
|
||||
if(generateApis) {
|
||||
for (String tag : paths.keySet()) {
|
||||
try {
|
||||
List<CodegenOperation> ops = paths.get(tag);
|
||||
@ -237,6 +256,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
||||
throw new RuntimeException("Could not generate api file for '" + tag + "'", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (System.getProperty("debugOperations") != null) {
|
||||
System.out.println("############ Operation info ############");
|
||||
Json.prettyPrint(allOperations);
|
||||
@ -280,6 +300,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
||||
Json.prettyPrint(bundle);
|
||||
}
|
||||
|
||||
if(generateSupportingFiles) {
|
||||
for (SupportingFile support : config.supportingFiles()) {
|
||||
try {
|
||||
String outputFolder = config.outputFolder();
|
||||
@ -342,6 +363,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
||||
throw new RuntimeException("Could not generate supporting file '" + support + "'", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
config.processSwagger(swagger);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user