diff options
author | Kenji Hosokawa <khosokawa@jp.adit-jv.com> | 2021-08-03 18:42:39 +0900 |
---|---|---|
committer | Kenji Hosokawa <khosokawa@jp.adit-jv.com> | 2021-08-06 19:32:38 +0900 |
commit | be4f78978faba3d3ceb88df02a7f93a2e09ff1e0 (patch) | |
tree | 1f3f1a96251ac4f655c8a96fc33d5d4ee779cd06 /rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend | |
parent | 71ca7c6cab863767ef30c8bd05b2bbfda8731cb5 (diff) |
Initial commit
Bug-AGL: SPEC-4033
Signed-off-by: Kenji Hosokawa <khosokawa@jp.adit-jv.com>
Diffstat (limited to 'rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend')
-rw-r--r-- | rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/resource/RBAModelResourceSetProvider.xtend | 23 |
1 files changed, 23 insertions, 0 deletions
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<ResourceSet> 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 + } + } +} |