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 <[email protected]> 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; } }
