blob: 067a03b182ad75780514f7ec3b07e9c5519801ca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package rba.tool.editor.endpoint
import com.google.inject.Inject
import javax.inject.Singleton
import org.eclipse.xtext.util.internal.Log
import org.eclipse.xtext.web.server.IServiceContext
import org.eclipse.xtext.web.server.InvalidRequestException
import org.eclipse.xtext.web.server.XtextServiceDispatcher
import org.eclipse.xtext.web.server.generator.GeneratorService
@Log
@Singleton
class RBAModelServiceDispatcher extends XtextServiceDispatcher {
@Inject
private GeneratorService generatorService;
override protected createServiceDescriptor(String serviceType, IServiceContext context) {
if (serviceType == "generate-all") {
return getGeneratorAllService(context)
}
super.createServiceDescriptor(serviceType, context)
}
protected def getGeneratorAllService(IServiceContext context) throws InvalidRequestException {
val document = getDocumentAccess(context)
new ServiceDescriptor => [
service = [
try {
generatorService.getResult(document)
} catch (Throwable throwable) {
handleError(throwable)
}
]
]
}
}
|