io.swagger.annotations.SwaggerDefinition#io.swagger.models.parameters.Parameter源码实例Demo

下面列出了io.swagger.annotations.SwaggerDefinition#io.swagger.models.parameters.Parameter 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

private void fillRequestType(Operation operation, ProtoMethod protoMethod) {
  List<Parameter> parameters = operation.getParameters();
  if (parameters.isEmpty()) {
    addImports(ProtoConst.EMPTY_PROTO);
    protoMethod.setArgTypeName(ProtoConst.EMPTY.getCanonicalName());
    return;
  }

  if (parameters.size() == 1) {
    String type = convertSwaggerType(parameters.get(0));
    if (messages.contains(type)) {
      protoMethod.setArgTypeName(type);
      return;
    }
  }

  String wrapName = StringUtils.capitalize(operation.getOperationId()) + "RequestWrap";
  createWrapArgs(wrapName, parameters);

  protoMethod.setArgTypeName(wrapName);
}
 
源代码2 项目: vertx-swagger   文件: BodyParameterExtractor.java
@Override
public Object extract(String name, Parameter parameter, RoutingContext context) {
    BodyParameter bodyParam = (BodyParameter) parameter;
    if ("".equals(context.getBodyAsString())) {
        if (bodyParam.getRequired())
            throw new IllegalArgumentException("Missing required parameter: " + name);
        else
            return null;
    }

    try {
        if(bodyParam.getSchema() instanceof ArrayModel) {
            return context.getBodyAsJsonArray();
        } else {
            return context.getBodyAsJson();
        }
    } catch (DecodeException e) {
        return context.getBodyAsString();  
    }
}
 
源代码3 项目: mdw   文件: ResourceReaderExtension.java
/**
 * Implemented to allow loading of custom types using PackageClassLoader.
 */
@Override
public void applyImplicitParameters(ReaderContext context, Operation operation, Method method) {
    // copied from io.swagger.servlet.extensions.ServletReaderExtension
    final ApiImplicitParams implicitParams = method.getAnnotation(ApiImplicitParams.class);
    if (implicitParams != null && implicitParams.value().length > 0) {
        for (ApiImplicitParam param : implicitParams.value()) {
            final Parameter p = readImplicitParameter(context.getSwagger(), param);
            if (p != null) {
                if (p instanceof BodyParameter && param.format() != null)
                    p.getVendorExtensions().put("format", param.format());
                operation.parameter(p);
            }
        }
    }
}
 
源代码4 项目: servicecomb-java-chassis   文件: HighwayCodec.java
@SuppressWarnings({"rawtypes", "unchecked"})
private static Map<String, Object> addPrimitiveTypeDefaultValues(Invocation invocation,
    Map<String, Object> swaggerArguments) {
  // proto buffer never serialize default values, put it back in provider
  if (invocation.getOperationMeta().getSwaggerProducerOperation() != null && !invocation.isEdge()) {
    List<Parameter> swaggerParameters = invocation.getOperationMeta().getSwaggerOperation()
        .getParameters();
    for (Parameter parameter : swaggerParameters) {
      if (swaggerArguments.get(parameter.getName()) == null) {
        Type type = invocation.getOperationMeta().getSwaggerProducerOperation()
            .getSwaggerParameterType(parameter.getName());
        if (type instanceof Class) {
          if (((Class) type).isPrimitive()) {
            swaggerArguments.put(parameter.getName(), Defaults.defaultValue((Class) type));
          }
        }
      }
    }
  }
  return swaggerArguments;
}
 
/**
 * EdgeService cannot recognize the map type form body whose value type is String,
 * so there should be this additional setting.
 * @param parameter the swagger information of the parameter
 * @param type the resolved param type
 * @return the corrected param type
 */
private Type correctFormBodyType(Parameter parameter, Type type) {
  if (null != type || !(parameter instanceof BodyParameter)) {
    return type;
  }
  final BodyParameter bodyParameter = (BodyParameter) parameter;
  if (!(bodyParameter.getSchema() instanceof ModelImpl)) {
    return type;
  }
  final Property additionalProperties = ((ModelImpl) bodyParameter.getSchema()).getAdditionalProperties();
  if (additionalProperties instanceof StringProperty) {
    type = RestObjectMapperFactory.getRestObjectMapper().getTypeFactory()
        .constructMapType(Map.class, String.class, String.class);
  }
  return type;
}
 
