]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/ExternalCHRRelation.java
Fixed multiple issues causing dangling references to discarded queries
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / chr / relations / ExternalCHRRelation.java
1 package org.simantics.scl.compiler.elaboration.chr.relations;
2
3 import org.simantics.scl.compiler.elaboration.chr.CHRRelation;
4 import org.simantics.scl.compiler.elaboration.relations.SCLRelation;
5 import org.simantics.scl.compiler.types.TPred;
6 import org.simantics.scl.compiler.types.TVar;
7 import org.simantics.scl.compiler.types.Type;
8
9 import gnu.trove.set.hash.THashSet;
10
11 public class ExternalCHRRelation implements CHRRelation {
12     public final SCLRelation relation;
13
14     public ExternalCHRRelation(SCLRelation relation) {
15         this.relation = relation;
16     }
17
18     @Override
19     public TVar[] getTypeVariables() {
20         return relation.getTypeVariables();
21     }
22
23     @Override
24     public Type[] getParameterTypes() {
25         return relation.getParameterTypes();
26     }
27
28     @Override
29     public TPred[] getTypeConstraints() {
30         return relation.getTypeConstraints();
31     }
32     
33     @Override
34     public String toString() {
35         return relation.toString();
36     }
37     
38     @Override
39     public String[] getFieldNames() {
40         return relation.getFieldNames();
41     }
42
43     @Override
44     public void collectEnforceEffects(THashSet<Type> effects) {
45         effects.add(relation.getEnforceEffect());
46     }
47
48     @Override
49     public void collectQueryEffects(THashSet<Type> effects) {
50         effects.add(relation.getQueryEffect());
51     }
52 }