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));
final Resource target = builder.build();
validatePatchMethod(target);
validateResourceType(source, ctx.getRamlModel().getResourceTypes());
return target;
}