public Operation toOperation()

in oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/context/OperationContext.java [101:167]


  public Operation toOperation() {

    if (!hasOperation()) {
      return null;
    }

    if (StringUtils.isEmpty(operationId)) {
      operationId = method.getName();
    }

    operation.operationId(operationId);
    processHeaders();
    processProduces();
    correctResponse(apiResponses);
    operation.setResponses(apiResponses);

    RequestBody requestBody = new RequestBody();
    Content content = new Content();
    MediaType mediaType = new MediaType();

    // process parameter
    List<Parameter> parameterList = parameterContexts.stream()
        .map(parameterContext ->
        {
          // requestBody
          if (parameterContext.isRequestBody()) {

            Schema schema = mediaType.getSchema();
            if (schema == null) {
              schema = new ObjectSchema();
              mediaType.schema(schema);
            }
            schema.addProperties(parameterContext.getName(), parameterContext.getSchema());
            if (consumes != null) {
              for (String consume : getConsumers()) {
                content.addMediaType(consume, mediaType);
              }
            } else {
              if (parameterContext.getConsumers() != null && parameterContext.getConsumers().size() > 0) {
                for (String consume : parameterContext.getConsumers()) {
                  content.addMediaType(consume, mediaType);
                }
              } else {
                content.addMediaType(MediaTypes.APPLICATION_JSON, mediaType);
              }
            }

            requestBody.setContent(content);
            requestBody.setRequired(parameterContext.getRequired());
            return null;
          }

          // parameter
          return parameterContext.toParameter();
        })
        .filter(parameter -> parameter != null)
        .collect(Collectors.toList());

    if (parameterList.size() > 0) {
      operation.parameters(parameterList);
    }

    if (!nullRequestBody.equals(requestBody)) {
      operation.setRequestBody(requestBody);
    }
    return operation;
  }