private void loadSchemas(Resource resource) { for (final Resource res : resource.getResources().values()) { loadSchemas(res); } for (final Action action : resource.getActions().values()) { loadSchemas(action); } }
public void getAllResources(Resource resource, Map<String, UriParameter> res) { res.putAll(resource.getUriParameters()); if (resource.getParentResource() != null) { getAllResources(resource.getParentResource(), res); } }
public void generate() { if (resource.getParentResource() != null && !resource.getParentResource().getUriParameters().isEmpty()) { Map<String, UriParameter> combined = new HashMap<>(); combined.putAll(resource.getParentResource().getUriParameters()); combined.putAll(resource.getUriParameters()); resource.setUriParameters(combined); } resource.getResources().values().stream().forEach(generateResourceClasses); uri = new UriConst(resource.getUri()); apiClass = ApiResourceClass.forResource(resource) .withField(uri) .withField(req) .withField(resp); responseParser = respParserForResource(resource); defaultsMethod = new DefaultsMethod(apiClass, req); new ResourceRule().apply(resource, this); javaFiles.stream().forEach(writeTo); }
private void assureUriParameterBound(final org.raml.model.Resource source) { for (final String singleUriParam : source.getUriParameters().keySet()) { if (!source.getRelativeUri().contains(singleUriParam)) { throw new IllegalArgumentException( "Could not find matching uri path for resource " + source.getUri() + " for " + "defined uri parameter " + singleUriParam + " (" + source.getUriParameters().get(singleUriParam) + ")"); } } }
private static void addNotSetBaseUriParams(Resource resource, Map<String, List<? extends AbstractParam>> params) { if (resource.getBaseUriParameters() != null) { for (final Map.Entry<String, List<UriParameter>> entry : resource.getBaseUriParameters().entrySet()) { if (!params.containsKey(entry.getKey())) { params.put(entry.getKey(), entry.getValue()); } } } if (resource.getParentResource() != null) { addNotSetBaseUriParams(resource.getParentResource(), params); } }
ramlResource = new org.raml.model.Resource(); if (resource.getName() != null) { ramlResource.setDisplayName(resource.getName()); } else { ramlResource.setDisplayName(ConversionUtils .processResourceName(resource.getResourcePath())); ramlResource.setDescription(resource.getDescription()); ramlResource.setParentUri(""); ramlResource.setRelativeUri(resource.getResourcePath()); ramlResource.setUriParameters(new LinkedHashMap<String, UriParameter>()); for (PathVariable pathVariable : resource.getPathVariables()) { uiParam.setDisplayName(pathVariable.getName()); uiParam.setType(RamlUtils.getParamType(pathVariable.getType())); uiParam.setExample(pathVariable.getExample()); ramlResource.getUriParameters().put(pathVariable.getName(), uiParam); ramlResource.setActions(new LinkedHashMap<ActionType, Action>()); for (Operation operation : resource.getOperations()) { action = new Action(); ramlResource.getActions().put( RamlUtils.getActionType(operation.getMethod()), action); resources.put(ramlResource.getRelativeUri(), ramlResource);
rwadResource.setDescription(resource.getDescription()); rwadResource.setName(resourceName); rwadResource.setResourcePath(resource.getUri()); for (Entry<ActionType, Action> entry : resource.getActions().entrySet()) { Action action = entry.getValue(); Operation operation = new Operation(); .getResources().entrySet()) { rwadResources.addAll(getResource( ConversionUtils.processResourceName(entry.getValue().getUri()), entry.getValue(), rootPathVariables));
private void resource(Resource resource) { locator.resource(resource); checker.resourcePattern(resource); checker.uriParameters(resource.getUriParameters().keySet(), resource); checker.parameters(resource.getBaseUriParameters(), BASE_URI); checker.parameters(resource.getUriParameters(), URI); checker.description(resource.getDescription()); checker.description(resource.getBaseUriParameters(), BASE_URI); checker.description(resource.getUriParameters(), URI); checker.empty(resource); for (final Resource res : resource.getResources().values()) { resource(res); } for (final Action action : resource.getActions().values()) { action(action); } }
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; }
@Override public void apply(Resource resource, ResourceClassBuilder resourceClassBuilder) { LOG.info("Process resource {}", resource.getUri()); ReqSpecField req = resourceClassBuilder.getReq(); RespSpecField resp = resourceClassBuilder.getResp(); CodegenConfig config = resourceClassBuilder.getCodegenConfig(); resource.getUriParameters().forEach(resourceClassBuilder.applyParamRule); resource.getActions().forEach(resourceClassBuilder.applyActionRule); // TODO: default как название параметра resourceClassBuilder.getApiClass().withMethod(defaultConstructor(req, resp)) .withMethod(specsConstructor(req, resp)) .withMethod(resourceClassBuilder.getDefaultsMethod()) .withMethod(changeReq(req, resourceClassBuilder.getApiClass())) .withMethod(changeResp(resp, resourceClassBuilder.getApiClass())); resource.getResources().values() .forEach(child -> resourceClassBuilder.getApiClass().withMethod( () -> childResource(child, config.getBasePackage(), req.name()) )); if (!resourceClassBuilder.getResponseParser().isEmpty()) { resourceClassBuilder.getJavaFiles() .add(resourceClassBuilder.getResponseParser().javaFile(config.getBasePackage())); } resourceClassBuilder.getJavaFiles() .add(resourceClassBuilder.getApiClass().javaFile(config.getBasePackage())); }
@Override public String toString() { return "Resource{displayName='" + displayName + '\'' + ", uri='" + (parentUri != null ? getUri() : "-") + "'}"; }
private void createResources(RestApi api, Resource rootResource, Map<String, UriParameter> ancestorRequestParameters, Map<String, org.raml.model.Resource> resources, boolean update) { for (Map.Entry<String, org.raml.model.Resource> entry : resources.entrySet()) { final org.raml.model.Resource resource = entry.getValue(); final Resource parentResource = createResourcePath(api, rootResource, entry.getKey()); Map<String, UriParameter> requestParameters = new HashMap<String, UriParameter>(resource.getUriParameters()); requestParameters.putAll(ancestorRequestParameters); createMethods(api, parentResource, requestParameters, resource.getActions(), update); createResources(api, parentResource, requestParameters, resource.getResources(), update); } }
private void populateDefaultUriParameters(Resource resource) { Pattern pattern = Pattern.compile(URI_PATTERN); Matcher matcher = pattern.matcher(resource.getRelativeUri()); while (matcher.find()) { String paramName = matcher.group(1); if (!resource.getUriParameters().containsKey(paramName)) { resource.getUriParameters().put(paramName, new UriParameter(paramName)); } } }
private static String resolveMethodPath(final Action source, final List<org.raml.model.Resource> parents) { final org.raml.model.Resource rootParent; if (!parents.isEmpty()) { rootParent = parents.get(0); } else { rootParent = source.getResource(); } return source.getResource().getUri().substring(rootParent.getRelativeUri().length()); }
/** * Returns a RAML Resource given its complete path. * * @param raml * The RAML in which the Resource is searched for. * @param path * The complete path of the resource. * @return The Resource. */ private static Resource getResourceByCompletePath(Raml raml, String path) { for (Entry<String, Resource> entry : raml.getResources().entrySet()) { if (path.equals(entry.getValue().getParentUri() + entry.getValue().getRelativeUri())) { return entry.getValue(); } } return null; }
protected void createResourceInterface(final Resource resource) throws Exception { final String resourceInterfaceName = Names.buildResourceInterfaceName(resource); final JDefinedClass resourceInterface = context.createResourceInterface(resourceInterfaceName); context.setCurrentResourceInterface(resourceInterface); final String path = strip(resource.getRelativeUri(), "/"); resourceInterface.annotate(Path.class).param(DEFAULT_ANNOTATION_PARAMETER, StringUtils.defaultIfBlank(path, "/")); if (isNotBlank(resource.getDescription())) { resourceInterface.javadoc().add(resource.getDescription()); } addResourceMethods(resource, resourceInterface, path); }
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; }
public Resource getResource(String path) { for (Resource resource : resources.values()) { if (path.startsWith(resource.getRelativeUri())) { if (path.length() == resource.getRelativeUri().length()) { return resource; } if (path.charAt(resource.getRelativeUri().length()) == '/') { return resource.getResource(path.substring(resource.getRelativeUri().length())); } } } return null; }
/** * @return URI parameters defined for the current resource plus * all URI parameters defined in the resource hierarchy */ public Map<String, UriParameter> getResolvedUriParameters() { if (parentResource != null) { //HYBRIS start - changed HashMap to LinkedHashMap Map<String, UriParameter> uriParams = new LinkedHashMap<String, UriParameter>(parentResource.getUriParameters()); //HYBRIS end uriParams.putAll(uriParameters); return uriParams; } return uriParameters; }
private void addSubResources(Resource resource, List<Resource> res) { for (Resource r : resource.getResources().values()) { res.add(r); addSubResources(r, res); } }