protected Collection<UserDefinedType> _getUsedUserDefinedTypes(final ResourceAPI resourceAPI) { final Function1<ServiceDataResource, Collection<UserDefinedType>> _function = (ServiceDataResource dataInterface) -> { return this.getUsedUserDefinedTypes(dataInterface); }; return IterableExtensions.<UserDefinedType>toSet(Iterables.<UserDefinedType>concat(IterableExtensions.<ServiceDataResource, Collection<UserDefinedType>>map(Iterables.<ServiceDataResource>filter(resourceAPI.getOwnedResourceDefinitions(), ServiceDataResource.class), _function))); }
protected Collection<Enumeration> _getUsedEnums(final ResourceAPI resourceAPI) { final Function1<ServiceDataResource, Collection<Enumeration>> _function = (ServiceDataResource dataInterface) -> { return this.getUsedEnums(dataInterface); }; return IterableExtensions.<Enumeration>toSet(Iterables.<Enumeration>concat(IterableExtensions.<ServiceDataResource, Collection<Enumeration>>map(Iterables.<ServiceDataResource>filter(resourceAPI.getOwnedResourceDefinitions(), ServiceDataResource.class), _function))); }
public ResourceFinder(ResourceAPI resourceAPI) { if (resourceAPI == null) { return; } Iterable<ResourceDefinition> allDefinitions = Iterables.concat( RapidmlModelUtils.getImportedResources(RapidmlModelUtils.getZenModel(resourceAPI)), resourceAPI.getOwnedResourceDefinitions()); Iterable<ServiceDataResource> allServiceDataResources = Iterables.filter(allDefinitions, ServiceDataResource.class); for (ServiceDataResource serviceDataResource : allServiceDataResources) { Structure datatype = serviceDataResource.getDataType(); List<ServiceDataResource> resources = resourcesMap.get(datatype); if (resources == null) { resources = new ArrayList<ServiceDataResource>(); resourcesMap.put(datatype, resources); } resources.add(serviceDataResource); } }
@Check public void checkResourceNameUniqueness(ResourceAPI resourceAPI) { Set<String> names = Sets.newHashSet(); for (ResourceDefinition type : resourceAPI.getOwnedResourceDefinitions()) { if (names.contains(type.getName())) { error(String.format("Duplicate name of resource '%s'", type.getName()), type, RapidmlPackage.Literals.RESOURCE_DEFINITION__NAME); } names.add(type.getName()); } }
/** * @param model * model * @return list of resource definitions that imported using import RESTfulInterfaces */ static List<ResourceDefinition> getImportedResources(ZenModel model) { ArrayList<ResourceDefinition> result = new ArrayList<>(); for (ImportDeclaration importDecl : model.getImports()) { String uri = importDecl.getImportURI(); if (!Strings.isNullOrEmpty(uri)) { Resource modelResource = importDecl.eResource(); Resource resource = getResource(modelResource, uri); if (resource != null && resource.getErrors().isEmpty() && !resource.getContents().isEmpty()) { ZenModel zenModel = (ZenModel) resource.getContents().get(0); String namespace = Strings.isNullOrEmpty(zenModel.getNamespace()) ? zenModel.getName() : zenModel .getNamespace() + "." + zenModel.getName(); //$NON-NLS-1$ for (ResourceAPI resourceAPI : zenModel.getResourceAPIs()) { String ifaceFQN = namespace + "." + resourceAPI.getName(); //$NON-NLS-1$ if (ifaceFQN.equals(importDecl.getImportedNamespace())) { result.addAll(resourceAPI.getOwnedResourceDefinitions()); } } } } } return result; }
public void generateAutoRealizations() { for (ResourceDefinition resource : resourceAPI.getOwnedResourceDefinitions()) { processResource(resource); for (Method method : resource.getMethods()) { processMessage(method.getRequest()); for (TypedMessage message : method.getResponses()) { processMessage(message); } } } }
public void generate() { EList<ResourceAPI> _resourceAPIs = this.model.getResourceAPIs(); for (final ResourceAPI api : _resourceAPIs) { EList<ResourceDefinition> _ownedResourceDefinitions = api.getOwnedResourceDefinitions(); for (final ResourceDefinition resource : _ownedResourceDefinitions) { { this.generateInterface(resource); boolean _isGenerateDelegateController = this.config.isGenerateDelegateController(); if (_isGenerateDelegateController) { this.generateDelegateController(resource); this.generateAbstractDelegateHandler(resource); } } } } }
@Override public void generate(ZenModel model) throws GenerationException { String metadataFile = String.format("%s_metadata.yaml", model.getName()); generateFile(metadataFile, new MetadataGenerator(model)); if (context.getGenTargetParameters().get("genMetadataSkeleton") == Boolean.TRUE) { String skeletonFile = String.format("%s_metadata-skel.yaml", model.getName()); Object structSkel = context.getGenTargetParameters().get("structMetadataSkeleton"); Object primSkel = context.getGenTargetParameters().get("primFieldMetadataSkeleton"); Object refSkel = context.getGenTargetParameters().get("refFieldMetadataSkeleton"); if (!(context.getGenTargetParameters().get("omitFieldsWithoutSkeletons") == Boolean.TRUE)) { primSkel = primSkel == null ? emptyObject : primSkel; refSkel = primSkel == null ? emptyObject : refSkel; } generateFile(skeletonFile, new MetadataSkeletonGenerator(model, structSkel, primSkel, refSkel)); } for (ResourceAPI api : model.getResourceAPIs()) { for (ResourceDefinition resource : api.getOwnedResourceDefinitions()) { if (resource instanceof ServiceDataResource) { String resourcePath = String.format("handlers/%s/%s/%s.js", model.getName(), api.getName(), resource.getName()); generateFile(resourcePath, new ResourceStubGenerator((ServiceDataResource) resource)); String customPath = String.format("custom/%s/%s/%sImpl.js", model.getName(), api.getName(), resource.getName()); generateFile(customPath, new CustomCodeGenerator((ServiceDataResource) resource), false); } } } generateFile("app.js", new AppGenerator(metadataFile, context)); }
public void normalize(ZenModel model) { if (TagUtils.getTagWithName(model, TagUtils.NORMALIZED).isPresent()) { return; } new InheritedPropertiesProcessor().addInheritedProperties(model); for (ResourceAPI resourceAPI : model.getResourceAPIs()) { for (ResourceDefinition resource : resourceAPI.getOwnedResourceDefinitions()) { new SecuredByProcessor().process(resource); for (Method method : resource.getMethods()) { processMethod(method); } } } DocumentationSpaceProcessor documentationSpaceProcessor = new DocumentationSpaceProcessor(); for (Documentation doc : EcoreUtil2.getAllContentsOfType(model, Documentation.class)) { documentationSpaceProcessor.process(doc); } try { generateAutoRealizations(model); } catch (Exception e) { e.printStackTrace(); } TagUtils.addTag(model, TagUtils.NORMALIZED); }
resourceAPI.getDefinedMediaTypes().forEach(_function_2); final Function1<ResourceAPI, EList<ResourceDefinition>> _function_3 = (ResourceAPI it) -> { return it.getOwnedResourceDefinitions(); }; final Consumer<ResourceDefinition> _function_4 = (ResourceDefinition it) -> {
_builder.newLineIfNotEmpty(); EList<ResourceDefinition> _ownedResourceDefinitions = resourceAPI.getOwnedResourceDefinitions(); for(final ResourceDefinition resourceDef : _ownedResourceDefinitions) { CharSequence _generateResource = this.generateResource(resourceDef); _builder.newLine(); EList<ResourceDefinition> _ownedResourceDefinitions_1 = resourceAPI.getOwnedResourceDefinitions(); for(final ResourceDefinition resourceDef_1 : _ownedResourceDefinitions_1) { CharSequence _generateResourceType = this.generateResourceType(resourceDef_1);
@Override public CharSequence generateResourcesElement(final ResourceAPI resourceAPI) { StringConcatenation _builder = new StringConcatenation(); _builder.append("<resources base=\""); String _baseURI = resourceAPI.getBaseURI(); _builder.append(_baseURI); _builder.append("\">"); _builder.newLineIfNotEmpty(); { EList<ResourceDefinition> _ownedResourceDefinitions = resourceAPI.getOwnedResourceDefinitions(); for(final ResourceDefinition resourceDef : _ownedResourceDefinitions) { CharSequence _generateResource = this.generateResource(resourceDef); _builder.append(_generateResource); _builder.newLineIfNotEmpty(); } } _builder.append("</resources>"); _builder.newLine(); return _builder; }
IterableExtensions.<ServiceDataResource>toList(Iterables.<ServiceDataResource>filter(resourceAPI.getOwnedResourceDefinitions(), ServiceDataResource.class))); boolean _hasElements = false; for(final ServiceDataResource aResource : _sort) {
_builder_1.newLineIfNotEmpty(); EList<ResourceDefinition> _ownedResourceDefinitions = resourceAPI.getOwnedResourceDefinitions(); for(final ResourceDefinition resource : _ownedResourceDefinitions) { _builder_1.append(" ");
_builder.newLine(); EList<ResourceDefinition> _ownedResourceDefinitions = resourceAPI.getOwnedResourceDefinitions(); for(final ResourceDefinition resource : _ownedResourceDefinitions) { _builder.append(" ");