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); }
private List<Resource> resolveNestedResources(final Resource resource) { final List<Resource> resources = new ArrayList<>(); resources.add(resource); for (final Resource element : resource.getChildren()) { resources.addAll(resolveNestedResources(element)); } return resources; } }
@Override public String toString() { return getPath(); }
protected Resource transformResource(final SwaggerAPI source) { final ResourceBuilder builder = Resource.builder()// .path(source.getPath()); for (final SwaggerOperation sourceMethod : source.getOperations()) { final Method targetMethod = transformMethod(sourceMethod); builder.methods(Collections.singletonList(targetMethod)); } return builder.build(); }
private ResourceBuilder() { result = new Resource(); }
private org.raml.model.Resource createRamlResource(final Resource apiResource, final String path) { final org.raml.model.Resource ramlResource = new org.raml.model.Resource(); ramlResource.setRelativeUri(path); ramlResource.setUriParameters(uriParamsResolver.resolve(getUriParameters(apiResource.getParameters()))); ramlResource.setActions(actionResolver.resolve(apiResource)); return ramlResource; }
private Resource transformResource(final Context context, final String globalMediaType, final org.raml.model.Resource source, final List<org.raml.model.Resource> parents, final List<Map<String, SecurityScheme>> securitySchemes, final APINamespace namespace, final TransformationContext ctx) { final ResourceBuilder builder = Resource.builder()// .parameters(transformPathParameters(context, namespace, source))// .parameters(getHeaderParametersFromSecuritySchema(context, source.getSecuredBy(), securitySchemes, namespace))// .parameters(getQueryParametersFromSecuritySchema(context, source.getSecuredBy(), securitySchemes, namespace))// .path(Paths.normalize(source.getRelativeUri()))// .fullPath(Paths.normalize(source.getUri())); parents.add(source); builder.children( transformSubResources(context, globalMediaType, source.getResources().values(), parents, securitySchemes, namespace, ctx)); parents.remove(source); builder.methods( transformMethods(context, globalMediaType, source.getActions().values(), parents, securitySchemes, namespace, ctx)); // TODO STA-398 implement proper validation for resources final Resource target = builder.build(); validatePatchMethod(target); validateResourceType(source, ctx.getRamlModel().getResourceTypes()); return target; }
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); }
private void createSubResource(final org.raml.model.Resource parentRamlResource, final List<Resource> children) { final ImmutableMap.Builder<String, org.raml.model.Resource> ramlSubResources = ImmutableMap.builder(); for (final Resource childResource : children) { final org.raml.model.Resource ramlResource = createRamlResource(childResource, prefixPath(childResource)); ramlResource.setParentUri(parentRamlResource.getUri()); ramlSubResources.put(prefixPath(childResource), ramlResource); createSubResource(ramlResource, childResource.getChildren()); } parentRamlResource.setResources(ramlSubResources.build()); }
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"); } } }
private org.raml.model.Resource createTopLevelResource(final API singleApi) { final Resource topLevelResource = singleApi.getResource(); if (topLevelResource != null) { final org.raml.model.Resource ramlResource = createRamlResource(topLevelResource, extractTrailingRoot(singleApi)); createSubResource(ramlResource, topLevelResource.getChildren()); return ramlResource; } return null; }
@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(); }