/* * generated by Xtext 2.13.0 */ package rba.tool.editor.endpoint import com.google.inject.Injector import javax.servlet.annotation.WebServlet import org.eclipse.emf.common.util.URI import org.eclipse.xtext.resource.IResourceServiceProvider import org.eclipse.xtext.util.DisposableRegistry import org.eclipse.xtext.web.server.InvalidRequestException.UnknownLanguageException import org.eclipse.xtext.web.servlet.HttpServiceContext import org.eclipse.xtext.web.servlet.XtextServlet import rba.tool.editor.endpoint.server.persistence.RBAModelResourceBaseProviderImpl import org.eclipse.xtext.web.server.XtextServiceDispatcher.ServiceDescriptor import org.eclipse.xtext.web.server.IServiceResult /** * Deploy this class into a servlet container to enable DSL-specific services. */ @WebServlet(name='XtextServices', urlPatterns='/xtext-service/*') class RBAModelServlet extends XtextServlet { val serviceProviderRegistry = IResourceServiceProvider.Registry.INSTANCE DisposableRegistry disposableRegistry override init() { super.init() val resourceBaseProvider = new RBAModelResourceBaseProviderImpl('') new RBAModelWebSetup(resourceBaseProvider).createInjectorAndDoEMFRegistration } override protected getInjector(HttpServiceContext serviceContext) throws UnknownLanguageException { var IResourceServiceProvider resourceServiceProvider val emfURI = URI.createURI('./sample.rba') val contentType = serviceContext.getParameter('contentType') if (contentType.nullOrEmpty) { resourceServiceProvider = serviceProviderRegistry.getResourceServiceProvider(emfURI) if (resourceServiceProvider === null) { if (emfURI.toString.empty) throw new UnknownLanguageException('''Unable to identify the Xtext language: missing parameter 'resource' or 'contentType'.''') else throw new UnknownLanguageException('''Unable to identify the Xtext language for resource emfURI.''') } } else { resourceServiceProvider = serviceProviderRegistry.getResourceServiceProvider(emfURI, contentType) if (resourceServiceProvider === null) throw new UnknownLanguageException('''Unable to identify the Xtext language for contentType contentType.''') } return resourceServiceProvider.get(Injector) } override protected getEncoding(ServiceDescriptor service, IServiceResult result) { 'Shift_JIS' } override destroy() { if (disposableRegistry !== null) { disposableRegistry.dispose() disposableRegistry = null } super.destroy() } }