| [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 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=422448) |
| * |
| *******************************************************************************/ |
| /] |
| |
| [module serviceServices('http://org.eclipse.lyo/oslc4j/adaptorInterface')/] |
| |
| [import org::eclipse::lyo::oslc4j::codegenerator::services::services/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::services::resourceServices/] |
| [import org::eclipse::lyo::oslc4j::codegenerator::services::serviceProviderServices/] |
| |
| [query public containingAdaptorInterface(aService: Service) : AdaptorInterface = |
| aService.eContainer(AdaptorInterface).oclAsType(AdaptorInterface) |
| /] |
| |
| [query public containingAdaptorInterface (aQueryCapability: QueryCapability) : AdaptorInterface = |
| aQueryCapability.eContainer(AdaptorInterface).oclAsType(AdaptorInterface) |
| /] |
| |
| [query public containingAdaptorInterface (aDialog: Dialog) : AdaptorInterface = |
| aDialog.eContainer(AdaptorInterface).oclAsType(AdaptorInterface) |
| /] |
| |
| [query public containingAdaptorInterface (aCreationFactory: CreationFactory) : AdaptorInterface = |
| aCreationFactory.eContainer(AdaptorInterface).oclAsType(AdaptorInterface) |
| /] |
| |
| [query public containingAdaptorInterface (aBasicCapability: BasicCapability) : AdaptorInterface = |
| aBasicCapability.eContainer(AdaptorInterface).oclAsType(AdaptorInterface) |
| /] |
| |
| [query public containingServiceProvider(aService: Service) : ServiceProvider = |
| aService.eContainer(ServiceProvider).oclAsType(ServiceProvider) |
| /] |
| |
| [query public javaClassPackageName(aService: Service) : String = |
| javaClassBaseNamespace(containingAdaptorInterface(aService)).concat('.services') |
| /] |
| |
| [query public javaClassName(aService: Service) : String = |
| (concatenate(servicedResources(aService)->sortedBy(name).javaName(true)->sep('', 'And', '').oclAsType(String))).toUpperFirst() |
| .concat('Service') |
| /] |
| |
| [query public javaClassFullName(aService: Service) : String = |
| javaClassPackageName(aService).concat('.').concat(javaClassName(aService)) |
| /] |
| |
| [query public javaClassFullFileName(aService: Service) : String = |
| javaFilesBasePath(containingAdaptorInterface(aService)).concatenatePaths(javaClassPackageName(aService).substituteAll('.', '/')).concat('/').concat(javaClassName(aService)).concat('.java') |
| /] |
| |
| [comment default to true if the property is not explicitly defined /] |
| [query public serviceNamespaceRelativeToServiceProvider (aService: Service) : Boolean = |
| (if (not aService.serviceNamespace.oclIsUndefined()) then |
| (if (aService.serviceNamespace = ResourceServiceNamespace::relativeToServiceProvider) then |
| true |
| else |
| false |
| endif) |
| else |
| true |
| endif) |
| /] |
| |
| [query public serviceBaseURI (aService: Service) : String = |
| (if (serviceNamespaceRelativeToServiceProvider(aService)) then |
| aService.containingServiceProvider().instanceURI().concat('/') |
| else |
| '' |
| endif) |
| .concat( |
| (if (containingServiceProvider(aService).services->size() = 1) then |
| '' |
| else |
| 'service'.concat(containingServiceProvider(aService).services->indexOf(aService).toString()).concat('/') |
| endif) |
| ) |
| .concat( |
| (if (servicedResources(aService)->size() = 1) then |
| javaName(servicedResources(aService)->any(true), false).concat('s') |
| else |
| 'resources' |
| endif) |
| ) |
| /] |
| |
| [comment QueryCapability /] |
| [query public URISegment (aQueryCapability: QueryCapability) : String = |
| if (aQueryCapability.queryBaseURI.oclIsUndefined())._or (aQueryCapability.queryBaseURI.equalsIgnoreCase('')) then |
| '' |
| else |
| aQueryCapability.queryBaseURI |
| endif |
| /] |
| |
| [query public URI (aQueryCapability: QueryCapability) : String = |
| JAXRSConcatURISegments(aQueryCapability.eContainer(Service).serviceBaseURI(), aQueryCapability.URISegment()) |
| /] |
| |
| [query public queryCompositeID(aQueryCapability: QueryCapability) : Sequence(String) = |
| JAXRSPathParameters(aQueryCapability.URI()) |
| /] |
| |
| [query public queryMethodName(aQueryCapability: QueryCapability, forRDF : Boolean) : String = |
| concatenate(aQueryCapability.resourceTypes.javaName(true)->sep('query', 'sAnd', 's').oclAsType(String)) |
| .concat((if forRDF then '' else 'AsHtml' endif)) |
| /] |
| |
| [query public queryMethodResourceType(aQueryCapability: QueryCapability) : String = |
| if (aQueryCapability.resourceTypes->size() = 1) then |
| javaClassName(aQueryCapability.resourceTypes->first()) |
| else |
| 'AbstractResource' |
| endif |
| /] |
| |
| [query public queryMethodReturnType(aQueryCapability: QueryCapability, forRDF : Boolean) : String = |
| if forRDF then |
| queryMethodResourceType(aQueryCapability).concat('[]') |
| else |
| 'Response' |
| endif |
| /] |
| |
| [query public queryMethodSignature(aQueryCapability: QueryCapability, forJAXRSMethod : Boolean) : String = |
| methodSignature(queryCompositeID(aQueryCapability), forJAXRSMethod) |
| /] |
| |
| [query public queryMethodParameterList(aQueryCapability: QueryCapability) : String = |
| methodParameterList(JAXRSPathParameters(aQueryCapability.URI())) |
| /] |
| |
| [comment CreationFactory /] |
| [query public URISegment (aCreationFactory: CreationFactory) : String = |
| if (aCreationFactory.creationURI.oclIsUndefined())._or (aCreationFactory.creationURI.equalsIgnoreCase('')) then |
| 'create' |
| else |
| aCreationFactory.creationURI |
| endif |
| /] |
| |
| [query public URI (aCreationFactory: CreationFactory) : String = |
| JAXRSConcatURISegments(aCreationFactory.eContainer(Service).serviceBaseURI(), aCreationFactory.URISegment()) |
| /] |
| |
| [query public creationCompositeID(aCreationFactory: CreationFactory) : Sequence(String) = |
| JAXRSPathParameters(aCreationFactory.URI()) |
| /] |
| |
| [query public creationMethodName(aCreationFactory: CreationFactory) : String = |
| concatenate(aCreationFactory.resourceTypes.javaName(true)->sep('create', 'And', '').oclAsType(String)) |
| .concat('') |
| /] |
| |
| [query public creationMethodResourceType(aCreationFactory: CreationFactory) : String = |
| if (aCreationFactory.resourceTypes->size() = 1) then |
| javaClassName(aCreationFactory.resourceTypes->first()) |
| else |
| 'AbstractResource' |
| endif |
| /] |
| |
| [query public creationMethodReturnType(aCreationFactory: CreationFactory) : String = |
| 'Response' |
| /] |
| |
| [query public creationMethodSignature(aCreationFactory: CreationFactory, forJAXRSMethod : Boolean) : String = |
| methodSignature(creationCompositeID(aCreationFactory), forJAXRSMethod) |
| /] |
| |
| [query public creationMethodParameterList(aCreationFactory: CreationFactory) : String = |
| methodParameterList(JAXRSPathParameters(aCreationFactory.URI())) |
| /] |
| |
| [query public getResourceETagMethodName(resources : Set(Resource)) : String = |
| concatenate(resources.javaName(true)->sep('getETagFrom', 'And', '').oclAsType(String)) |
| .concat('') |
| /] |
| |
| [query public getResourceETagMethodName(aResource: Resource) : String = |
| getResourceETagMethodName(Set{aResource}) |
| /] |
| |
| [comment Dialog /] |
| [query public URISegment (aDialog: Dialog, selectionDialog : Boolean) : String = |
| if (aDialog.dialogURI.oclIsUndefined())._or (aDialog.dialogURI.equalsIgnoreCase('')) then |
| (if selectionDialog then 'selector' else 'creator' endif) |
| else |
| aDialog.dialogURI |
| endif |
| /] |
| |
| [query public URI (aDialog: Dialog, selectionDialog : Boolean) : String = |
| JAXRSConcatURISegments(aDialog.eContainer(Service).serviceBaseURI(), aDialog.URISegment(selectionDialog)) |
| /] |
| |
| [query public dialogCompositeID(aDialog: Dialog, selectionDialog : Boolean) : Sequence(String) = |
| JAXRSPathParameters(aDialog.URI(selectionDialog)) |
| /] |
| |
| [query public dialogMethodName(aDialog: Dialog, selectionDialog : Boolean) : String = |
| concatenate(aDialog.resourceTypes.javaName(true)->sep('', 'And', '').oclAsType(String)) |
| .concat((if selectionDialog then 'Selector' else 'Creator' endif)) |
| /] |
| |
| [query public dialogMethodResourceType(aDialog: Dialog) : String = |
| if (aDialog.resourceTypes->size() = 1) then |
| javaClassName(aDialog.resourceTypes->first()) |
| else |
| 'AbstractResource' |
| endif |
| /] |
| |
| [query public dialogMethodReturnType(aDialog: Dialog, selectionDialog : Boolean) : String = |
| 'void' |
| /] |
| |
| [query public dialogMethodSignature(aDialog: Dialog, selectionDialog : Boolean, forJAXRSMethod : Boolean) : String = |
| methodSignature(dialogCompositeID(aDialog, selectionDialog), forJAXRSMethod) |
| /] |
| |
| [query public dialogMethodParameterList(aDialog: Dialog, selectionDialog : Boolean) : String = |
| methodParameterList(JAXRSPathParameters(aDialog.URI(selectionDialog))) |
| /] |
| |
| [query public creationMethodName(aCreationDialog: Dialog) : String = |
| concatenate(aCreationDialog.resourceTypes.javaName(true)->sep('create', 'And', '').oclAsType(String)) |
| .concat('') |
| /] |
| |
| [query public creationMethodResourceType(aCreationDialog: Dialog) : String = |
| if (aCreationDialog.resourceTypes->size() = 1) then |
| javaClassName(aCreationDialog.resourceTypes->first()) |
| else |
| 'AbstractResource' |
| endif |
| /] |
| |
| [query public creationMethodReturnType(aCreationDialog: Dialog) : String = |
| 'void' |
| /] |
| |
| [comment BasicCapability /] |
| [query public instanceURISegment (aResource: Resource, aBasicCapability: BasicCapability) : String = |
| (if (servicedResources(aBasicCapability.eContainer(Service))->size() = 1) then |
| '' |
| else |
| javaName(aResource, false).concat('s/') |
| endif) |
| .concat( |
| (if (not aBasicCapability.instanceID.oclIsUndefined())._and(not aBasicCapability.instanceID.equalsIgnoreCase('')) then |
| aBasicCapability.instanceID |
| else |
| '{'.concat(javaName(aResource, false)).concat('Id}') |
| endif) |
| ) |
| /] |
| |
| [query public instanceURI (aResource: Resource, aBasicCapability: BasicCapability) : String = |
| JAXRSConcatURISegments(aBasicCapability.eContainer(Service).serviceBaseURI(), aResource.instanceURISegment(aBasicCapability)) |
| /] |
| |
| [query public instanceCompositeID (aResource: Resource, aBasicCapability: BasicCapability) : Sequence(String) = |
| JAXRSPathParameters(aResource.instanceURI(aBasicCapability)) |
| /] |
| |
| [query public getResourceMethodName(aBasicCapability: BasicCapability, aResource: Resource, forRDF : Boolean) : String = |
| 'get'.concat(javaName(aResource, true)) |
| .concat((if forRDF then '' else 'AsHtml' endif)) |
| /] |
| |
| [query public deleteResourceMethodName(aBasicCapability: BasicCapability, aResource: Resource) : String = |
| 'delete'.concat(javaName(aResource, true)) |
| /] |
| |
| [query public updateResourceMethodName(aBasicCapability: BasicCapability, aResource: Resource) : String = |
| 'update'.concat(javaName(aResource, true)) |
| /] |
| |
| [query public getResourceMethodResourceType(aBasicCapability: BasicCapability, aResource: Resource) : String = |
| javaClassName(aResource) |
| /] |
| |
| [query public getResourceMethodReturnType(aBasicCapability: BasicCapability, aResource: Resource, forRDF : Boolean) : String = |
| if forRDF then |
| aBasicCapability.getResourceMethodResourceType(aResource) |
| else |
| 'Response' |
| endif |
| /] |
| |
| [query public updateResourceMethodResourceType(aBasicCapability: BasicCapability, aResource: Resource) : String = |
| javaClassName(aResource) |
| /] |
| |
| [query public updateResourceMethodReturnType(aBasicCapability: BasicCapability, aResource: Resource) : String = |
| 'Response' |
| /] |
| |
| [query public deleteResourceMethodResourceType(aBasicCapability: BasicCapability, aResource: Resource) : String = |
| javaClassName(aResource) |
| /] |
| |
| [query public deleteResourceMethodReturnType(aBasicCapability: BasicCapability, aResource: Resource) : String = |
| 'Response' |
| /] |
| |
| [query public instanceMethodSignature(aResource: Resource, aBasicCapability: BasicCapability, forJAXRSMethod : Boolean) : String = |
| methodSignature(instanceCompositeID(aResource, aBasicCapability), forJAXRSMethod) |
| /] |
| |
| [query public instanceMethodParameterList(aResource: Resource, aBasicCapability: BasicCapability) : String = |
| methodParameterList(instanceCompositeID(aResource, aBasicCapability)) |
| /] |
| |