--- /dev/null
+package org.simantics.scl.reflection.functions;\r
+\r
+import java.lang.reflect.Field;\r
+\r
+import org.simantics.scl.runtime.function.FunctionImpl1;\r
+\r
+public class FieldAccessorFunction extends FunctionImpl1 {\r
+ Field field;\r
+\r
+ public FieldAccessorFunction(Field field) {\r
+ this.field = field;\r
+ }\r
+\r
+ public Field getField() {\r
+ return field;\r
+ }\r
+ \r
+ @Override\r
+ public Object apply(Object p0) {\r
+ try {\r
+ return field.get(p0);\r
+ } catch (IllegalArgumentException e) {\r
+ throw new RuntimeException(e);\r
+ } catch (IllegalAccessException e) {\r
+ throw new RuntimeException(e);\r
+ }\r
+ }\r
+ \r
+ @Override\r
+ public String toString() {\r
+ return field.getName();\r
+ }\r
+}\r