import org.simantics.db.ReadGraph;
import org.simantics.db.Resource;
import org.simantics.db.common.utils.Functions;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.exception.RuntimeDatabaseException;
import org.simantics.layer0.Layer0;
import org.simantics.db.ReadGraph;
import org.simantics.db.Resource;
import org.simantics.db.common.utils.Functions;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.exception.RuntimeDatabaseException;
import org.simantics.layer0.Layer0;
- private static final FunctionImpl3<ReadGraph,Resource,Object,Object> functionApplication = new FunctionImpl3<ReadGraph,Resource,Object,Object>() {
+ public static final FunctionImpl3<ReadGraph,Resource,Object,Object> functionApplication = new FunctionImpl3<ReadGraph,Resource,Object,Object>() {
@Override
public Object perform(ReadGraph graph) throws DatabaseException {
String uri = graph.getURI(resource);
@Override
public Object perform(ReadGraph graph) throws DatabaseException {
String uri = graph.getURI(resource);
- try {
- if(Layer0.URIs.Functions_functionApplication.equals(uri)) return functionApplication;
- return ReflectionUtils.getValue(uri).getValue();
- } catch (ValueNotFoundException e) {
- throw new DatabaseException("Couldn't adapt the value " + uri, e);
- }
+ if(Layer0.URIs.Functions_functionApplication.equals(uri)) return functionApplication;
+ ComputationalValue ev = graph.adapt(resource, ComputationalValue.class);
+ return ev.getValue(graph, resource);
+