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))); }
@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()); } }
private boolean isWithAutoRealizations(EObject object) { ResourceAPI resourceAPI = getResourceAPI(object); return resourceAPI != null && !resourceAPI.getAutoRealizations().isEmpty(); }
protected CharSequence generateResourcesElement(final ResourceAPI resourceAPI) { StringConcatenation _builder = new StringConcatenation(); _builder.append("<resources base=\""); String _baseURI = resourceAPI.getBaseURI(); _builder.append(_baseURI); _builder.append("/"); String _name = resourceAPI.getName(); _builder.append(_name); _builder.append("\">"); _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);
String _baseURI = resourceAPI.getBaseURI(); if (_baseURI != null) { _elvis = _baseURI; Info _info_1 = swagger.getInfo(); String _xifexpression_2 = null; boolean _isNullOrEmpty = Strings.isNullOrEmpty(resourceAPI.getVersion()); boolean _not_1 = (!_isNullOrEmpty); if (_not_1) { _xifexpression_2 = resourceAPI.getVersion(); } else { _xifexpression_2 = "1.0.0"; _info_2.setTitle(resourceAPI.getName()); Info _info_3 = swagger.getInfo(); _info_3.setDescription(this._zenModelHelper.getDocumentation(resourceAPI)); swagger.addProduces(it.getName()); }; resourceAPI.getDefinedMediaTypes().forEach(_function_2); final Function1<ResourceAPI, EList<ResourceDefinition>> _function_3 = (ResourceAPI it) -> { return it.getOwnedResourceDefinitions(); }; final Consumer<ResourceDefinition> _function_4 = (ResourceDefinition it) -> {
/** * @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; }
@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; }
private String getFqName(final ResourceDefinition resource) { String _xblockexpression = null; { EObject _eContainer = resource.eContainer(); final ResourceAPI api = ((ResourceAPI) _eContainer); EObject _eContainer_1 = api.eContainer(); final ZenModel model = ((ZenModel) _eContainer_1); StringConcatenation _builder = new StringConcatenation(); String _name = model.getName(); _builder.append(_name); _builder.append("."); String _name_1 = api.getName(); _builder.append(_name_1); _builder.append("."); String _name_2 = resource.getName(); _builder.append(_name_2); _xblockexpression = _builder.toString(); } return _xblockexpression; }
CharSequence _xblockexpression = null; String _baseURI = api.getBaseURI(); String prefix = new URI(_baseURI).getPath(); boolean _startsWith = prefix.startsWith("/");
@Check public void checkAutoRealizationFileExistsAndIsValid(ResourceAPI resourceAPI) { URI baseURI = resourceAPI.eResource().getURI(); for (RealizationModelLocation location : resourceAPI.getAutoRealizations()) { try { if (!resourceAPI.eResource().getResourceSet().getURIConverter().exists(uri, null)) { error("Cannot find file named " + location.getUri(), location, RapidmlPackage.Literals.REALIZATION_MODEL_LOCATION__URI);
_builder.append(" "); _builder.append("\"name\": \""); String _name = resourceAPI.getName(); _builder.append(_name, " "); _builder.append("\","); _builder.append(" "); _builder.append("\"baseURI\": \""); String _baseURI = resourceAPI.getBaseURI(); _builder.append(_baseURI, " "); _builder.append("\","); IterableExtensions.<ServiceDataResource>toList(Iterables.<ServiceDataResource>filter(resourceAPI.getOwnedResourceDefinitions(), ServiceDataResource.class))); boolean _hasElements = false; for(final ServiceDataResource aResource : _sort) {
@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)); }
_builder_1.append(_nameOrTitle, " "); _builder_1.append("</strong> <small>("); String _baseURI = resourceAPI.getBaseURI(); _builder_1.append(_baseURI, " "); _builder_1.append(")</small></h3>"); _builder_1.newLineIfNotEmpty(); EList<ResourceDefinition> _ownedResourceDefinitions = resourceAPI.getOwnedResourceDefinitions(); for(final ResourceDefinition resource : _ownedResourceDefinitions) { _builder_1.append(" ");
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))); }
/** * @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); }
private RealizationModel governingModel(final ServiceDataResource resource) { EObject _eContainer = resource.eContainer(); RealizationModelLocation _head = IterableExtensions.<RealizationModelLocation>head(((ResourceAPI) _eContainer).getAutoRealizations()); RealizationModel _realizationModel = null; if (_head!=null) { _realizationModel=_head.getRealizationModel(); } return _realizationModel; }
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); } }
if (component instanceof ResourceAPI) { _matched=true; return ((ResourceAPI)component).getName();
public RealizationProcessor(ResourceAPI resourceAPI) { this.resourceAPI = resourceAPI; boolean withAutoRealizations = !resourceAPI.getAutoRealizations().isEmpty(); if (withAutoRealizations) { autoRealizationProcessor = new AutoRealizationProcessor(); } else { autoRealizationProcessor = new DefaultRealizationProcessor(resourceAPI); } resourceFinder = new ResourceFinder(resourceAPI); referenceTreatmentNormalizer = new ReferenceTreatmentNormalizer(resourceAPI); }
@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()); } }