--- a/ProxyMethodJavaFieldGetter.st Tue Jul 26 10:21:31 2016 +0100
+++ b/ProxyMethodJavaFieldGetter.st Tue Jul 26 18:01:16 2016 +0100
@@ -20,6 +20,8 @@
"
"{ Package: 'stx:libjava' }"
+"{ NameSpace: Smalltalk }"
+
ProxyMethodJavaFieldAccessor subclass:#ProxyMethodJavaFieldGetter
instanceVariableNames:''
classVariableNames:''
@@ -55,22 +57,28 @@
!ProxyMethodJavaFieldGetter methodsFor:'evaluating'!
-evaluateWithReceiver: receiver arguments: arguments
+evaluateWithReceiver:receiver arguments:arguments
+ | value |
- self assert: arguments size == 0.
- ^receiver instVarAt: field index
+ self assert:arguments isEmpty.
+ value := receiver instVarAt:field index.
+ ^ self fieldType javaUnwrap:value
- "Modified: / 17-03-2012 / 16:56:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 26-07-2016 / 11:44:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProxyMethodJavaFieldGetter methodsFor:'generating'!
generate:compiler
+ | valueNode |
- ^(VariableNode type: #InstanceVariable name: field name)
- index: field index.
+ valueNode := (VariableNode type: #InstanceVariable name: field name)
+ index: field index.
+ ^ MessageNode receiver: (VariableNode globalNamed: self fieldType name)
+ selector: #javaUnwrap:
+ arg: valueNode
- "Modified: / 17-03-2012 / 16:59:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 26-07-2016 / 11:43:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ProxyMethodJavaFieldGetter class methodsFor:'documentation'!