X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fscl%2Fontologymodule%2FSCLRelationInfoRequest.java;h=e7ed5bd97d5691ea09deb4b36ca198b9be1154ca;hp=6662463c5b50fc0613e62bd342cc64f2571202b9;hb=258325ccd59cc58a0ec8d26a21353e1470ebd6fa;hpb=ff1c29bf73b3e5ea939dc1987540aa0240dc4ae6 diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/ontologymodule/SCLRelationInfoRequest.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/ontologymodule/SCLRelationInfoRequest.java index 6662463c5..e7ed5bd97 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/ontologymodule/SCLRelationInfoRequest.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/scl/ontologymodule/SCLRelationInfoRequest.java @@ -6,21 +6,23 @@ import org.simantics.databoard.Bindings; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.common.procedure.adapter.TransientCacheListener; +import org.simantics.db.common.request.BinaryRead; import org.simantics.db.common.request.UnaryRead; import org.simantics.db.exception.DatabaseException; import org.simantics.layer0.Layer0; +import org.simantics.scl.compiler.environment.Environment; +import org.simantics.scl.compiler.environment.Environments; +import org.simantics.scl.compiler.top.SCLExpressionCompilationException; import org.simantics.scl.compiler.types.Type; -import org.simantics.scl.compiler.types.Types; -import org.simantics.scl.compiler.types.exceptions.SCLTypeParseException; import org.simantics.scl.db.SCLCompilationRequestProcessor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class SCLRelationInfoRequest extends UnaryRead { +public class SCLRelationInfoRequest extends BinaryRead { private static final Logger LOGGER = LoggerFactory.getLogger(SCLRelationInfoRequest.class); - private SCLRelationInfoRequest(Resource resource) { - super(resource); + private SCLRelationInfoRequest(Resource resource, Environment environment) { + super(resource, environment); } @Override @@ -58,8 +60,8 @@ public class SCLRelationInfoRequest extends UnaryRead Type type; try { - type = Types.parseType(valueType); - } catch (SCLTypeParseException e) { + type = Environments.getType(parameter2, valueType); + } catch (SCLExpressionCompilationException e) { LOGGER.warn("Couldn't parse the value type of relation {}. Definition was '{}'.", graph.getURI(parameter), valueType); return null; } @@ -67,9 +69,9 @@ public class SCLRelationInfoRequest extends UnaryRead return new SCLRelationInfo(type, name); } - public static SCLRelationInfo getRelationInfo(Resource resource) { + public static SCLRelationInfo getRelationInfo(Resource resource, Environment environment) { try { - return SCLCompilationRequestProcessor.getRequestProcessor().syncRequest(new SCLRelationInfoRequest(resource), TransientCacheListener.instance()); + return SCLCompilationRequestProcessor.getRequestProcessor().syncRequest(new SCLRelationInfoRequest(resource, environment), TransientCacheListener.instance()); } catch(DatabaseException e) { LOGGER.error("SCLRelationInfoRequest failed.", e); return null;