diff -r 4f1b473722cb -r e35b48285df7 ProxyMethodJavaFieldGetter.st --- 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 " + "Modified: / 26-07-2016 / 11:44:17 / Jan Vrany " ! ! !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 " + "Modified: / 26-07-2016 / 11:43:45 / Jan Vrany " ! ! !ProxyMethodJavaFieldGetter class methodsFor:'documentation'!