You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2020/08/05 00:52:40 UTC
[servicecomb-java-chassis] 02/02: [SCB-2058] make
RequestPartAnnotationProcessor extend
AbstractSpringmvcSerializableParameterProcessor
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit cb47f4c31fee7468ef5d8cfe0aed2d53a73d08cd
Author: yhs0092 <yh...@163.com>
AuthorDate: Tue Aug 4 16:50:09 2020 +0800
[SCB-2058] make RequestPartAnnotationProcessor extend AbstractSpringmvcSerializableParameterProcessor
---
.../annotation/RequestPartAnnotationProcessor.java | 47 ++++------------------
1 file changed, 7 insertions(+), 40 deletions(-)
diff --git a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestPartAnnotationProcessor.java b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestPartAnnotationProcessor.java
index 3041527..aade823 100644
--- a/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestPartAnnotationProcessor.java
+++ b/swagger/swagger-generator/generator-springmvc/src/main/java/org/apache/servicecomb/swagger/generator/springmvc/processor/annotation/RequestPartAnnotationProcessor.java
@@ -19,22 +19,13 @@ package org.apache.servicecomb.swagger.generator.springmvc.processor.annotation;
import java.lang.reflect.Type;
-import org.apache.servicecomb.swagger.generator.ParameterProcessor;
import org.apache.servicecomb.swagger.generator.core.model.HttpParameterType;
import org.springframework.web.bind.annotation.RequestPart;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.type.TypeFactory;
-
-import io.swagger.converter.ModelConverters;
-import io.swagger.models.Operation;
-import io.swagger.models.Swagger;
import io.swagger.models.parameters.FormParameter;
-import io.swagger.models.properties.ArrayProperty;
-import io.swagger.models.properties.Property;
-public class RequestPartAnnotationProcessor implements
- ParameterProcessor<FormParameter, RequestPart> {
+public class RequestPartAnnotationProcessor extends
+ AbstractSpringmvcSerializableParameterProcessor<FormParameter, RequestPart> {
@Override
public Type getProcessType() {
return RequestPart.class;
@@ -55,36 +46,12 @@ public class RequestPartAnnotationProcessor implements
}
@Override
- public void fillParameter(Swagger swagger, Operation operation, FormParameter formParameter, Type type,
- RequestPart requestPart) {
- Property property = resolveParamProperty(type);
-
- formParameter.setProperty(property);
- formParameter.setRequired(requestPart.required());
+ protected boolean readRequired(RequestPart requestPart) {
+ return requestPart.required();
}
- private Property resolveParamProperty(Type type) {
- JavaType javaType = TypeFactory.defaultInstance().constructType(type);
- if (javaType.isContainerType()) {
- return resolvePropertyAsContainerType(javaType);
- }
- return ModelConverters.getInstance().readAsProperty(type);
- }
-
- private Property resolvePropertyAsContainerType(JavaType javaType) {
- // At present, only array and collection of Part params are supported,
- // but Map type is also a kind of container type.
- // Although Map is not supported now, we still consider to take the type of value to generate a property.
- // Therefore, here we use lastContainedTypeIndex to get the contained type.
- int lastContainedTypeIndex = javaType.containedTypeCount() - 1;
- JavaType containedItemType;
- if (lastContainedTypeIndex < 0) {
- // javaType may be an array
- containedItemType = javaType.getContentType();
- } else {
- containedItemType = javaType.containedType(lastContainedTypeIndex);
- }
- Property containedItemProperty = ModelConverters.getInstance().readAsProperty(containedItemType);
- return new ArrayProperty(containedItemProperty);
+ @Override
+ protected String pureReadDefaultValue(RequestPart requestPart) {
+ return null;
}
}