Merge pull request #2872 from dmytrobr/feature/issue-2868

use Title attribute as model name
This commit is contained in:
wing328
2016-06-01 10:55:54 +08:00
3 changed files with 141 additions and 24 deletions

View File

@@ -50,7 +50,7 @@ public class InlineModelResolver {
if (obj.getType() == null || "object".equals(obj.getType())) {
if (obj.getProperties() != null && obj.getProperties().size() > 0) {
flattenProperties(obj.getProperties(), pathname);
String modelName = uniqueName(bp.getName());
String modelName = resolveModelName( obj.getTitle(), bp.getName());
bp.setSchema(new RefModel(modelName));
addGenerated(modelName, model);
swagger.addDefinition(modelName, model);
@@ -65,7 +65,7 @@ public class InlineModelResolver {
ObjectProperty op = (ObjectProperty) inner;
if (op.getProperties() != null && op.getProperties().size() > 0) {
flattenProperties(op.getProperties(), pathname);
String modelName = uniqueName(bp.getName());
String modelName = resolveModelName( op.getTitle(), bp.getName());
Model innerModel = modelFromProperty(op, modelName);
String existing = matchGenerated(innerModel);
if (existing != null) {
@@ -91,7 +91,7 @@ public class InlineModelResolver {
if (property instanceof ObjectProperty) {
ObjectProperty op = (ObjectProperty) property;
if (op.getProperties() != null && op.getProperties().size() > 0) {
String modelName = uniqueName("inline_response_" + key);
String modelName = resolveModelName( op.getTitle(),"inline_response_" + key);
Model model = modelFromProperty(op, modelName);
String existing = matchGenerated(model);
if (existing != null) {
@@ -108,18 +108,18 @@ public class InlineModelResolver {
if(inner instanceof ObjectProperty) {
ObjectProperty op = (ObjectProperty) inner;
if (op.getProperties() != null && op.getProperties().size() > 0) {
flattenProperties(op.getProperties(), pathname);
String modelName = uniqueName("inline_response_" + key);
Model innerModel = modelFromProperty(op, modelName);
String existing = matchGenerated(innerModel);
if (existing != null) {
ap.setItems(new RefProperty(existing));
} else {
if (op.getProperties() != null && op.getProperties().size() > 0) {
flattenProperties(op.getProperties(), pathname);
String modelName = resolveModelName( op.getTitle(),"inline_response_" + key);
Model innerModel = modelFromProperty(op, modelName);
String existing = matchGenerated(innerModel);
if (existing != null) {
ap.setItems(new RefProperty(existing));
} else {
ap.setItems(new RefProperty(modelName));
addGenerated(modelName, innerModel);
swagger.addDefinition(modelName, innerModel);
}
}
}
}
} else if (property instanceof MapProperty) {
@@ -129,18 +129,18 @@ public class InlineModelResolver {
if(innerProperty instanceof ObjectProperty) {
ObjectProperty op = (ObjectProperty) innerProperty;
if (op.getProperties() != null && op.getProperties().size() > 0) {
flattenProperties(op.getProperties(), pathname);
String modelName = uniqueName("inline_response_" + key);
Model innerModel = modelFromProperty(op, modelName);
String existing = matchGenerated(innerModel);
if (existing != null) {
mp.setAdditionalProperties(new RefProperty(existing));
} else {
mp.setAdditionalProperties(new RefProperty(modelName));
addGenerated(modelName, innerModel);
swagger.addDefinition(modelName, innerModel);
}
}
flattenProperties(op.getProperties(), pathname);
String modelName = resolveModelName( op.getTitle(),"inline_response_" + key);
Model innerModel = modelFromProperty(op, modelName);
String existing = matchGenerated(innerModel);
if (existing != null) {
mp.setAdditionalProperties(new RefProperty(existing));
} else {
mp.setAdditionalProperties(new RefProperty(modelName));
addGenerated(modelName, innerModel);
swagger.addDefinition(modelName, innerModel);
}
}
}
}
}
@@ -184,6 +184,15 @@ public class InlineModelResolver {
}
}
private String resolveModelName(String title, String key ) {
if (title == null) {
return uniqueName(key);
}
else {
return uniqueName(title);
}
}
public String matchGenerated(Model model) {
if (this.skipMatches) {
return null;