From be4f78978faba3d3ceb88df02a7f93a2e09ff1e0 Mon Sep 17 00:00:00 2001 From: Kenji Hosokawa Date: Tue, 3 Aug 2021 18:42:39 +0900 Subject: Initial commit Bug-AGL: SPEC-4033 Signed-off-by: Kenji Hosokawa --- .../resource/RBAModelContentTypeProvider.xtend | 15 ++++++++++++++ .../resource/RBAModelResourceSetProvider.xtend | 23 ++++++++++++++++++++++ .../resource/RBAModelWebEncodingProvider.xtend | 16 +++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelContentTypeProvider.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelWebEncodingProvider.xtend (limited to 'rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource') diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelContentTypeProvider.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelContentTypeProvider.xtend new file mode 100644 index 0000000..b089502 --- /dev/null +++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelContentTypeProvider.xtend @@ -0,0 +1,15 @@ +package rba.tool.editor.endpoint.resource + +import org.eclipse.xtext.web.server.generator.DefaultContentTypeProvider +import org.eclipse.xtext.web.server.generator.GeneratorService + +class RBAModelContentTypeProvider extends DefaultContentTypeProvider { + + override getContentType(String fileName) { + if (fileName == GeneratorService.DEFAULT_ARTIFACT) { + return 'text/html'; + } + super.getContentType(fileName); + } + +} diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend new file mode 100644 index 0000000..52b0342 --- /dev/null +++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend @@ -0,0 +1,23 @@ +package rba.tool.editor.endpoint.resource + +import com.google.inject.Inject +import com.google.inject.Provider +import org.eclipse.emf.ecore.resource.ResourceSet +import org.eclipse.xtext.web.server.IServiceContext +import org.eclipse.xtext.web.server.model.IWebResourceSetProvider + +class RBAModelResourceSetProvider implements IWebResourceSetProvider { + + static val MULTI_RESOURCE_PREFIX = 'multi-resource' + + @Inject Provider provider + + override get(String resourceId, IServiceContext serviceContext) { + if (resourceId !== null && resourceId.startsWith(MULTI_RESOURCE_PREFIX)) { + val pathEnd = Math.max(resourceId.indexOf('/'), MULTI_RESOURCE_PREFIX.length) + return serviceContext.session.get(ResourceSet -> resourceId.substring(0, pathEnd), [provider.get]) + } else { + return provider.get + } + } +} diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelWebEncodingProvider.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelWebEncodingProvider.xtend new file mode 100644 index 0000000..42b7034 --- /dev/null +++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelWebEncodingProvider.xtend @@ -0,0 +1,16 @@ +package rba.tool.editor.endpoint.resource + +import org.eclipse.emf.common.util.URI +import org.eclipse.xtext.parser.IEncodingProvider +import com.google.inject.Singleton + +@Singleton +class RBAModelWebEncodingProvider extends IEncodingProvider.Runtime { + + override getEncoding(URI uri) { + if (defaultEncoding !== null) + return defaultEncoding; + return 'utf-8'; + } + +} -- cgit 1.2.3-korg