private boolean isMethodSameExceptOfConsume(final Method method1, final Method method2) { return ObjectUtils.equals(method1.getMethodType(), method2.getMethodType()) && ObjectUtils.equals(method1.getQualifier(), method2.getQualifier()) && ObjectUtils.equals(method1.getPath(), method2.getPath()) && CollectionUtils.isEqualCollection(method1.getParameterQualifiers(), method2.getParameterQualifiers()) && CollectionUtils.isEqualCollection(method1.getProduces(), method2.getProduces()) && !method1.getConsumes().containsAll(method2.getConsumes()); }
@Override public String toString() { return getMethodType() + ":" + getPath() + ":" + getType(); }
private MethodBuilder() { result = new Method(); }
private boolean hasCorrespondingResponse(final List<Method> targetmethods, final Method method) { for (final Method getMethod : targetmethods) { if (getMethod.getType().getQualifier().equals(method.getType().getQualifier())) { boolean containsAllMediaTypes = true; for (final String produceType : method.getProduces()) { if (!getMethod.getProduces().contains(produceType)) { containsAllMediaTypes = false; } } if (containsAllMediaTypes) { return true; } } } return false; }
@Override public Map<ActionType, Action> resolve(final Resource resource) { final ImmutableMap.Builder<ActionType, Action> actions = ImmutableMap.builder(); for (final Method m : resource.getMethods()) { final Action action = new Action(); action.setDescription(m.getDescription()); action.setBody(bodyParamResolver.resolve(m)); action.setQueryParameters(queryParamsResolver.resolve(getParametersFor(m.getParameters(), ParameterType.QUERY))); action.setHeaders(headerParamsResolver.resolve(getParametersFor(m.getParameters(), ParameterType.HEADER))); // action.setResource(); action.setResponses(responseResolver.resolve(m)); actions.put(getActionType(m.getMethodType()), action); } return actions.build(); }
private void addOrMergeMethod(final List<Method> methods, final Method methodToAdd) { final Iterator<Method> iter = methods.iterator(); while (iter.hasNext()) { final Method current = iter.next(); if (isMethodSameExceptOfConsume(current, methodToAdd)) { iter.remove(); methods.add(Method.builder(current).consumes(methodToAdd.getConsumes()).build()); return; } } methods.add(methodToAdd); }
private void validatePatchMethod(final Resource target) { final List<Method> patchMethods = target.getMethods(MethodType.PATCH); for (final Method patchMethod : patchMethods) { if (!hasCorrespondingResponse(target.getMethods(MethodType.GET), patchMethod) && patchMethod.getConsumes().contains(MediaType.JSON_PATCH.getCode())) { throw new ModelValidationException( "The corresponding GET method for the following PATCH method is missing: " + patchMethod.getQualifier() + ", or it does not contain responses returning media types " + patchMethod.getProduces() + " and matching schemas"); } } }
public List<Method> getMethods(final MethodType type) { final List<Method> result = new ArrayList<>(); for (final Method method : getMethods()) { if (type.equals(method.getMethodType())) { result.add(method); } } return Collections.unmodifiableList(result); }
for (final String consumes : method.getConsumes()) final Optional<Parameter> bodyParam = getBodyParameter(method.getParameters()); if (bodyParam.isPresent()) final List<Parameter> formParams = getFormParameters(method.getParameters()); if (formParams != null && !formParams.isEmpty())
protected Method transformMethod(final SwaggerOperation source) { final MethodBuilder builder = Method.builder()// .consumes(transformConsumes(source.getConsumes()))// .description(transformMethodDescription(source))// .methodType(transformMethodType(source.getMethod()))// .name(source.getNickname())// .produces(transformProduces(source.getProduces()))// .qualifier(source.getNickname()); for (final SwaggerOperationResponseMessage sourceResponse : source.getResponseMessages()) { final Response targetResponse = transformResponse(sourceResponse); builder.responses(Collections.singletonList(targetResponse)); } for (final SwaggerOperationParameter sourceParameter : source.getParameters()) { final Parameter targetParameter = transformParameter(sourceParameter); // TODO RB verify // targetParameter.setParent(target); builder.parameters(Collections.singletonList(targetParameter)); } return builder.build(); }
public List<Method> getMethods(final String methodPath) { final List<Method> result = new ArrayList<>(); for (final Method method : getMethods()) { if (methodPath.equals(method.getPath())) { result.add(method); } } return Collections.unmodifiableList(result); }
for (final String bodyType : consumes) final MethodBuilder builder = Method.builder()//
private MethodBuilder(final Method clone) { result = new Method(); result.consumes = new ArrayList<>(clone.consumes); result.produces = new ArrayList<>(clone.produces); result.description = clone.description; result.methodType = clone.methodType; result.name = clone.name; result.parameters = new ArrayList<>(clone.parameters); result.path = clone.path; result.qualifier = clone.qualifier; result.returnType = clone.returnType; result.responses = new ArrayList<>(clone.responses); }