源代码6 项目: sofa-rpc   文件: RpcReaderExtension.java
private Parameter readParam(Swagger swagger, Type type, Class<?> cls, ApiParam param) {
    PrimitiveType fromType = PrimitiveType.fromType(type);
    final Parameter para = null == fromType ? new BodyParameter() : new QueryParameter();
    Parameter parameter = ParameterProcessor.applyAnnotations(swagger, para, type,
        null == param ? new ArrayList<Annotation>()
            : Collections.<Annotation> singletonList(param));
    if (parameter instanceof AbstractSerializableParameter) {
        final AbstractSerializableParameter<?> p = (AbstractSerializableParameter<?>) parameter;
        if (p.getType() == null) {
            p.setType(null == fromType ? "string" : fromType.getCommonName());
        }
        p.setRequired(p.getRequired() || cls.isPrimitive());
    } else {
        //hack: Get the from data model paramter from BodyParameter
        BodyParameter bp = (BodyParameter) parameter;
        bp.setIn("body");
        Property property = ModelConverters.getInstance().readAsProperty(type);
        final Map<PropertyBuilder.PropertyId, Object> args = new EnumMap<PropertyBuilder.PropertyId, Object>(
            PropertyBuilder.PropertyId.class);
        bp.setSchema(PropertyBuilder.toModel(PropertyBuilder.merge(property, args)));
    }
    return parameter;
}
 
源代码7 项目: swagger2markup   文件: BasicPathExample.java
@Override
public void updatePathParameterValue(Parameter parameter, Object example) {
    if (parameter.getName().contains("id")) {
        System.getenv();
    }

    if (example == null)
        return;

    if (path.contains(parameter.getName()))
        path = StringUtils.replace(
                path,
                '{' + parameter.getName() + '}',
                encodeExampleForUrl(example)
        );
}
 
@Override
public ParamValueProcessor create(Parameter parameter, Type genericParamType) {
  Model model = ((BodyParameter) parameter).getSchema();
  JavaType swaggerType = null;
  if (model instanceof ModelImpl) {
    swaggerType = ConverterMgr.findJavaType(((ModelImpl) model).getType(), ((ModelImpl) model).getFormat());
  }
  boolean isString = swaggerType != null && swaggerType.getRawClass().equals(String.class);

  JavaType targetType =
      genericParamType == null ? null : TypeFactory.defaultInstance().constructType(genericParamType);
  boolean rawJson = SwaggerUtils.isRawJsonType(parameter);
  if (rawJson) {
    return new RawJsonBodyProcessor(targetType, (String) parameter.getVendorExtensions()
        .get(SwaggerConst.EXT_JSON_VIEW), isString, parameter.getRequired());
  }

  return new BodyProcessor(targetType, (String) parameter.getVendorExtensions()
      .get(SwaggerConst.EXT_JSON_VIEW), isString, parameter.getRequired());
}
 
/**
 *
 * @param providerParamIdx
 * @param providerParameter processing provider parameter
 * @param parameterName
 * @return true means processed
 */
protected boolean processKnownParameter(int providerParamIdx, java.lang.reflect.Parameter providerParameter,
    String parameterName) {
  Integer swaggerIdx = findSwaggerParameterIndex(parameterName);
  if (swaggerIdx == null) {
    return false;
  }

  // complex scenes
  // swagger: int add(Body x)
  // producer: int add(int x, int y)
  if (bodyParameter != null &&
      !SwaggerUtils.isBean(providerParameter.getType()) &&
      swaggerIdx == swaggerBodyIdx &&
      SwaggerUtils.isBean(bodyParameter.getSchema())) {
    return false;
  }

  ArgumentMapper mapper = createKnownParameterMapper(providerParamIdx, swaggerIdx);
  mappers.add(mapper);
  return true;
}
 
源代码10 项目: servicecomb-java-chassis   文件: SwaggerUtils.java
public static boolean isFileParameter(Parameter parameter) {
  if (!(parameter instanceof FormParameter)) {
    return false;
  }

  FormParameter formParameter = (FormParameter) parameter;
  if (FileProperty.isType(formParameter.getType(), formParameter.getFormat())) {
    return true;
  }

  Property property = formParameter.getItems();
  if (!ArrayProperty.isType(formParameter.getType()) || property == null) {
    return false;
  }

  return FileProperty.isType(property.getType(), property.getFormat());
}
 
