]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.server/src/org/simantics/document/server/SCLExternalValue.java
Multiple readers and variable optimization
[simantics/platform.git] / bundles / org.simantics.document.server / src / org / simantics / document / server / SCLExternalValue.java
1 package org.simantics.document.server;
2
3 import org.simantics.db.ConverterExternalValue;
4 import org.simantics.db.ReadGraph;
5 import org.simantics.db.Resource;
6 import org.simantics.db.exception.DatabaseException;
7 import org.simantics.document.base.ontology.DocumentationResource;
8 import org.simantics.document.server.request.ServerSCLValueRequest;
9 import org.simantics.scl.reflection.ReflectionUtils;
10 import org.simantics.scl.reflection.ValueNotFoundException;
11 import org.simantics.scl.runtime.function.Function1;
12
13 public class SCLExternalValue implements ConverterExternalValue {
14
15         @Override
16         public <T> T getValue(ReadGraph graph, Resource resource) throws DatabaseException {
17                 try {
18                         return (T)ReflectionUtils.getValue(DocumentationResource.URIs.Functions_sclValue).getValue();
19                 } catch (ValueNotFoundException e) {
20                         throw new DatabaseException(e);
21                 }
22         }
23
24         @Override
25         public Function1 getFunction(ReadGraph graph, Resource s, Resource o, Resource p) throws DatabaseException {
26                 return ServerSCLValueRequest.compile(graph, s, o, p);
27         }
28
29 }