Example usage for com.fasterxml.jackson.module.jsonSchema JsonSchema setDescription

List of usage examples for com.fasterxml.jackson.module.jsonSchema JsonSchema setDescription

Introduction

In this page you can find the example usage for com.fasterxml.jackson.module.jsonSchema JsonSchema setDescription.

Prototype

public void setDescription(String description) 

Source Link

Usage

From source file:com.phoenixnap.oss.ramlapisync.parser.SpringMvcResourceParser.java

@Override
protected Pair<String, RamlMimeType> extractRequestBody(Method method, Map<String, String> parameterComments,
        String comment, List<ApiParameterMetadata> apiParameters) {
    RamlMimeType mimeType = RamlModelFactoryOfFactories.createRamlModelFactory().createRamlMimeType();
    String type;// w ww  . j  ava  2 s .  c om
    //Handle empty body
    if (apiParameters != null && apiParameters.size() == 0) {
        // do nothing here
        return null;
    } else if (apiParameters != null && apiParameters.size() == 1
            && String.class.equals(apiParameters.get(0).getType())
            // Handle Plain Text parameters
            && apiParameters.get(0).isAnnotationPresent(RequestBody.class)) {
        ApiParameterMetadata apiParameterMetadata = apiParameters.get(0);
        type = "text/plain";
        if (StringUtils.hasText(apiParameterMetadata.getExample())) {
            mimeType.setExample(apiParameterMetadata.getExample());
        }
        ObjectMapper m = new ObjectMapper();
        SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();
        try {
            m.acceptJsonFormatVisitor(m.constructType(String.class), visitor);
            JsonSchema jsonSchema = visitor.finalSchema();
            String description = parameterComments.get(apiParameterMetadata.getJavaName());
            if (description == null) {
                description = apiParameterMetadata.getName();
            }
            jsonSchema.setDescription(description);
            jsonSchema.setRequired(!apiParameterMetadata.isNullable());
            mimeType.setSchema(m.writerWithDefaultPrettyPrinter().writeValueAsString(jsonSchema));
        } catch (JsonProcessingException e) {
            throw new IllegalStateException(e);
        }
        return new Pair<>(type, mimeType);
    } else if (apiParameters != null
            && (apiParameters.size() > 1 || (!apiParameters.get(0).isAnnotationPresent(RequestBody.class)
                    && String.class.equals(apiParameters.get(0).getType())))) {
        type = "application/x-www-form-urlencoded";
        for (ApiParameterMetadata param : apiParameters) {
            RamlFormParameter formParameter = RamlModelFactoryOfFactories.createRamlModelFactory()
                    .createRamlFormParameter();
            formParameter.setDisplayName(param.getName());
            formParameter.setExample(param.getExample());
            RamlParamType simpleType = SchemaHelper.mapSimpleType(param.getType());
            formParameter.setType(simpleType == null ? RamlParamType.STRING : simpleType);
            String description = parameterComments.get(param.getJavaName());
            if (description == null) {
                description = param.getName();
            }
            formParameter.setDescription(description);
            formParameter.setRequired(!param.isNullable());
            Map<String, List<RamlFormParameter>> paramMap;
            if (mimeType.getFormParameters() == null) {
                paramMap = new TreeMap<>();
                mimeType.setFormParameters(paramMap);
            } else {
                paramMap = mimeType.getFormParameters();
            }
            mimeType.addFormParameters(param.getName(), Collections.singletonList(formParameter));
        }
        return new Pair<>(type, mimeType);
    } else {

        return super.extractRequestBody(method, parameterComments, comment, apiParameters);
    }
}