源代码11 项目: light-rest-4j   文件: RequestValidator.java
private Status validatePathParameters(final NormalisedPath requestPath,
                                      final SwaggerOperation swaggerOperation) {
    Status status = null;
    for (int i = 0; i < swaggerOperation.getPathString().parts().size(); i++) {
        if (!swaggerOperation.getPathString().isParam(i)) {
            continue;
        }

        final String paramName = swaggerOperation.getPathString().paramName(i);
        final String paramValue = requestPath.part(i);

        final Optional<Parameter> parameter = swaggerOperation.getOperation().getParameters()
                .stream()
                .filter(p -> p.getIn().equalsIgnoreCase("PATH"))
                .filter(p -> p.getName().equalsIgnoreCase(paramName))
                .findFirst();

        if (parameter.isPresent()) {
            status = parameterValidators.validate(paramValue, parameter.get());
        }
    }
    return status;
}
 
源代码12 项目: assertj-swagger   文件: ConsumerDrivenValidator.java
private void validateParameters(List<Parameter> actualOperationParameters,  List<Parameter> expectedOperationParameters, String httpMethod, String path) {
    String message = String.format("Checking parameters of '%s' operation of path '%s'.", httpMethod, path);
    Map<String, Parameter> actualParametersMap = new HashMap<>();
    for (final Parameter parameter : actualOperationParameters) {
        actualParametersMap.put(parameterUniqueKey(parameter), parameter);
    }
    // All expectedParameters must be there and must match.
    for (final Parameter expectedParameter : expectedOperationParameters) {
        final String parameterName = expectedParameter.getName();
        Parameter actualParameter = actualParametersMap.remove(parameterUniqueKey(expectedParameter));
        String actualParameterNotNullMessage = String.format("%s Expected parameter with name='%s' and in='%s' is missing", message, expectedParameter.getName(), expectedParameter.getIn());
        softAssertions.assertThat(actualParameter).as(actualParameterNotNullMessage).isNotNull();
        validateParameter(actualParameter, expectedParameter, parameterName, httpMethod, path);
    }
    // If there are any extra parameters, these are OK, as long as they are optional.
    for (final Parameter extraParameter : actualParametersMap.values()) {
        String extraParameterNotOptionalMessage = String.format("%s Unexpected parameter with name='%s' and in='%s' is missing", message, extraParameter.getName(), extraParameter.getIn());
        softAssertions.assertThat(extraParameter.getRequired()).as(extraParameterNotOptionalMessage).isFalse();
    }
}
 
源代码13 项目: nexus-public   文件: ParameterContributorTest.java
@Test
public void testContribute() {
  underTest.contribute(swagger);

  assertContributedMap(true);

  Parameter param = PARAMS.iterator().next();
  verify(getOperationPath1).addParameter(param);
  verify(postOperationPath1).addParameter(param);
  verify(getOperationPath2).addParameter(param);
  verify(postOperationPath2).addParameter(param);

  // call it again for short-circuit use case
  reset(getOperationPath1, postOperationPath1, getOperationPath2, postOperationPath2);
  underTest.contribute(swagger);
  verify(getOperationPath1, never()).addParameter(param);
  verify(postOperationPath1, never()).addParameter(param);
  verify(getOperationPath2, never()).addParameter(param);
  verify(postOperationPath2, never()).addParameter(param);
}
 
protected Parameter createParameter(HttpParameterType httpParameterType) {
  switch (httpParameterType) {
    case PATH:
      return new PathParameter();
    case QUERY:
      return new QueryParameter();
    case HEADER:
      return new HeaderParameter();
    case FORM:
      return new FormParameter();
    case COOKIE:
      return new CookieParameter();
    case BODY:
      return new BodyParameter();
    default:
      throw new IllegalStateException("not support httpParameterType " + httpParameterType);
  }
}
 
public static Type collectGenericType(List<Annotation> annotations, Type defaultType) {
  Type genericType = null;
  for (Annotation annotation : annotations) {
    ParameterProcessor<Parameter, Annotation> processor = findParameterProcessors(annotation.annotationType());
    if (processor == null) {
      continue;
    }

    Type type = processor.getGenericType(annotation);
    if (type != null) {
      genericType = type;
    }
  }

  return genericType != null ? genericType : defaultType;
}
 
