]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/componentaccess/FieldComponentAccess.java
Minor refactorings related to SCL constructors
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / constants / componentaccess / FieldComponentAccess.java
diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/componentaccess/FieldComponentAccess.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/componentaccess/FieldComponentAccess.java
new file mode 100644 (file)
index 0000000..ca0b229
--- /dev/null
@@ -0,0 +1,24 @@
+package org.simantics.scl.compiler.constants.componentaccess;
+
+import org.cojen.classfile.TypeDesc;
+import org.simantics.scl.compiler.constants.generic.MethodRef;
+import org.simantics.scl.compiler.constants.generic.MethodRef.FieldRef;
+import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilder;
+
+public class FieldComponentAccess implements ComponentAccess {
+       public final String fieldName;
+
+       public FieldComponentAccess(String fieldName) {
+               this.fieldName = fieldName;
+       }
+
+       @Override
+       public void load(MethodBuilder mb, String baseClass, TypeDesc returnType) {
+               mb.loadField(baseClass, fieldName, returnType);
+       }
+
+       @Override
+       public MethodRef toMethodRef(String baseClass, TypeDesc returnType) {
+               return new FieldRef(baseClass, fieldName, returnType);
+       }
+}