public void generateAutoRealizations(ZenModel model) { for (ResourceAPI resourceAPI : model.getResourceAPIs()) { new RealizationProcessor(resourceAPI).generateAutoRealizations(); } }
protected Collection<Enumeration> _getUsedEnums(final ZenModel model) { final Function1<ResourceAPI, Collection<Enumeration>> _function = (ResourceAPI it) -> { return this.getUsedEnums(it); }; return IterableExtensions.<Enumeration>toSet(Iterables.<Enumeration>concat(ListExtensions.<ResourceAPI, Collection<Enumeration>>map(model.getResourceAPIs(), _function))); }
@Check public void checkRESTfulInterfaceNameUniqueness(ZenModel model) { Set<String> names = Sets.newHashSet(); for (ResourceAPI resourceAPI : model.getResourceAPIs()) { if (names.contains(resourceAPI.getName())) { error(String.format("Duplicate name of resource API '%s'", resourceAPI.getName()), resourceAPI, RapidmlPackage.Literals.RESOURCE_API__NAME); } names.add(resourceAPI.getName()); } }
protected Collection<UserDefinedType> _getUsedUserDefinedTypes(final ZenModel model) { final Function1<ResourceAPI, Collection<UserDefinedType>> _function = (ResourceAPI it) -> { return this.getUsedUserDefinedTypes(it); }; return IterableExtensions.<UserDefinedType>toSet(Iterables.<UserDefinedType>concat(ListExtensions.<ResourceAPI, Collection<UserDefinedType>>map(model.getResourceAPIs(), _function))); }
public boolean addDefaultResourceAPI(final ZenModel model) { boolean _xblockexpression = false; { final ResourceAPI resourceAPI = RapidmlFactory.eINSTANCE.createResourceAPI(); resourceAPI.setBaseURI("http://localhost"); resourceAPI.setName(model.getName()); _xblockexpression = model.getResourceAPIs().add(resourceAPI); } return _xblockexpression; }
/** * @param importDeclaration * import declaration * @return list of namespaces that available from imported model */ public static List<String> getImportedNamespaces(ImportDeclaration importDeclaration) { ZenModel zenModel = importDeclaration.getImportedModel(); List<String> result = new ArrayList<>(); if (zenModel != null) { String namespace = ((zenModel.getNamespace() != null) ? zenModel.getNamespace() + "." : "")// + zenModel.getName(); result.addAll(zenModel.getResourceAPIs().stream()// .map(rapi -> namespace + "." + rapi.getName()).collect(Collectors.toList())); result.addAll(zenModel.getDataModels().stream()// .map(dm -> namespace + "." + dm.getName()).collect(Collectors.toList())); Optional.ofNullable(zenModel.getSecuritySchemesLibrary())// .filter(it -> !it.getSecuritySchemes().isEmpty())// .ifPresent(it -> result.add(namespace + "." + it.getName())); } return Collections.unmodifiableList(result); }
public void checkAutoRealizationNameCollisions(ZenModel model) { for (ResourceAPI resourceAPI : model.getResourceAPIs()) { RealizationProcessor processor = new RealizationProcessor(resourceAPI); try { processor.generateAutoRealizations(); } catch (RealizationModelParseException e) { // ignore return; } IRealizationProcessor realizationProcessor = processor.getRealizationProcessor(); if (realizationProcessor instanceof AutoRealizationProcessor) { ((AutoRealizationProcessor) realizationProcessor) // .getRegistry() // .getNameCollisions() // .ifPresent(collisions -> { String message = collisions.keySet() // .stream() // .map(key -> key + " for realizations " + collisions.get(key)) // .collect(Collectors.joining(" and ")); error("Name collisions detected, " + message, model, RapidmlPackage.Literals.ZEN_MODEL__RESOURCE_AP_IS); }); } } }
public CharSequence generateInterfaces(final ZenModel zenModel) { StringConcatenation _builder = new StringConcatenation(); { EList<ResourceAPI> _resourceAPIs = zenModel.getResourceAPIs(); for(final ResourceAPI iface : _resourceAPIs) { CharSequence _generateInterface = this.generateInterface(iface, zenModel); _builder.append(_generateInterface); _builder.newLineIfNotEmpty(); } } return _builder; }
public TraceHelper(final IGenTemplateContext context, final ZenModel model) { try { this.context = context; ZenModelLocator _zenModelLocator = new ZenModelLocator(model); this.locator = _zenModelLocator; this.xsdTrace = context.getPrerequisiteTrace("xsdGenerator"); List<GenTemplateTraceItem> _traceItemsOfType = GenTemplateTraceUtils.getTraceItemsOfType(this.xsdTrace, "namesInSchema"); for (final GenTemplateTraceItem item : _traceItemsOfType) { this.namesItems.put(item.getLocator(), item); } EList<ResourceAPI> _resourceAPIs = model.getResourceAPIs(); for (final ResourceAPI api : _resourceAPIs) { this.apiItems.put(api, GenTemplateTraceUtils.getTraceItem(this.xsdTrace, "resourceAPI", "sourceData", this.locator.<ResourceAPI>locate(api))); } } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } }
/** * @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 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); } } } } }
private CharSequence generateInclude(final ZenModel zenModel) { StringConcatenation _builder = new StringConcatenation(); { EList<ResourceAPI> _resourceAPIs = zenModel.getResourceAPIs(); for(final ResourceAPI resourceAPI : _resourceAPIs) { _builder.append("<include href=\""); String _xsdFilePath = this.traceHelper.getXsdFilePath(resourceAPI); _builder.append(_xsdFilePath); _builder.append("\"/>"); _builder.newLineIfNotEmpty(); } } return _builder; }
@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)); }
boolean _isEmpty_1 = model.getResourceAPIs().isEmpty(); if (_isEmpty_1) { this.addDefaultResourceAPI(model); final ResourceAPI resourceAPI = model.getResourceAPIs().get(0); String _elvis = null; String _baseURI = resourceAPI.getBaseURI(); swagger.path(pathUri, this.createSwaggerPath(it)); }; Iterables.<ResourceDefinition>concat(ListExtensions.<ResourceAPI, EList<ResourceDefinition>>map(model.getResourceAPIs(), _function_3)).forEach(_function_4); Map<String, Path> _paths = swagger.getPaths(); boolean _tripleEquals = (_paths == null);
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); }
private CharSequence generateXsdNamespaceDeclarations(final ZenModel zenModel) { StringConcatenation _builder = new StringConcatenation(); { EList<DataModel> _dataModels = zenModel.getDataModels(); for(final DataModel interfaceDataModel : _dataModels) { Object _generateNamespaceDeclaration = this.generateNamespaceDeclaration(interfaceDataModel); _builder.append(_generateNamespaceDeclaration); _builder.newLineIfNotEmpty(); } } { EList<ResourceAPI> _resourceAPIs = zenModel.getResourceAPIs(); for(final ResourceAPI resourceAPI : _resourceAPIs) { CharSequence _generateNamespaceDeclaration_1 = this.generateNamespaceDeclaration(resourceAPI); _builder.append(_generateNamespaceDeclaration_1); _builder.newLineIfNotEmpty(); } } return _builder; }
_builder.newLine(); EList<ResourceAPI> _resourceAPIs = model.getResourceAPIs(); for(final ResourceAPI resourceAPI : _resourceAPIs) { _builder.append("\"ResourceAPI\": {");
_builder.newLine(); EList<ResourceAPI> _resourceAPIs = model.getResourceAPIs(); for(final ResourceAPI resourceAPI : _resourceAPIs) { _builder.append(" ");