protected void initMethodParameterGenerators(Map<String, List<Annotation>> methodAnnotationMap) {
  for (java.lang.reflect.Parameter methodParameter : method.getParameters()) {
    Type genericType = ParamUtils.getGenericParameterType(clazz, method, methodParameter);
    ParameterGenerator parameterGenerator = new ParameterGenerator(method, methodAnnotationMap, methodParameter,
        genericType);
    validateParameter(parameterGenerator.getGenericType());
    if (isContextParameter(parameterGenerator.getGenericType())) {
      continue;
    }

    // jaxrs: @BeanParam
    // springmvc: is query, and is bean type
    if (isAggregatedParameter(parameterGenerator, methodParameter)) {
      extractAggregatedParameterGenerators(methodAnnotationMap, methodParameter);
      continue;
    }

    parameterGenerators.add(parameterGenerator);
  }
}
 
源代码17 项目: carbon-apimgt   文件: SequenceGenerator.java
private static void populateParametersFromOperation(Operation operation, Map<String, Model> definitions,
        Map<String, String> parameterJsonPathMapping, Map<String, String> queryParameters) {

    List<Parameter> parameters = operation.getParameters();
    for (Parameter parameter : parameters) {
        String name = parameter.getName();
        if (parameter instanceof BodyParameter) {
            Model schema = ((BodyParameter) parameter).getSchema();
            if (schema instanceof RefModel) {
                String $ref = ((RefModel) schema).get$ref();
                if (StringUtils.isNotBlank($ref)) {
                    String defName = $ref.substring("#/definitions/".length());
                    Model model = definitions.get(defName);
                    Example example = ExampleBuilder.fromModel(defName, model, definitions, new HashSet<String>());

                    String jsonExample = Json.pretty(example);
                    try {
                        org.json.JSONObject json = new org.json.JSONObject(jsonExample);
                        SequenceUtils.listJson(json, parameterJsonPathMapping);
                    } catch (JSONException e) {
                        log.error("Error occurred while generating json mapping for the definition: " + defName, e);
                    }
                }
            }
        }
        if (parameter instanceof QueryParameter) {
            String type = ((QueryParameter) parameter).getType();
            queryParameters.put(name, type);
        }
    }
}
 
@Override
public ParamValueProcessor create(Parameter parameter, Type genericParamType) {
  JavaType targetType =
      genericParamType == null ? null : TypeFactory.defaultInstance().constructType(genericParamType);

  if (isPart(parameter)) {
    return new PartProcessor((FormParameter) parameter, genericParamType);
  }
  return new FormProcessor((FormParameter) parameter, targetType);
}
 
源代码19 项目: api-compiler   文件: ProtoApiFromOpenApi.java
/**
 * Ensures the parameters are all resolved and return just the list of parameters that are fully
 * resolved by the swagger core parser.
 */
private static ImmutableList<Parameter> getResolvedParameters(
    final DiagCollector diagCollector,
    ImmutableList<Parameter> parameters,
    final Location location) {
  ImmutableList<Parameter> resolvedParameters =
      FluentIterable.from(parameters)
          .filter(
              new Predicate<Parameter>() {
                @Override
                public boolean apply(Parameter parameter) {
                  if (parameter instanceof RefParameter) {
                    /*
                     * This is an invalid state. Reference parameters should automatically get
                     * resolved into parameter objects by the swagger core parser, because only
                     * references that are allowed are to parameters that are defined at the
                     * Swagger Object's parameters which are in the same file. If we reach here
                     * it would mean the reference cannot be resolved and nothing this converter
                     * can do.
                     */
                    diagCollector.addDiag(
                        Diag.warning(
                            location,
                            "Reference %s cannot be resolved",
                            ((RefParameter) parameter).get$ref()));
                    return false;
                  } else {
                    return true;
                  }
                }
              })
          .toList();
  return resolvedParameters;
}
 
源代码20 项目: swagger-diff   文件: MarkdownRender.java
private String li_missingParam(Parameter param) {
    StringBuffer sb = new StringBuffer("");
    sb.append("Delete ").append(param.getName())
            .append(null == param.getDescription() ? ""
                    : (" //" + param.getDescription()));
    return sb.toString();
}
 
