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/RBAModelResourceSetProvider.xtend | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend (limited to 'rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend') 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 + } + } +} -- cgit 1.2.3-korg