]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/accessor/IdAccessor.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / expressions / accessor / IdAccessor.java
1 package org.simantics.scl.compiler.elaboration.expressions.accessor;\r
2 \r
3 import org.simantics.scl.compiler.constants.StringConstant;\r
4 import org.simantics.scl.compiler.elaboration.expressions.ELiteral;\r
5 import org.simantics.scl.compiler.elaboration.expressions.Expression;\r
6 import org.simantics.scl.compiler.elaboration.expressions.VariableProcedure;\r
7 import org.simantics.scl.compiler.errors.Locations;\r
8 \r
9 public class IdAccessor extends FieldAccessor {\r
10     public final String fieldName;\r
11 \r
12     public IdAccessor(String fieldName) {\r
13         this.fieldName = fieldName;\r
14     }\r
15 \r
16     @Override\r
17     public Expression asExpression() {\r
18         return new ELiteral(new StringConstant(fieldName));\r
19     }\r
20 \r
21     @Override\r
22     public boolean isVariableId() {\r
23         return fieldName.equals("variable");\r
24     }\r
25     \r
26     @Override\r
27     public void setLocationDeep(long loc) {\r
28         if(location == Locations.NO_LOCATION)\r
29             location = loc;\r
30     }\r
31     \r
32     @Override\r
33     public void accept(FieldAccessorVisitor visitor) {\r
34         visitor.visit(this);\r
35     }\r
36 \r
37     @Override\r
38     public void forVariables(VariableProcedure procedure) {\r
39     }\r
40 }\r