@Override
public boolean check(List<Parameter> params, Map<String, Response> responses) {
    Optional<Parameter> p = params.stream().filter(ParameterUtils.equalsParam(name, in)).findFirst();
    if (p.isPresent()) {
        String val = SwaggerSpecificationProcessor.extractValue(p.get());
        currentValue.add(val);
    }

    return true;
}
 
源代码22 项目: servicecomb-java-chassis   文件: TestRestCodec.java
@BeforeClass
public static void beforeClass() {
  Parameter hp = new HeaderParameter();
  hp.setName("header");
  RestParam restParam = new RestParam(hp, int.class);

  restOperation = Mockito.mock(RestOperationMeta.class);
  //        clientRequest = Mockito.mock(RestClientRequest.class);
  paramList = new ArrayList<>();


  paramList.add(restParam);
  when(restOperation.getParamList()).thenReturn(paramList);
  when(restOperation.getParamByName("test")).thenReturn(restParam);
}
 
源代码23 项目: swagger-coverage   文件: EnumAllValuesRule.java
@Override
public Condition processParameter(Parameter parameter) {
    List<String> enumValues = SwaggerSpecificationProcessor.extractEnum(parameter);

    if (enumValues != null && !enumValues.isEmpty()) {
        ConditionPredicate predicate = new ParameterValueConditionPredicate(parameter.getName(), parameter.getIn(), enumValues);
        return new SinglePredicateCondition(
                String.format("%s «%s» contains all values from enum %s", parameter.getIn(), parameter.getName(), enumValues),
                "",
                predicate
        );
    }

    return null;
}
 
@Test
public void testExtractParametersReturnsRetrievedParameters() {
    List<Parameter> parameters = new JaxrsParameterExtension().extractParameters(
            Lists.newArrayList(getTestAnnotation("get", QueryParam.class)),
            String.class,
            Sets.<Type>newHashSet(),
            Lists.<SwaggerExtension>newArrayList().iterator());

    assertFalse(parameters.isEmpty());
    assertEquals(parameters.size(), 1);
}
 
源代码25 项目: swagger-coverage   文件: EmptyHeaderRule.java
@Override
public Condition processParameter(Parameter parameter) {
    if (parameter instanceof HeaderParameter) {
        ConditionPredicate predicate = new DefaultParameterConditionPredicate(true, parameter.getName(), parameter.getIn());
        return new SinglePredicateCondition(
                String.format("header «%s» is empty", parameter.getName()),
                "",
                predicate
        );
    }

    return null;
}
 
源代码26 项目: servicecomb-java-chassis   文件: RestParam.java
protected void init(Parameter parameter, Type genericParamType) {
  String paramType = parameter.getIn();
  ParamValueProcessorCreator creater =
      ParamValueProcessorCreatorManager.INSTANCE.ensureFindValue(paramType);

  this.setParamProcessor(creater.create(parameter, genericParamType));
}
 
源代码27 项目: swagger-showdoc   文件: SwaggerUtils.java
private static void postAndPutModelDoc(Swagger swagger, StringBuilder builder, List<Parameter> parameters) {
    AtomicReference<Model> backModel = new AtomicReference<>();

    if(parameters != null && !parameters.isEmpty()){
        parameters.forEach(parameter -> {
            if(parameter instanceof BodyParameter){
                BodyParameter bop = (BodyParameter)parameter;

                if(bop.getSchema() instanceof RefModel){
                    RefModel refModel = (RefModel)bop.getSchema();
                    String simpleRef = refModel.getSimpleRef();
                    log.info(simpleRef);

                    Model model1 = definitions.get(simpleRef);
                    String s = SwaggerUtils.definitionsDocumentGenerateMd(swagger, simpleRef, model1);
                    builder.append(StringUtils.replace(s, "name=", "id="));
                    modelDoc(swagger,builder,model1);
                }

                if(bop.getSchema() instanceof ModelImpl){
                    ModelImpl model = (ModelImpl)bop.getSchema();
                    modelDocAddJdd(swagger,builder,backModel,model.getProperties());
                }


                if(bop.getSchema() instanceof ArrayModel){
                    ArrayModel arrayModel = (ArrayModel)bop.getSchema();
                    modelDocAdd(swagger,builder,backModel,arrayModel.getItems());

                    if(null != backModel.get()){
                        modelDoc(swagger,builder,backModel.get());
                    }
                }

            }
        });
    }
}
 
