X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fchr%2Frelations%2FExternalCHRRelation.java;h=fdfa195ac53158f9e4f94606ef676e102e296b16;hb=3e457239db8dd214a3a10c74c2ecefa0f0f8dd1a;hp=1ee4726eba227c397fbdf535c606302a11543eb1;hpb=cb5fc8d606d8b322563e9345c441eecfa7f01753;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/ExternalCHRRelation.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/ExternalCHRRelation.java index 1ee4726eb..fdfa195ac 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/ExternalCHRRelation.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/ExternalCHRRelation.java @@ -1,29 +1,52 @@ -package org.simantics.scl.compiler.elaboration.chr.relations; - -import org.simantics.scl.compiler.elaboration.chr.CHRRelation; -import org.simantics.scl.compiler.elaboration.relations.SCLRelation; -import org.simantics.scl.compiler.types.TVar; -import org.simantics.scl.compiler.types.Type; - -public class ExternalCHRRelation implements CHRRelation { - public final SCLRelation relation; - - public ExternalCHRRelation(SCLRelation relation) { - this.relation = relation; - } - - @Override - public TVar[] getTypeVariables() { - return relation.getTypeVariables(); - } - - @Override - public Type[] getParameterTypes() { - return relation.getParameterTypes(); - } - - @Override - public String toString() { - return relation.toString(); - } -} +package org.simantics.scl.compiler.elaboration.chr.relations; + +import org.simantics.scl.compiler.elaboration.chr.CHRRelation; +import org.simantics.scl.compiler.elaboration.relations.SCLRelation; +import org.simantics.scl.compiler.types.TPred; +import org.simantics.scl.compiler.types.TVar; +import org.simantics.scl.compiler.types.Type; + +import gnu.trove.set.hash.THashSet; + +public class ExternalCHRRelation implements CHRRelation { + public final SCLRelation relation; + + public ExternalCHRRelation(SCLRelation relation) { + this.relation = relation; + } + + @Override + public TVar[] getTypeVariables() { + return relation.getTypeVariables(); + } + + @Override + public Type[] getParameterTypes() { + return relation.getParameterTypes(); + } + + @Override + public TPred[] getTypeConstraints() { + return relation.getTypeConstraints(); + } + + @Override + public String toString() { + return relation.toString(); + } + + @Override + public String[] getFieldNames() { + return relation.getFieldNames(); + } + + @Override + public void collectEnforceEffects(THashSet effects) { + effects.add(relation.getEnforceEffect()); + } + + @Override + public void collectQueryEffects(THashSet effects) { + effects.add(relation.getQueryEffect()); + } +}