diff options
Diffstat (limited to 'rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelResourceBaseProviderImpl.xtend')
-rw-r--r-- | rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelResourceBaseProviderImpl.xtend | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelResourceBaseProviderImpl.xtend b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelResourceBaseProviderImpl.xtend new file mode 100644 index 0000000..02d1519 --- /dev/null +++ b/rba.tool.editor.endpoint/src/rba/tool/editor/endpoint/server/persistence/RBAModelResourceBaseProviderImpl.xtend @@ -0,0 +1,27 @@ +package rba.tool.editor.endpoint.server.persistence + +import java.io.File +import org.eclipse.emf.common.util.URI +import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor +import org.eclipse.xtext.web.server.persistence.IResourceBaseProvider + +@FinalFieldsConstructor +class RBAModelResourceBaseProviderImpl implements IResourceBaseProvider { + + val String resourceBase + + override getFileURI(String resourceId) { +// if (resourceId.contains('..')) +// throw new InvalidRequestException.InvalidParametersException('Invalid resource path.') + URI.createURI(slashify(resourceBase + resourceId, true)) + } + + def static String slashify(String resourceId, boolean isDirectory) { + var p = resourceId; + if (File.separatorChar != '/') + p = p.replace(File.separatorChar, '/'); + if (!p.endsWith("/") && isDirectory) + p = p + "/"; + return p; + } +} |