@Override
public void preprocessSwagger(Swagger swagger) {
    // need vendor extensions for x-swagger-router-controller
    Map<String, Path> paths = swagger.getPaths();
    if(paths != null) {
        for(String pathname : paths.keySet()) {
            Path path = paths.get(pathname);
            Map<HttpMethod, Operation> operationMap = path.getOperationMap();
            if(operationMap != null) {
                for(HttpMethod method : operationMap.keySet()) {
                    Operation operation = operationMap.get(method);
                    String tag = "default";
                    if(operation.getTags() != null && operation.getTags().size() > 0) {
                        tag = operation.getTags().get(0);
                    }
                    String operationId = operation.getOperationId();
                    if(operationId == null) {
                        operationId = getOrGenerateOperationId(operation, pathname, method.toString());
                    }
                    operation.setOperationId(toOperationId(operationId));
                    if(operation.getVendorExtensions().get("x-swagger-router-controller") == null) {
                        operation.getVendorExtensions().put(
                                "x-swagger-router-controller",
                                controllerPackage + "." + toApiFilename(tag)
                        );
                    }
                    for (Parameter param: operation.getParameters()) {
                        // sanitize the param name but don't underscore it since it's used for request mapping
                        String name = param.getName();
                        String paramName = sanitizeName(name);
                        if (!paramName.equals(name)) {
                            LOGGER.warn(name + " cannot be used as parameter name with flask-connexion and was sanitized as " + paramName);
                        }
                        param.setName(paramName);
                    }
                }
            }
        }
    }
}
 
@Override
public void preprocessSwagger(Swagger swagger) {
    if (swagger == null || swagger.getPaths() == null){
        return;
    }
    for (String pathname : swagger.getPaths().keySet()) {
        Path path = swagger.getPath(pathname);
        if (path.getOperations() == null){
            continue;
        }
        for (Operation operation : path.getOperations()) {
            boolean hasFormParameters = false;
            boolean hasBodyParameters = false;
            for (Parameter parameter : operation.getParameters()) {
                if (parameter instanceof FormParameter) {
                    hasFormParameters = true;
                }
                if (parameter instanceof BodyParameter) {
                    hasBodyParameters = true;
                }
            }
            if (hasBodyParameters || hasFormParameters){
                String defaultContentType = hasFormParameters ? "application/x-www-form-urlencoded" : "application/json";
                String contentType =  operation.getConsumes() == null || operation.getConsumes().isEmpty() ? defaultContentType : operation.getConsumes().get(0);
                operation.setVendorExtension("x-contentType", contentType);
            }
            String accepts = getAccept(operation);
            operation.setVendorExtension("x-accepts", accepts);
        }
    }
}
 
/**
 * Generate additional model definitions from query parameters
 *
 * @param swagger
 */
@Override
public void preprocessSwagger(Swagger swagger) {
    super.preprocessSwagger(swagger);
    for (String pathKey : swagger.getPaths().keySet())
    {
        Path path = swagger.getPath(pathKey);
        Map<HttpMethod, Operation> operations = path.getOperationMap();
        for (HttpMethod method : operations.keySet())
        {
            Operation operation = operations.get(method);
            Map<String, Property> properties = new HashMap<>();
            for (Parameter parameter : operation.getParameters())
            {
                Property property = convertParameterToProperty(parameter);
                if (property != null)
                {
                    properties.put(property.getName(), property);
                }
            }
            if (!properties.isEmpty())
            {
                Model model = new ModelImpl();
                String operationId = getOrGenerateOperationId(operation, pathKey, method.name());
                model.setDescription("Query parameters for " + operationId);
                model.setProperties(properties);
                model.getVendorExtensions().put(VEN_FROM_QUERY, Boolean.TRUE);
                String definitionName = generateUniqueDefinitionName(operationId + "QueryData", swagger);
                swagger.addDefinition(definitionName, model);
                String definitionModel = "\\" + modelPackage + "\\" + toModelName(definitionName);
                operation.getVendorExtensions().put(VEN_QUERY_DATA_TYPE, definitionModel);
                operation.getVendorExtensions().put(VEN_HAS_QUERY_DATA, Boolean.TRUE);
            }
        }
    }
}