Skip to content

Commit 436c79c

Browse files
committed
feat: adds support for required supporting files
1 parent 6a1acd8 commit 436c79c

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -703,18 +703,16 @@ void generateApis(List<File> files, List<OperationsMap> allOperations, List<Mode
703703
}
704704

705705
private void generateSupportingFiles(List<File> files, Map<String, Object> bundle) {
706-
if (!generateSupportingFiles) {
707-
// TODO: process these anyway and report via dryRun?
708-
LOGGER.info("Skipping generation of supporting files.");
709-
return;
710-
}
711706
Set<String> supportingFilesToGenerate = null;
712707
String supportingFiles = GlobalSettings.getProperty(CodegenConstants.SUPPORTING_FILES);
713708
if (supportingFiles != null && !supportingFiles.isEmpty()) {
714709
supportingFilesToGenerate = new HashSet<>(Arrays.asList(supportingFiles.split(",")));
715710
}
716711

717712
for (SupportingFile support : config.supportingFiles()) {
713+
if (!generateSupportingFiles && !support.isRequired()) {
714+
continue;
715+
}
718716
try {
719717
String outputFolder = config.outputFolder();
720718
if (StringUtils.isNotEmpty(support.getFolder())) {
@@ -747,6 +745,12 @@ private void generateSupportingFiles(List<File> files, Map<String, Object> bundl
747745
}
748746
}
749747

748+
if (!generateSupportingFiles) {
749+
// TODO: process these anyway and report via dryRun?
750+
LOGGER.info("Skipping generation of not required supporting files.");
751+
return;
752+
}
753+
750754
// Consider .openapi-generator-ignore a supporting file
751755
// Output .openapi-generator-ignore if it doesn't exist and wasn't explicitly created by a generator
752756
final String openapiGeneratorIgnore = ".openapi-generator-ignore";

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,28 @@
3232
*/
3333
public class SupportingFile extends TemplateDefinition {
3434
private boolean canOverwrite = true;
35+
/**
36+
* Whether the {@link SupportingFile} is required for all generated code.
37+
*/
38+
private boolean required = false;
3539

3640
public SupportingFile(String templateFile, String destinationFilename) {
3741
this(templateFile, "", destinationFilename);
3842
}
3943

44+
public SupportingFile(String templateFile, String destinationFilename, boolean required) {
45+
this(templateFile, "", destinationFilename, required);
46+
}
47+
4048
public SupportingFile(String templateFile, String folder, String destinationFilename) {
4149
super(templateFile, folder, destinationFilename);
4250
}
4351

52+
public SupportingFile(String templateFile, String folder, String destinationFilename, boolean required) {
53+
super(templateFile, folder, destinationFilename);
54+
this.required = required;
55+
}
56+
4457
/**
4558
* Identifies this instance as referring to a supporting file which should not overwrite a file of the same name.
4659
*
@@ -84,6 +97,13 @@ public boolean isCanOverwrite() {
8497
return canOverwrite;
8598
}
8699

100+
/**
101+
* @return whether the {@link SupportingFile} is required for all generated code.
102+
*/
103+
public boolean isRequired() {
104+
return required;
105+
}
106+
87107
@Override
88108
public int hashCode() {
89109
return Objects.hash(super.hashCode(), isCanOverwrite());

0 commit comments

Comments
 (0)