]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/scl/ExpressionAnalysis.java
Multiple readers and variable optimization
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / scl / ExpressionAnalysis.java
1 package org.simantics.db.layer0.scl;
2
3 import java.util.Set;
4
5 import org.simantics.scl.runtime.function.Function1;
6
7 public class ExpressionAnalysis<EvaluationContext> {
8
9         final private Set<String> consumed;
10         final private Function1<EvaluationContext,Object> fn;
11         
12         public ExpressionAnalysis(Function1<EvaluationContext,Object> fn, Set<String> consumed) {
13                 this.fn = fn;
14                 this.consumed = consumed;
15         }
16         
17         public boolean isConsumed(String name) {
18                 return consumed.contains(name);
19         }
20         
21         public Set<String> getConsumed() {
22                 return consumed;
23         }
24         
25         public Function1<EvaluationContext,Object> getFunction() {
26                 return fn;
27         }
28         
29 }