| [comment encoding = UTF-8 /] |
| [comment |
| /******************************************************************************* |
| * Copyright (c) 2014 Jad El-khoury. |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * and Eclipse Distribution License v. 1.0 which accompanies this distribution. |
| * |
| * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html |
| * and the Eclipse Distribution License is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * Contributors: |
| * |
| * Jad El-khoury - initial implementation of code generator (422448) |
| * Matthieu Helleboid - Support for multiple Service Providers. |
| * Anass Radouani - Support for multiple Service Providers. |
| * Frédéric Loiret - Switch the template to Bootstrap (519699) |
| *******************************************************************************/ |
| /] |
| |
| [module generate('http://org.eclipse.lyo/oslc4j/adaptorInterface', 'http://org.eclipse.lyo/oslc4j/vocabulary')] |
| |
| [import org::eclipse::lyo::oslc4j::codegenerator::services::services/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::services::resourceServices/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::services::resourcePropertyServices/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::services::adaptorInterfaceServices/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::services::vocabularyServices/] |
| |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateServiceProviderCatalogService/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateServiceProviderCatalogSingleton/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateAdaptorServiceProviderFactory/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateAdaptorManager/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateAdaptorResourcesFactory/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateAdaptorServletListener/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateAdaptorApplication/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateClientOnlyMainApplication/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateAdaptorPackageInfo/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateDomainSpecificationConstants/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateVocabularyConstants/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateAdaptorConstants/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateServiceProviderService/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateServiceProviderInfo/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateResource/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateResourceInterface/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateResourceService/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::staticFiles::generateLicenseFiles/] |
| |
| [import org::eclipse::lyo::oslc4j::codegenerator::staticFiles::generateCssAndJsFiles/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateResourceCollectionJsp/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateFilteredResourceCollectionJsp/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateGetResourceJsp/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateGetResourceSmallPreviewJsp/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateResourceCreatorJsp/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateResourceSelectorJsp/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateResourceSelectorClientJsp/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateResourceCreatorClientJsp/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateServiceProviderCatalogHTML/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateServiceProviderHTML/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateDelegatedUIJavaScripts/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateIndexJsp/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::jsp::generateResourceShapeJsp/] |
| |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateAdaptorClient/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::files::generateResourceShapeService/] |
| |
| [template public generateCommon(anAdaptorInterface : AdaptorInterface)] |
| [anAdaptorInterface.generateLicenseFiles() /] |
| [anAdaptorInterface.generateAdaptorConstants() /] |
| [anAdaptorInterface.generateAdaptorPackageInfo() /] |
| [/template] |
| |
| [template public generateForServiceProviderCatalog(anAdaptorInterface : AdaptorInterface)] |
| [if (not anAdaptorInterface.serviceProviderCatalog.oclIsUndefined())] |
| [anAdaptorInterface.generateAdaptorApplication() /] |
| [anAdaptorInterface.generateAdaptorServletListener() /] |
| [anAdaptorInterface.generateAdaptorManager() /] |
| [anAdaptorInterface.generateAdaptorResourcesFactory() /] |
| [anAdaptorInterface.serviceProviderCatalog.generateServiceProviderCatalogService() /] |
| [anAdaptorInterface.serviceProviderCatalog.generateServiceProviderCatalogSingleton() /] |
| |
| [anAdaptorInterface.generateCssAndJsFiles() /] |
| [anAdaptorInterface.serviceProviderCatalog.generateServiceProviderCatalogHTML() /] |
| [anAdaptorInterface.generateIndexJsp() /] |
| [anAdaptorInterface.generateDelegatedUIJavaScripts() /] |
| [anAdaptorInterface.generateResourceSelectorClientJsp() /] |
| [anAdaptorInterface.generateResourceCreatorClientJsp() /] |
| [anAdaptorInterface.generateResourceShapeService() /] |
| [anAdaptorInterface.generateResourceShapeJsp() /] |
| [/if] |
| [/template] |
| |
| [template public generateForRelevantDomainSpecifications(anAdaptorInterface : AdaptorInterface)] |
| [for (aDomainSpecification: DomainSpecification | relevantDomainSpecifications(anAdaptorInterface))] |
| [aDomainSpecification.generateDomainSpecificationConstants(anAdaptorInterface, null, null)/] |
| [/for] |
| [/template] |
| |
| [template public generateForRelevantVocabularies(anAdaptorInterface : AdaptorInterface)] |
| [for (aVocabulary: Vocabulary | relevantVocabularies(anAdaptorInterface))] |
| [aVocabulary.generateVocabularyConstants(anAdaptorInterface, null, null)/] |
| [/for] |
| [/template] |
| |
| [template public generateForRelevantResources(anAdaptorInterface : AdaptorInterface)] |
| [for (aResource: Resource | relevantResources(anAdaptorInterface))] |
| [aResource.generateResource(anAdaptorInterface, null, null) /] |
| [aResource.generateResourceInterface(anAdaptorInterface, anAdaptorInterface, null, null) /] |
| [/for] |
| [/template] |
| |
| [template public generateForServiceProviders(anAdaptorInterface : AdaptorInterface)] |
| [for (aServiceProvider: ServiceProvider | anAdaptorInterface.serviceProviders())] |
| [aServiceProvider.generateServiceProviderInfo() /] |
| [aServiceProvider.generateServiceProviderService()/] |
| [aServiceProvider.generateAdaptorServiceProviderFactory() /] |
| [aServiceProvider.generateServiceProviderHTML() /] |
| |
| [for (aService: Service | aServiceProvider.services)] |
| [aService.generateResourceService()/] |
| |
| [for (aQueryCapability: QueryCapability | aService.queryCapabilities)] |
| [comment Produce one only jsp-file for each set of QueryCapabilities that have the same Sequence (not Set) of ResourceTypes. /] |
| [let allQueryCapabilities: Sequence(QueryCapability) = anAdaptorInterface.serviceProviderCatalog.serviceProviders.services.queryCapabilities] |
| [if not (allQueryCapabilities->excluding(aQueryCapability)->exists(anotherQueryCapability: QueryCapability | |
| (anotherQueryCapability.resourceTypes = aQueryCapability.resourceTypes). |
| _and(allQueryCapabilities->indexOf(anotherQueryCapability) > allQueryCapabilities->indexOf(aQueryCapability))))] |
| [aQueryCapability.generateResourceCollectionJsp() /] |
| [/if] |
| [/let] |
| [/for] |
| |
| [for (aSelectionDialog: Dialog | aService.selectionDialogs)] |
| [comment Produce one only set of jsp-files for each set of selectionDialogs that have the same Sequence (not Set) of ResourceTypes. /] |
| [let allSelectionDialogs: Sequence(Dialog) = anAdaptorInterface.serviceProviderCatalog.serviceProviders.services.selectionDialogs] |
| [if not (allSelectionDialogs->excluding(aSelectionDialog)->exists(anotherSelectionDialog: Dialog | |
| (anotherSelectionDialog.resourceTypes = aSelectionDialog.resourceTypes). |
| _and(allSelectionDialogs->indexOf(anotherSelectionDialog) > allSelectionDialogs->indexOf(aSelectionDialog))))] |
| [aSelectionDialog.generateFilteredResourceCollectionJsp() /] |
| [aSelectionDialog.generateResourceSelectorJsp() /] |
| [/if] |
| [/let] |
| [/for] |
| |
| [for (aCreationDialog: Dialog | aService.creationDialogs)] |
| [comment Produce one only jsp-file for each set of creationDialogs that have the same Sequence (not Set) of ResourceTypes. /] |
| [let allCreationDialogs: Sequence(Dialog) = anAdaptorInterface.serviceProviderCatalog.serviceProviders.services.creationDialogs] |
| [if not (allCreationDialogs->excluding(aCreationDialog)->exists(anotherCreationDialog: Dialog | |
| (anotherCreationDialog.resourceTypes = aCreationDialog.resourceTypes). |
| _and(allCreationDialogs->indexOf(anotherCreationDialog) > allCreationDialogs->indexOf(aCreationDialog))))] |
| [aCreationDialog.generateResourceCreatorJsp() /] |
| [/if] |
| [/let] |
| [/for] |
| [/for] |
| [/for] |
| |
| [for (aResource: Resource | relevantResources(anAdaptorInterface))] |
| [if (not basicCapabilities(anAdaptorInterface, aResource)->isEmpty())] |
| [aResource.generateGetResourceJsp(anAdaptorInterface, anAdaptorInterface) /] |
| [aResource.generateGetResourceSmallPreviewJsp(anAdaptorInterface, anAdaptorInterface) /] |
| [/if] |
| [/for] |
| [/template] |
| |
| [template public generateForRequiredAdaptors(anAdaptorInterface : AdaptorInterface)] |
| [for (aRequiredAdaptor: RequiredAdaptor | anAdaptorInterface.requiredAdaptors)] |
| [aRequiredAdaptor.generateAdaptorClient(anAdaptorInterface) /] |
| [/for] |
| [/template] |
| |
| [template public generate(anAdaptorInterface : AdaptorInterface)] |
| [comment @main/] |
| [generateCommon(anAdaptorInterface)/] |
| [if (not anAdaptorInterface.serviceProviderCatalog.oclIsUndefined())] |
| [generateForServiceProviderCatalog(anAdaptorInterface)/] |
| [generateForServiceProviders(anAdaptorInterface)/] |
| [else] |
| [generateClientOnlyMainApplication(anAdaptorInterface)/] |
| [/if] |
| [generateForRelevantDomainSpecifications(anAdaptorInterface)/] |
| [generateForRelevantVocabularies(anAdaptorInterface)/] |
| [generateForRelevantResources(anAdaptorInterface)/] |
| [generateForRequiredAdaptors(anAdaptorInterface)/] |
| [/template] |