Skip to content

Commit 9082126

Browse files
authored
Merge pull request #8472 from john-french/csharpNewlinesPreprocess
[C#] Support newlines in comments in various sections
2 parents 695e819 + 3f5b604 commit 9082126

File tree

1 file changed

+55
-7
lines changed

1 file changed

+55
-7
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractCSharpCodegen.java

Lines changed: 55 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@
55
import io.swagger.codegen.*;
66
import io.swagger.codegen.mustache.*;
77
import io.swagger.codegen.utils.ModelUtils;
8+
import io.swagger.models.Model;
9+
import io.swagger.models.ModelImpl;
810
import io.swagger.models.Operation;
911
import io.swagger.models.Path;
12+
import io.swagger.models.Response;
1013
import io.swagger.models.Swagger;
14+
import io.swagger.models.parameters.Parameter;
1115
import io.swagger.models.properties.*;
1216
import org.apache.commons.lang3.StringUtils;
1317
import org.slf4j.Logger;
@@ -972,20 +976,63 @@ public void setPreserveNewLines(boolean preserveNewLines) {
972976

973977
@Override
974978
public void preprocessSwagger(Swagger swagger) {
975-
if(this.preserveNewLines) {
976-
for(String pathname: swagger.getPaths().keySet()) {
979+
if (this.preserveNewLines) {
980+
if (swagger.getDefinitions() != null) {
981+
for (String name : swagger.getDefinitions().keySet()) {
982+
Model model = swagger.getDefinitions().get(name);
983+
if (StringUtils.isNotBlank(model.getDescription())) {
984+
model.setDescription(preserveNewlines(model.getDescription(), 1));
985+
}
986+
if (model instanceof ModelImpl) {
987+
ModelImpl impl = (ModelImpl) model;
988+
if (impl.getProperties() != null) {
989+
for (String propertyName : impl.getProperties().keySet()) {
990+
Property property = impl.getProperties().get(propertyName);
991+
if (StringUtils.isNotBlank(property.getDescription())) {
992+
property.setDescription(preserveNewlines(property.getDescription(), 2));
993+
}
994+
}
995+
}
996+
}
997+
}
998+
}
999+
for (String pathname : swagger.getPaths().keySet()) {
9771000
Path path = swagger.getPaths().get(pathname);
9781001
for (Operation op : path.getOperations()) {
979-
if (op.getDescription() != null) {
980-
op.setDescription(preservation(op.getDescription()));
1002+
if (StringUtils.isNotBlank(op.getDescription())) {
1003+
op.setDescription(preserveNewlines(op.getDescription(), 2));
1004+
}
1005+
if (StringUtils.isNotBlank(op.getSummary())) {
1006+
op.setSummary(preserveNewlines(op.getSummary(), 2));
1007+
}
1008+
if (op.getParameters() != null) {
1009+
for (Parameter param : op.getParameters()) {
1010+
if (StringUtils.isNotBlank(param.getDescription())) {
1011+
param.setDescription(preserveNewlines(param.getDescription(), 2));
1012+
}
1013+
}
1014+
}
1015+
if (op.getResponses() != null) {
1016+
for (String responseCode : op.getResponses().keySet()) {
1017+
Response response = op.getResponses().get(responseCode);
1018+
1019+
if (StringUtils.isNotBlank(response.getDescription())) {
1020+
response.setDescription(preserveNewlines(response.getDescription(), 2));
1021+
}
1022+
}
9811023
}
9821024
}
9831025
}
9841026
}
9851027
}
9861028

987-
public String preservation(String input) {
988-
return input.replaceAll("\\n", "~~N");
1029+
public String preserveNewlines(String input, int tabstops) {
1030+
if (tabstops == 1) {
1031+
return input.replaceAll("\\n", "~~N1");
1032+
} else {
1033+
// assume 2 tabstops
1034+
return input.replaceAll("\\n", "~~N2");
1035+
}
9891036
}
9901037

9911038
@Override
@@ -998,7 +1045,8 @@ public String escapeQuotationMark(String input) {
9981045
public String escapeUnsafeCharacters(String input) {
9991046
String intermediate = input.replace("*/", "*_/").replace("/*", "/_*").replace("--", "- -");
10001047

1001-
intermediate = intermediate.replaceAll("~~N", "\n /// ");
1048+
intermediate = intermediate.replaceAll("~~N1", "\n /// ");
1049+
intermediate = intermediate.replaceAll("~~N2", "\n /// ");
10021050

10031051
return intermediate;
10041052
}

0 commit comments

Comments
 (0)