]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/LocalFieldConstant.java
(refs #7250) Merging master, minor CHR bugfixes
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / constants / LocalFieldConstant.java
1 package org.simantics.scl.compiler.constants;
2
3 import org.cojen.classfile.TypeDesc;
4 import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilder;
5 import org.simantics.scl.compiler.internal.codegen.utils.TransientClassBuilder;
6 import org.simantics.scl.compiler.types.Type;
7
8 public class LocalFieldConstant extends Constant {
9
10     String fieldName;
11     
12     public LocalFieldConstant(Type type, String fieldName) {
13         super(type);
14         this.fieldName = fieldName;
15     }
16     
17     @Override
18     public void push(MethodBuilder mb) {
19         TypeDesc typeDesc = mb.getJavaTypeTranslator().toTypeDesc(type);
20         mb.loadThis();        
21         mb.loadField(mb.getClassName(), fieldName, typeDesc);
22     }
23
24     @Override
25     public Object realizeValue(TransientClassBuilder classBuilder) {
26         throw new UnsupportedOperationException();
27     }
28 }